White Screen of Death (WSoD)
HTTP 500

White Screen of Death (WSoD)

Elena Rodriguez ·

Symptoms

You’re staring at a blank white page where your WordPress site used to be. No error message, no clue what went wrong — just white. This is the White Screen of Death, and it’s almost always caused by a PHP fatal error that WordPress can’t recover from. The good news: it’s fixable. Let’s get your site back.

What Causes White Screen of Death?

  1. A plugin conflict or broken plugin — This is the cause about 70% of the time. A plugin update introduces incompatible code, or two plugins fight over the same hook.
  2. Theme PHP error — Your active theme has a syntax error, a missing file, or calls a function that no longer exists.
  3. PHP memory limit exhausted — WordPress ran out of memory mid-execution and died silently.
  4. Corrupted core files — A failed auto-update left WordPress core in a half-written state.
  5. PHP version incompatibility — Your host upgraded PHP and a plugin or theme isn’t compatible with the new version.

How to Fix It

Step 1: Enable Debug Mode

You can’t fix what you can’t see. SSH or FTP into your server and open wp-config.php in your site root.

Find this line:

define( 'WP_DEBUG', false );

Replace it with:

define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );

This writes errors to wp-content/debug.log without showing them to visitors. Now reload your site and check the log:

# Via SSH
tail -50 wp-content/debug.log

You’re looking for a PHP Fatal error line. It’ll tell you exactly which file and line number blew up. That’s your culprit.

Step 2: Deactivate All Plugins

If the debug log points to a plugin — or if you’re not sure — kill all plugins at once.

Via WP-CLI (the right way to do this):

wp plugin deactivate --all

Via FTP/SSH (if you can’t access WP-CLI):

mv wp-content/plugins wp-content/plugins-disabled

Reload your site. If it’s back, reactivate plugins one by one until the white screen returns. That’s your broken plugin. Delete it or roll it back to a previous version.

# Reactivate one at a time
wp plugin activate akismet
wp plugin activate woocommerce
#... Keep going until it breaks

Step 3: Switch to a Default Theme

If deactivating plugins didn’t fix it, your theme is the problem. Switch to Twenty Twenty-Five.

wp theme activate twentytwentyfive

No WP-CLI access? Rename your active theme’s folder via FTP:

mv wp-content/themes/your-theme wp-content/themes/your-theme-broken

WordPress will fall back to the latest default theme it finds. If your site loads, you’ve confirmed the theme is broken. Fix the theme code or contact the developer.

Step 4: Increase PHP Memory Limit

If your debug log shows Fatal error: Allowed memory size exhausted, bump the memory limit. Add this to wp-config.php before the “stop editing” comment:

define( 'WP_MEMORY_LIMIT', '256M' );

If that’s not enough, also set it in .htaccess:

php_value memory_limit 256M

Or in php.ini if your host supports it:

memory_limit = 256M

Skip this if you want headaches later: don’t just throw memory at the problem and call it done. A memory exhaustion error usually means a plugin or query is doing something absurd. Find and fix the root cause after your site is back up.

Step 5: Reinstall WordPress Core

If nothing else worked, your core files might be corrupted.

wp core download --force --skip-content

This replaces every core file without touching wp-content/ or wp-config.php. Your themes, plugins, and uploads stay intact.

Via FTP: Download a fresh copy from wordpress.org, extract it, and upload everything except the wp-content folder and wp-config.php.

Step 6: Check PHP Version Compatibility

If you recently upgraded PHP (or your host did it for you), check compatibility:

wp cli info # shows current PHP version
wp plugin list --fields=name,status,update # check for outdated plugins

Talk to your host about downgrading PHP temporarily while you update incompatible plugins. Most good hosts let you toggle PHP versions from cPanel or a similar panel.

Prevention

  • Stage updates before production. Use a staging environment for plugin, theme, and PHP version updates. Every single time. No exceptions.
  • Keep everything updated. Outdated plugins are the #1 source of WSoD. Set a weekly calendar reminder if you have to.
  • Use a monitoring service. Uptime monitoring (even a free one) will alert you the second your site goes down — instead of finding out from a customer.
  • Maintain server-level PHP error logging. Even when WP_DEBUG is off, make sure your server logs PHP fatals. You’ll need them when things go sideways at 2 AM.

Last verified: April 2026