Blank Page: The White Screen of Death

When your site returns HTTP 200 but displays nothing

The blank page, also called "White Screen of Death" (WSOD) by analogy with the Windows blue screen, is one of the most pernicious problems in web development. Your site typically returns an HTTP 200 code (success), but the browser displays nothing. No visible error, no message, just emptiness.

This problem is particularly insidious because classic monitoring tools don't detect it. They check the HTTP code, see a 200, and assume everything is fine. Meanwhile, your users see an empty page and think your site is broken. The SEO impact can also be catastrophic if Google crawls during the incident.

The cause is almost always a fatal server-side error (PHP Fatal Error, unhandled exception) that interrupts execution before any output is generated. The web server has nothing to send, so it sends an empty response with a 200 code. Diagnosis requires log access.

Common causes of blank page

A blank page is almost always caused by an error that stops script execution before any output:

  • Fatal PHP error: parse error (syntax), call to undefined function, class not found (autoload failed). The script stops before it can generate HTML. With display_errors=Off in production, nothing is displayed.
  • Memory limit exceeded: the script tries to use more memory than the maximum allowed. PHP kills the process abruptly, without time to display anything. Common with large imports or infinite loops.
  • Failing plugin or extension: in WordPress, Drupal, Magento, a poorly coded or incompatible plugin can cause a fatal error on load. The site can't even display the error page.
  • PHP version conflict: code written for PHP 7 may crash on PHP 8 (deprecated functions, changed behaviors). Upgrading PHP without prior testing is a frequent cause.

Diagnosing the White Screen of Death

Diagnosing a blank page requires making errors visible:

  • Enable error display: temporarily add ini_set("display_errors", 1); error_reporting(E_ALL); at the top of your script, or modify php.ini. You'll see the exact error.
  • Check PHP logs: examine /var/log/php-fpm/error.log, /var/log/apache2/error.log, or the path configured in php.ini (error_log). The fatal error is recorded there.
  • Isolate the faulty component: in WordPress, rename the plugins/ folder to disable all plugins. If the site comes back, reactivate them one by one. Same procedure for themes.
  • Check recent changes: did the blank page appear after a deployment, update, or config change? Git log and file timestamps are your friends.

Debugging example for blank page

Here's how to make errors visible to diagnose a blank page:

WARNING: never leave display_errors=On in production. Once the error is identified and fixed, disable error display. Error messages can reveal sensitive information (paths, partial credentials).

Detecting blank pages with MoniTao

Classic HTTP monitoring isn't enough. Here's how MoniTao protects you:

  • Content verification: configure MoniTao to verify that specific text is present on the page (e.g., your logo alt, a footer, ""). If absent = alert.
  • Minimum response size: a blank page has a size of 0 or a few bytes. Alert if the response is abnormally small compared to normal.
  • Multi-point monitoring: monitor multiple critical pages (home, login, checkout). A blank page may only affect part of the site.
  • Correlation with logs: when MoniTao detects an anomaly, immediately examine PHP logs to identify the underlying fatal error.

Resolution checklist

  • Temporarily enable display_errors or check PHP logs
  • Identify the exact error (Fatal error, Parse error, Memory limit)
  • Check recent changes (git log, timestamps)
  • Test by disabling plugins/extensions one by one
  • Verify PHP version compatibility
  • Configure content verification in MoniTao

Frequently asked questions about blank pages

Why doesn't my monitoring detect the blank page?

Classic monitoring tools check the HTTP code. A blank page returns 200 (OK), so monitoring thinks everything is fine. Use MoniTao content verification to detect this type of problem.

How to enable PHP errors in an emergency?

Add at the beginning of your index.php: ini_set("display_errors", 1); error_reporting(E_ALL); Or create a .user.ini file with display_errors=On. Don't forget to disable after debugging.

The blank page only appears on certain pages. Why?

The fatal error is probably in code specific to those pages (controller, template, conditionally activated plugin). Analyze logs to find the faulty file.

How to prevent blank pages in production?

Comprehensive automated tests, staging environment, progressive deployments, monitoring with content verification, and most importantly: never deploy on Friday afternoon.

WordPress shows a blank page after an update. What to do?

Via FTP, rename wp-content/plugins/ to plugins_old/ to disable all plugins. If the site comes back, the culprit is a plugin. Otherwise, test the theme by renaming wp-content/themes/your-theme/.

What's the difference between a blank page and a 500 error?

A 500 error displays a server error page. A blank page is an empty response with code 200. Both can have the same causes (fatal PHP error), but server configuration determines the behavior.

Don't let blank pages surprise you anymore

The blank page is a sneaky problem that escapes traditional monitoring. It can persist for hours before a user reports it, causing revenue loss and SEO impact. The key is smarter monitoring that checks actual content, not just the HTTP code.

MoniTao with its content verification feature lets you detect blank pages immediately. Configure a keyword that must be present on each critical page, and receive an alert if that keyword disappears. Combined with well-configured logs, you can diagnose and resolve a blank page in minutes.

Ready to Sleep Soundly?

Start free, no credit card required.