The WordPress white screen of death — what it is, how to fix it, and how to stop it happening

· 8 min read

You open your site and there's nothing. No error message, no broken layout — just a blank white page. Your admin panel might still work, or it might be white too. Either way, your site is down and you have no idea why.

This is the WordPress White Screen of Death. I deal with it a few times a month across the 70+ sites I manage. It's one of the most common WordPress failures, and also one of the most fixable — once you know where to look.

What the white screen actually means

The white screen is what happens when PHP hits a fatal error but has nowhere to display it. WordPress tries to load, something crashes, and because error reporting is turned off on most production servers (as it should be), you get nothing. Just white.

Behind that blank page is usually a specific, identifiable problem. PHP ran out of memory. A plugin threw a fatal error. A theme file has a syntax mistake. A core update corrupted a file. The database connection dropped.

The white screen isn't the problem — it's the symptom. The real issue is always something specific, and finding it is a systematic process.

The usual causes

After 14 years of maintaining WordPress sites, these are the causes I see most often, roughly in order of frequency.

Plugin conflicts

This is the number one cause. A plugin updates and introduces a bug. Two plugins try to load the same JavaScript library at different versions. A plugin calls a function that was deprecated in the latest WordPress release. A WooCommerce extension doesn't support the latest WooCommerce version.

The tricky part is that plugin conflicts don't always show up immediately. A plugin might update overnight via auto-updates, and you wake up to a dead site with no obvious connection to the change.

PHP memory exhaustion

WordPress has a default memory limit of 40MB. That sounds reasonable until you're running WooCommerce with 5,000 products, a page builder, a dozen active plugins, and a theme that loads everything on every page.

When PHP runs out of memory mid-execution, it dies. No graceful error — just a white screen. Memory exhaustion is especially common on shared hosting where your PHP memory limit is capped by the host.

Theme errors

A syntax error in functions.php will crash the entire site. A missing semicolon, an unclosed bracket, a function that conflicts with a plugin — any of these will produce a white screen. This happens most often after manual theme edits or theme updates that introduce incompatibilities with your PHP version.

Failed core or plugin updates

If a WordPress update gets interrupted — server timeout, disk space issue, hosting hiccup — you can end up with half-written files. WordPress might be partially on 6.8 and partially on 6.9. The result is unpredictable, but a white screen is common.

The recent WordPress 6.9.2 security release is a perfect example. A new realpath() check in the template loader crashed sites whose themes loaded templates in non-standard ways. Thousands of sites went white overnight.

Database connection issues

If WordPress can't reach the database, it usually shows a specific "Error establishing a database connection" message. But sometimes — particularly with corrupted wp-config.php files or partially failed migrations — you get a white screen instead.

Corrupted .htaccess or wp-config.php

These two files control how your site loads at the most fundamental level. A bad rewrite rule in .htaccess or a syntax error in wp-config.php can take the whole site down before WordPress even starts.

How to fix it

Here's my diagnostic process, step by step. I follow the same sequence every time because it eliminates causes quickly without making things worse.

Step 1: Enable WP_DEBUG

Connect to your server via SFTP or SSH and open wp-config.php. Find the line that says WP_DEBUG (or add it above the /* That's all, stop editing! */ comment):

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. Reload the site, then check that log file. Nine times out of ten, the error message tells you exactly what's wrong — which file, which line, which function.

Step 2: Check for a .maintenance file

If an update was interrupted, WordPress may have left a .maintenance file in the root directory. This file tells WordPress to show a maintenance screen, but if something else is also broken, you get a white screen instead. Delete it:

rm /path/to/wordpress/.maintenance

Step 3: Disable all plugins

If debug.log points to a plugin, or if you're not sure what's wrong, rename the plugins folder via SFTP:

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

Reload the site. If it comes back, a plugin is the culprit. Rename the folder back, then rename individual plugin directories one at a time until you find the one causing the crash.

If you can access the admin panel, you can also use WordPress Recovery Mode. Check your admin email — WordPress sends a recovery link when it detects a fatal error. The link lets you log into the dashboard with the broken plugin paused.

Step 4: Switch to a default theme

If disabling plugins didn't fix it, rename your active theme's folder:

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

WordPress will fall back to a default theme like Twenty Twenty-Four. If the site loads, your theme is the problem.

Step 5: Increase PHP memory limit

Add this to wp-config.php:

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

Also check your PHP configuration. On most servers:

php -i | grep memory_limit

If your host caps this at 64MB or 128MB and your site needs more, you either need to optimise your plugin stack or upgrade your hosting.

Step 6: Reinstall WordPress core

If none of the above works, you might have corrupted core files. WP-CLI makes this straightforward:

wp core download --force --skip-content

This replaces all core files without touching your wp-content directory, themes, plugins, or uploads.

Step 7: Check the database

If you suspect a database issue:

wp db check
wp db repair

Or add this to wp-config.php temporarily, visit yoursite.com/wp-admin/maint/repair.php, then remove it:

define( 'WP_ALLOW_REPAIR', true );

How to prevent it

Fixing white screens is reactive. Here's what I do proactively to make sure the sites I manage rarely see one.

Test updates in staging first

Every update — core, plugin, or theme — gets tested against a staging copy of the live site before it touches production. This catches plugin conflicts, theme incompatibilities, and PHP version issues before they cause downtime.

Keep regular backups

A full backup taken immediately before every update cycle means you can roll back in minutes. I keep daily automated backups plus on-demand snapshots before any significant change.

Monitor uptime

I run uptime checks on every site I manage. If a site goes white at 3am because an auto-update ran overnight, I know about it within minutes — not when the client notices three days later.

Maintain your plugin stack

Abandoned plugins — ones that haven't been updated in over a year — are a ticking time bomb. I audit the plugin list on every site regularly, remove anything unnecessary, and replace outdated plugins with maintained alternatives.

Use a centralised dashboard

When you're managing more than a handful of sites, logging into each one to check versions and plugin status doesn't scale. A tool like wp-admin.online gives you a single view of every site's WordPress version, plugin versions, and update status. When a problematic update drops, you can instantly see which sites are affected.

Set PHP memory appropriately

Don't wait for memory exhaustion to crash your site. Set a sensible memory limit from the start — 256MB for most sites, 512MB for WooCommerce stores or heavy page builder setups. And monitor actual usage so you know when you're approaching the limit.

When to call for help

The white screen is almost always fixable. But if you're not comfortable with SFTP, wp-config.php edits, and command-line tools, poking around your live site can make things worse. If your debug log shows errors you don't understand, or if the site is generating revenue and every minute of downtime costs money — that's when having a maintenance plan pays for itself many times over.

I've fixed hundreds of white screens. The pattern is almost always the same: identify the cause, fix it, then put safeguards in place so it doesn't happen again.


Stop firefighting. Start maintaining.

I manage 70+ WordPress sites for UK agencies and businesses. Whether you need ongoing maintenance, emergency support, or a one-off performance fix — I can help.

View Maintenance Plans | Get in Touch

Stop Firefighting. Start Maintaining.

I manage 70+ WordPress sites for UK agencies and businesses. Whether you need ongoing maintenance, emergency support, or a one-off performance fix — I can help.

View Maintenance Plans Get in Touch

Get in Touch to Discuss Your Needs