White screen of death (WSOD) is the WordPress problem most disproportionate to its actual difficulty. The site looks completely dead, which feels like the worst possible failure. In reality, it is almost always one of five things, and any of them is solvable in under 30 minutes if you work the list in order.
Before you start: turn on debugging
Edit wp-config.php via SFTP and add these two lines just above the /* That's all, stop editing! */ comment:
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
Reload the site. Now wp-content/debug.log will tell you exactly what PHP is unhappy about. This single step solves about 40% of WSOD cases — the error message names the file and line number, and you fix that file.
Possibility 1: a recently-updated plugin
If WSOD started right after a plugin update, the plugin is the cause. Rename the entire wp-content/plugins/ folder to plugins-disabled via SFTP. Reload the site. If it loads, rename the folder back, then disable plugins one at a time in /wp-admin/plugins.php until you find the culprit. Either roll the plugin back or report the bug to its author.
Possibility 2: the active theme
Same approach. SFTP into wp-content/themes/ and rename the active theme's folder. WordPress will fall back to the default Twenty-Twenty-Something theme. If the site loads with the default theme but not yours, the theme is the cause. Often this happens after a PHP version upgrade — older themes use deprecated PHP syntax that newer versions reject.
Possibility 3: PHP memory exhaustion
This is the most common WSOD on under-provisioned hosting. Edit wp-config.php and add:
define( 'WP_MEMORY_LIMIT', '256M' );
If the site loads, you have bought yourself time. Long-term, you either trim the plugins eating memory or move to better hosting. 256MB should be enough for most WordPress sites; if you are bumping into 512MB regularly, something is wrong.
Possibility 4: corrupted core files
Less common, but possible after a failed update. Download a fresh copy of WordPress from wordpress.org/download, unzip it locally, and via SFTP overwrite the wp-admin/ and wp-includes/ folders on the server. Do not touch wp-content/ — that is your themes, plugins, and uploads.
Possibility 5: file permissions
If a backup restore or a botched migration left files with wrong permissions, PHP cannot read them. Standard WordPress permissions are 755 for folders, 644 for files. wp-config.php should be 600 or 640. If you have shell access, you can fix this in seconds with find.
What if none of these worked?
If you have walked the list and the site is still white, three less-common causes:
- Database connection failure. Check
wp-config.phpcredentials, then check the database server is up. - htaccess corruption. Rename
.htaccessto.htaccess-bak, reload, then have WordPress regenerate it from Settings → Permalinks → Save. - A hack. If WSOD started without you doing anything, and debug logs show injected code, you are dealing with a compromised site, not a plain WSOD. Different playbook.
Once the site loads again, remember to turn off debugging in wp-config.php. Public debug output is a small but real security leak.