Before you change anything

Take a backup of the site as it is right now — files and database. Every step below is reversible, but only if you have something to revert to.

Why the screen is blank

WordPress is PHP. When PHP hits a fatal error it stops executing immediately. On a production server display_errors is switched off — so instead of an error message, the browser gets an empty response body. That's your white screen: not an absence of problems, an absence of output.

Which means the entire job is turning that silence back into a message. Everything below is either making the error visible, or eliminating one suspect at a time.

1. Check for the recovery mode email

Since WordPress 5.2, a fatal error triggers an automatic email to the admin address containing a secret login link — and, critically, the name of the plugin or theme that crashed. Search your inbox (and spam folder) for "Your Site is Experiencing a Technical Issue".

If that email is there, you're done diagnosing. Click the link, deactivate the named plugin, and move on with your day. Most people never check, which is why this step is first.

2. Turn on the debug log

Edit wp-config.php and add this above the "stop editing" line:

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

Reload the broken page, then open wp-content/debug.log. You're looking for a line beginning PHP Fatal error: — it names the exact file and line number. Nine times out of ten the file path contains the name of the guilty plugin.

Set DEBUG_DISPLAY to false

Printing errors to the screen on a live site leaks file paths and database details to anyone looking. Log them to a file instead — and turn WP_DEBUG back off when you're finished.

3. Rule out browser and cache

Before touching files: open the site in a private window and a different browser. Purge your caching plugin and your CDN. It's genuinely common to fix a white screen and keep staring at a cached copy of the broken one for another twenty minutes.

4. Disable all plugins at once

Connect over SFTP, go to wp-content/, and rename the plugins folder to plugins-off. WordPress can't find them, so it deactivates all of them.

  • Site comes back? It's a plugin. Rename the folder back to plugins, then rename individual plugin folders one at a time until the white screen returns. The last one you renamed is your culprit.
  • Still blank? Plugins are innocent. Move to the theme.

5. Fall back to a default theme

Same technique: rename your active theme's folder inside wp-content/themes/. WordPress falls back to a bundled default like Twenty Twenty-Five. If the site returns, the fault is in your theme — most often in functions.php, and most often a function that doesn't exist in your current PHP version.

6. Raise the PHP memory limit

WordPress ships with a conservative memory limit that a modern plugin stack blows through easily. In wp-config.php:

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

If that fixes it, treat the fix as temporary. Memory exhaustion is a symptom — something on the site is consuming far more than it should, and raising the ceiling just delays the next crash.

7. Check permissions and core integrity

Directories should be 755, files 644. A botched migration or an over-eager "security" fix can set something to 000 and produce exactly this symptom.

Then compare wp-admin/ and wp-includes/ against a clean download of the same WordPress version. A single truncated core file — usually from an interrupted update — produces a blank page that nothing else explains.

When none of that works

At this point you're into the less obvious causes: a PHP version bump on the host that broke a dependency, an .htaccess or nginx rule producing an empty response, an OPcache serving stale bytecode, a mu-plugin nobody remembers installing, or injected malware that crashes PHP by accident. These need server-level access and log reading rather than more file renaming.

Still staring at a blank page?

Send me the URL and what you've already tried. Most white screens clear in under 90 minutes — and you don't pay if I can't fix it.

FAQ

Why is my WordPress site showing a blank white page?

PHP stopped executing before sending any output — almost always a fatal error in a plugin or theme, or an exhausted memory limit. Because display_errors is off on production servers, the browser gets an empty response instead of the error text.

How do I fix it if I can't access wp-admin?

Use SFTP or your host's file manager. Rename wp-content/plugins to plugins-off to disable every plugin at once. If the site returns, the fault is in a plugin — rename the folder back and disable them individually until you find it.

Does a white screen mean I was hacked?

Usually not — a plugin update or memory exhaustion is far more likely. But if the blank page appeared with no update on your side, or only certain pages are blank, check for injected code and unfamiliar admin accounts. Some malware crashes PHP by accident.

Only wp-admin is blank but the front end works. Why?

That points at an admin-only plugin, a dashboard widget, or a broken user session. Try the plugin rename first, then clear the wp_usermeta session tokens for your account.