If you open your WordPress site and see nothing but a plain white page, no menu, no text, no error message, you’re dealing with the white screen of death, often shortened to WSOD. It’s one of the most common WordPress problems, and most people simply describe it as their site showing a blank page.
You might also see the message “There has been a critical error on this website” instead of a fully blank page. It’s the same underlying problem, and the fixes below apply to both.
A white screen on WordPress almost always has a clear cause, and a fix you can work through step by step.
Quick Troubleshooting Checklist
- Check your admin email for a WordPress Recovery Mode link
- Check if the blank page is on the whole site, just the admin area, or one page
- Turn on WordPress debugging to see what’s actually happening
- Check your PHP memory limit
- Deactivate plugins to find the conflict
- Switch to a default theme to rule out a theme problem
- Look for a stuck .maintenance file or a PHP version mismatch
Why This Happens
A blank white page happens when PHP, the programming language WordPress is built on, hits a fatal error and stops completely. Normally you’d expect to see an error message, but many hosts hide PHP errors from visitors for security reasons. So instead of an error, you just get nothing.
Since WordPress 5.2, some fatal errors show a “critical error” message instead of a blank page, along with an email to the site administrator. Either way, PHP has crashed while building the page.
This is different from seeing “This site can’t be reached” or “This page isn’t working” in your browser. That’s a connection problem, usually your server being down or unreachable. A true blank white page usually means your server responded, but WordPress or PHP failed while generating the page.
If what you’re actually seeing is a message about the database instead of a blank page, you’re dealing with a different, related issue. Check our guide to fixing an error establishing a database connection instead.
Step 1: Check for a WordPress Recovery Mode Email (Built In Since WordPress 5.2)
Start here, because it can save you the whole FTP process. Since WordPress 5.2, when WordPress detects certain fatal errors, it can automatically send the site administrator a Recovery Mode email with a special link. Clicking it lets you log into wp-admin with the problematic plugin or theme safely paused, so you can fix it without touching any files.
This doesn’t trigger for every possible fatal error, but it’s worth checking the admin email inbox (and spam folder) before doing anything else.
Step 2: Figure Out Where the Blank Page Is Happening
This tells you a lot before you touch anything.
- Only wp-admin is blank, the main site works fine. Usually a plugin that only loads in the dashboard. See How to Fix the White Screen in wp-admin Only below.
- The whole site is blank, including wp-admin. Usually a fatal error in a plugin or theme that loads everywhere, or a memory limit problem.
- Only one page or post is blank. Often specific content on that page, like a shortcode or embedded block, is causing the crash.
- It started right after a migration or host change. A white screen of death after migration can happen for several reasons. Check your PHP version and your .htaccess file first (details in the migration section below).
Step 3: Turn On Debugging to See What's Happening
This is the fastest way to stop guessing. Open wp-config.php and find this line:
define( 'WP_DEBUG', false );
Change it to:
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );
Reload your site. The page itself will likely still appear blank, since WP_DEBUG_DISPLAY is set to false on purpose, but the actual error will now be recorded in a file at wp-content/debug.log. Open that file and look at the most recent entry. It often points to the plugin, theme, or file involved, though in some cases it’s a deeper PHP function or class error that takes a bit more tracing.
Once you’ve found and fixed the issue, do two things:
- Change WP_DEBUG back to false. Leaving debugging on permanently can expose error details if it’s ever set to display them.
- Delete the debug.log file. On many setups it’s publicly reachable at /wp-content/debug.log, and it can contain file paths and other details you don’t want visitors to see.
If debug.log stays empty: check your server’s own error log instead. In cPanel this is under Metrics → Errors, or look for an error_log file in your site’s root folder. Most managed hosts also provide a PHP error log in their dashboard. The server log often catches errors that WordPress never gets the chance to record.
Step 4: Check for a Memory Limit Error ("Allowed Memory Size Exhausted")
If your debug log shows something like “Allowed memory size exhausted,” your site is running out of PHP memory.
Here’s the part most guides skip: there are actually two separate memory settings involved, and increasing the wrong one may not solve the problem.
- WordPress’s own internal limit is controlled by WP_MEMORY_LIMIT in wp-config.php. WordPress commonly starts with a 40MB memory limit on single-site installs (64MB for multisite), although hosting and configuration can affect the actual starting value. This limit applies to the front end of your site.
- A separate limit applies to wp-admin. WordPress uses a second constant, WP_MAX_MEMORY_LIMIT, specifically for the admin dashboard, and it defaults to 256MB on its own, independent of whatever WP_MEMORY_LIMIT is set to. This is why a site can work fine in wp-admin but still hit a memory error on the front end, or vice versa.
- Your server’s PHP memory_limit, set by your host, ultimately sets the ceiling available to PHP. WordPress tries to raise the limit at runtime, which works on many hosts, but it may not override a limit your host enforces.
To raise WordPress’s front-end limit, add this line in wp-config.php, above the line that says “That’s all, stop editing”:
define( 'WP_MEMORY_LIMIT', '256M' );
Since WP_MAX_MEMORY_LIMIT already defaults to 256M, you only need to set it if the admin dashboard needs more room for heavy tasks such as large imports, updates, or image processing:
define( 'WP_MAX_MEMORY_LIMIT', '512M' );
If the white screen doesn’t improve, your host’s server-level PHP memory limit is probably the real ceiling, and you’ll need to ask your host to raise it.
Step 5: Deactivate Plugins to Find the Conflict
If you can get into wp-admin, go to Plugins and deactivate them all at once, then reactivate one at a time, reloading the site after each one, until the blank page comes back. That plugin is your culprit.
If you can’t get into wp-admin at all, do this through FTP or your host’s file manager instead:
- Go to wp-content and rename the plugins folder to something like plugins-disabled
- Reload your site. If it comes back, the problem was a plugin
- Rename the folder back to plugins
- Open it and rename each plugin’s individual folder one at a time, reloading after each, until you find the one causing the crash
If you’d rather test plugin conflicts somewhere other than your live site, setting up WordPress on localhost using XAMPP gives you a safe copy to experiment on first.
Step 6: Rule Out a Broken Theme
If plugins aren’t the issue, your theme might be. Through FTP, go to wp-content/themes and rename your active theme’s folder. If you have a default WordPress theme installed (such as Twenty Twenty-Five or a newer one), WordPress will automatically fall back to it. If the site loads again, the problem is in your theme’s code, often a broken functions.php file after an edit or update.
Step 7: Check for a Stuck .maintenance File
If the white screen appeared during or right after an update, WordPress may have been interrupted before it finished. During updates, WordPress creates a temporary file called .maintenance in your site’s root folder, and normally removes it automatically. If the update fails midway, the file can get left behind and keep your site stuck.
Connect through FTP or your host’s file manager, make sure hidden files are visible, and delete .maintenance from the root folder (the same folder that contains wp-config.php). Then reload your site.
How to Fix the White Screen in wp-admin Only {#wp-admin-only}
If your front end loads normally but wp-admin is blank, the cause is almost always something that only runs in the dashboard.
- Check debug.log first. With debugging on (Step 3), load wp-admin and look at the newest entry. Errors that appear only in the dashboard usually point to a plugin that adds admin menus, settings pages, or dashboard widgets.
- Rename the plugins folder. Rename wp-content/plugins to plugins-disabled through FTP, then try wp-admin again. If it loads, rename the folder back and test plugins one at a time as described in Step 5.
- Check the admin memory limit. Heavy dashboard pages can run out of memory even when the front end is fine. Review the WP_MAX_MEMORY_LIMIT setting in Step 4.
- Try a default theme. Some themes load extra code only in the dashboard, so a theme can break wp-admin without affecting the front end. See Step 6.
White Screen After Migration
A white screen of death after migration can happen for several reasons. The usual causes are:
- PHP version mismatch. This is the most common cause. If your new host runs a different PHP version than the old one, a plugin or theme written for the older version can crash on the newer one, or the other way round. Check the PHP version in your hosting control panel and compare it with what the old host used. Switching to a version your plugins and theme support often fixes the blank page immediately.
- A damaged or missing .htaccess file. See the .htaccess note below.
- Wrong file paths or permissions. Files copied over incompletely or with the wrong permissions can stop WordPress from loading.
- Missing PHP extensions. The new server may be missing an extension that a plugin depends on. The debug log or server error log will usually name it.
Other Causes Worth Checking
- Caching plugin serving a broken page. Clear your site’s cache (and any server-level or CDN cache) before assuming the worst.
- Corrupted core files. Re-upload fresh wp-admin and wp-includes folders from a matching WordPress.org download. This won’t touch your content.
- A damaged .htaccess file, especially right after a migration. This mainly applies to Apache or LiteSpeed hosting, since Nginx servers don’t use .htaccess at all. If you’re on Apache or LiteSpeed, try renaming the file temporarily, then go to Settings → Permalinks and click Save Changes to generate a fresh one.
A Security Note
If the blank page appeared without any update or change on your end, and you also notice other suspicious activity, like new admin accounts you didn’t create or unfamiliar files, treat it as a possible sign of compromise rather than a routine bug. Change your WordPress, database, and hosting passwords and run a malware scan before continuing.
How to Prevent This Going Forward
- Keep a recent backup before any plugin, theme, or core update
- Update plugins and themes one at a time instead of all at once, so a conflict is easy to isolate
- There’s no single memory limit recommended for every WordPress site. Base WP_MEMORY_LIMIT on what your site actually needs and what your hosting plan supports, rather than copying a number from a troubleshooting guide
- Check that your admin email inbox is one you actually monitor, so a Recovery Mode email doesn’t go unnoticed
- Turn debugging off and delete debug.log once you’ve finished troubleshooting
Frequently Asked Questions
How do I fix the WordPress white screen of death?
Start by checking your admin email for a Recovery Mode link, then see whether the blank page affects the whole site, just wp-admin, or one page. Turn on WP_DEBUG to see the actual error, check your PHP memory limit, deactivate plugins one at a time to find a conflict, and switch to a default theme if the problem isn't plugin related. Most cases are resolved by one of these steps.
Is my content gone if I see a blank white page?
No. This is almost always a display problem caused by PHP crashing, not data loss. Your posts, pages, and media are still in the database.
What's the difference between a blank white page and "This page isn't working"?
They're different problems. A blank white page usually means your server responded but WordPress or PHP failed while generating the page. "This page isn't working" is a connection-level issue instead.
Why does WordPress show nothing instead of an error message?
Most hosts hide PHP errors from visitors for security reasons. The error still happens, it's just hidden unless you turn on WP_DEBUG or check your server's error log.
What does "There has been a critical error on this website" mean?
It's the same kind of PHP fatal error that causes a blank page. Since WordPress 5.2, many fatal errors show this message instead of nothing, and WordPress may email the administrator a Recovery Mode link. The fixes in this guide apply to both.
Will increasing memory always fix it?
No. Memory exhaustion is a common cause, but plugin conflicts, theme errors, and corrupted files cause the same blank page. Checking your debug log first tells you which one you're actually dealing with.

