Skip to content
CH SCShop classwordpress · beginner · ~40 min · 6 steps

How to fix the WordPress white screen of death

Turn on debug output, read the fatal, and use the halving method on plugins and theme to get a blank WordPress site rendering again.

August 10, 2026 · by Dane Petersen

A white screen means PHP hit a fatal error and WordPress, politely, chose to show visitors nothing rather than the error itself. The fix is almost never dramatic — it’s usually one plugin, one theme, or one update that landed sideways. Before anything else, check your email: since WordPress 5.2, a fatal often triggers Recovery Mode, which sends the admin a login link that skips the broken code entirely. If that email is sitting there, use it and deactivate the flagged plugin — you may be done in five minutes. If not, you’ll need SFTP or SSH access to the site, and it helps to be comfortable reading your error logs.

Turn on WP_DEBUG the safe way

WordPress ships with error display off, which is why you’re looking at a blank page instead of a clue. Open wp-config.php and, above the line that says “That’s all, stop editing,” add:

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

That third line matters: it writes errors to a private log instead of printing them on the page where visitors (and attackers) can read paths and version numbers.

Read the fatal error

Reload the broken page once, then open wp-content/debug.log:

tail -20 wp-content/debug.log

You want the line that starts with PHP Fatal error. Read the file path at the end of it — that’s your suspect. A path containing wp-content/plugins/some-plugin/ points at that plugin; a path in wp-content/themes/ points at the theme; “Allowed memory size exhausted” means PHP ran out of memory, which is a hosting-settings conversation rather than a broken-code one.

Deactivate plugins without the admin

If the fatal named a plugin — or if the log is unclear — turn plugins off from outside. With WP-CLI:

wp plugin deactivate --all --skip-plugins --skip-themes

No shell access? Same result over SFTP: rename wp-content/plugins to wp-content/plugins-off. WordPress can’t find the plugins, so it quietly deactivates all of them. If the site comes back, you’ve confirmed the problem lives in a plugin. Rename the folder back before the next step — the plugins stay deactivated until you turn them on.

Halve your way to the culprit

Reactivating one at a time works, but halving is faster. Turn on half your plugins, load the site. Still fine? The problem is in the other half. Broke again? It’s in the half you just enabled. Deactivate all, enable half of the guilty half, and repeat. Twenty plugins takes about five rounds — like finding the dead bulb in a string of holiday lights, except the string tells you which end to check. When you land on the culprit, leave it off and check the plugin’s support forum; a fixed version is often already out.

Fall back to a default theme if needed

If plugins came up clean, test the theme. Activate a stock one:

wp theme activate twentytwentyfive

Over SFTP, renaming your active theme’s folder forces WordPress to fall back to a default theme, as long as one is installed. Site renders on the default theme? Your theme has the fatal — the debug log will name the exact file and line, which is what you hand to whoever maintains it.

Verify, then turn debug back off

Click around like a visitor: front page, an interior page, the login, a form if you have one. Then put wp-config.php back the way it was:

define( 'WP_DEBUG', false );

Delete wp-content/debug.log too — it’s served publicly on many hosts. You’re verified when the site renders logged-out in a private browser window, the admin loads, and the log stays quiet on a fresh reload. If the culprit was a plugin you actually need, update it before reactivating, and if the site is down and you’re not sure this is the problem, start wider with what to do when your website goes down.

That's the lesson. Back to the shop for more — or if this is the chore your organization never gets to,that's literally what we're for.