WordPress White Screen of Death: How to Fix It
A WordPress white screen hides the real error. Use logs, Recovery Mode, and controlled testing to find the cause fast—without breaking the site.

The WordPress White Screen of Death is exactly what it sounds like: a page loads with no content, no error, and no clue. Sometimes the whole site is blank. Sometimes only the dashboard. Sometimes one page.
The blank screen is a symptom, not a diagnosis. WordPress or PHP stopped before it could finish rendering the page. The first job is to uncover the hidden error—not to reinstall WordPress or start disabling plugins at random.
Don't panic-edit production. Protect the last working version of the site first.
Protect the Working Data First
Create a fresh file and database backup if the hosting panel still allows it. Use staging for tests. Write down what changed right before the blank screen appeared: plugin updates, theme edits, PHP version changes, migrations, or a new snippet in functions.php.
Check the administrator email too. WordPress may send a Recovery Mode message when it detects a fatal error, though delivery isn't guaranteed. If the message came from a real domain owned by the site, that link is useful. If it looks suspicious, don't click it.
First Five Minutes: Triage the Blank Screen
Don't read all ten sections first. Do this instead:
- Check the admin email for a Recovery Mode link.
- Open the PHP error log and match the timestamp to the failed request.
- If the screen went blank after an update, roll that update back.
- If only
/wp-admin/is blank, suspect a plugin. - If the whole site is blank, suspect a theme, PHP fatal error, or memory limit.
- If a recent code edit came first, restore the last known-good version.
That order solves most white screens faster than a full conflict test.
1. Determine the Scope
Open the homepage, a single post, /wp-admin/, and the login page in a private browser window. The pattern tells you where to look.
Only one page is blank? The problem is likely its template, a shortcode, a block, or a builder widget. The public site works but the dashboard is blank? Focus on admin-only plugins, memory use, and PHP errors triggered inside wp-admin. The whole site is blank? Suspect a theme, a plugin loaded on every request, PHP version, or memory.
2. Check the PHP and Server Logs
The log is the fastest way to stop guessing. In cPanel, look under Metrics → Errors or Logs → Error Log. On managed hosts, search for PHP Error Log or Server Logs.
Look for lines like:
PHP Fatal error: Cannot redeclare example_function() (previously declared in /home/user/public_html/wp-content/plugins/example/example.php:42)
PHP Fatal error: Allowed memory size of 268435456 bytes exhausted (tried to allocate 20480 bytes)
PHP Parse error: syntax error, unexpected '}' in /home/user/public_html/wp-content/themes/my-theme/functions.php on line 120
PHP Fatal error: Uncaught Error: Call to undefined function
That line usually names the exact file and plugin. If the log is empty, enable WP_DEBUG and WP_DEBUG_LOG in wp-config.php:
define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);
The log then appears at /wp-content/debug.log. Follow the official WordPress debugging guide for details. Keep error display off on a public site, and turn debugging off when the investigation is done.
3. Use WordPress Recovery Mode
WordPress 5.2 and later can send a Recovery Mode link by email when a fatal error is detected. The link opens a protected login and pauses the faulty plugin or theme for that session. That is enough to get back into the dashboard and inspect what changed.
Confirm the message belongs to the real domain before clicking anything. A recovery email points to a problem; it does not replace a backup. If the email never arrives, go straight to the log.
4. Disable Plugins Safely
Plugin conflicts cause most white screens. Start with the plugin installed, updated, or configured most recently.
If the dashboard works, deactivate plugins from there. If the dashboard is blank, use SFTP or the hosting file manager. Rename the suspected plugin folder. For example, rename:
/wp-content/plugins/suspected-plugin
to:
/wp-content/plugins/suspected-plugin.disabled
WordPress skips the folder and deactivates the plugin automatically. If there is no obvious suspect, rename the entire plugins directory on staging to test all standard plugins at once. Restore the original name, then activate plugins one at a time until the blank screen returns.
Remember that must-use plugins live in /wp-content/mu-plugins/. They don't appear on the Plugins screen and can't be deactivated from the dashboard. Rename the folder or file directly.
With WP-CLI, deactivate everything at once:
wp plugin deactivate --all
5. Switch to a Default Theme
A syntax error, outdated function, or damaged template in the active theme or child theme can blank the whole site. Temporarily switch to a current default theme like Twenty Twenty-Four.
If the dashboard is unreachable, rename the active theme folder via SFTP. WordPress falls back to a default theme if one is installed.
/wp-content/themes/my-theme
to:
/wp-content/themes/my-theme.disabled
If the site returns, the theme is the problem. Inspect the theme and child theme instead of deleting them. Custom work may need to be recovered from version control or backup.
6. Check for a PHP Memory Error
If the log says Allowed memory size exhausted, the request hit its PHP memory limit. Raise the limit temporarily in wp-config.php:
define('WP_MEMORY_LIMIT', '256M');
define('WP_MAX_MEMORY_LIMIT', '512M');
Ask the host to confirm the effective PHP memory limit too. Some hosts cap it at the server level, and the WordPress setting won't override that.
Raising the limit can confirm the problem, but it doesn't fix the cause. Find out why memory use increased. Large imports, backup jobs, complex queries, or a faulty extension can consume memory repeatedly.
7. Undo Recent Code Edits
If the blank screen followed a change to functions.php, a snippet plugin, or a custom plugin, restore the last known-good version. One missing character in PHP can stop page generation.
Avoid editing PHP through the production dashboard without a recovery path. Use version control, staging, or a file-access method that stays available if the code fails. If the only way back in is SFTP, keep those credentials handy before making changes.
8. Complete or Repair a Failed Update
An interrupted update can leave incomplete files. Restore a known-good backup or replace WordPress core files using the official package and manual-update instructions. Preserve wp-content and wp-config.php.
For a damaged plugin or theme, reinstall the same trusted version only after preserving any custom changes. Never download core files from an unofficial website.
9. Clear Caches After the Cause Is Fixed
Once the underlying error is fixed, clear page cache, object cache, server cache, CDN cache, and browser cache. A cached blank response can make a successful repair look like it failed.
Caching rarely causes a PHP fatal error by itself. If logs still show a failure, don't stop at clearing the cache. Fix the error first, then clear.
10. Ask the Host to Check the Environment
When local tests don't reveal the problem, ask the host to review PHP logs, file ownership, disk space, security rules, process limits, and recent server changes. Provide a timestamp and the affected URL.
Specific evidence helps support investigate faster than "my site is blank."
What Actually Fixes a White Screen
Most white screens come down to one of these: a plugin conflict, a theme error, a PHP memory limit, a broken code edit, or a failed update. Work through them in order. Change one variable at a time. Restore production only after the same request works consistently.
A calm diagnosis is faster than reinstalling WordPress repeatedly—and far less likely to overwrite the last working copy.
Share





