Skip to content
Aaron Carmen
Errors and fixes

WordPress White Screen of Death: How to Fix It

By Aaron CarmenUpdated October 19, 20264 min readTested on WordPress 7.1.3, October 19, 2026

Quick answer

A WordPress white screen, or the message "There has been a critical error on this website", almost always means a PHP fatal error. Check the admin email for WordPress's recovery link first. If there's none, turn on the debug log, read which plugin or theme folder it names, and rename that folder. The site comes back and you can fix the cause.

What you see

  • A completely blank white page, on the site, in wp-admin or both
  • "There has been a critical error on this website"
  • "Please check your site admin email inbox for instructions" when you try to log in
  • It started right after updating or installing a plugin, a theme or WordPress itself
On this page
  1. What you’ll actually see
  2. 1. Check your email for the recovery link
  3. 2. Turn on the debug log to find the cause
  4. 3. Disable the broken plugin
  5. 4. Switch away from a broken theme
  6. 5. Raise the memory limit
  7. A truly blank page, with no message
  8. Once the site is back

A WordPress white screen means PHP hit a fatal error and stopped before the page could load. On WordPress 5.2 and later you’ll usually see “There has been a critical error on this website” instead of a blank page, but it’s the same problem with the same fixes.

I broke a test site on purpose to check every step below. The test ran on WordPress 7.1.3 with PHP 8.3, and the screenshots come from it. The fixes are in order, fastest first.

What you’ll actually see

When a plugin or theme breaks, visitors get this:

WordPress error page with the text There has been a critical error on this website and a link to troubleshooting help
What visitors saw after a broken plugin update. The server returned an HTTP 500 error.

If you’re logged in and try to open your dashboard, the message adds one line:

WordPress error page saying there has been a critical error and asking the admin to check their site admin email inbox for instructions
The same error in wp-admin, pointing you to the recovery email.

A completely blank page with no message at all usually means an error WordPress couldn’t catch, often a typo in wp-config.php. That case has its own section below.

When WordPress catches a fatal error, it emails the site’s admin address with a link to recovery mode. According to WordPress’s own announcement of the feature, that link logs you in with the broken plugin or theme paused, so you can reach the dashboard and deactivate or update it.

Check the inbox (and spam folder) of the email address under Settings → General. My test site couldn’t send email, so I couldn’t test this step myself. If no email arrives, or the address is one nobody reads, go to step 2.

2. Turn on the debug log to find the cause

The debug log tells you exactly which file failed. Open wp-config.php in your site’s main folder through your host’s file manager or FTP, and replace the WP_DEBUG line with:

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

WP_DEBUG_DISPLAY set to false keeps the errors in the log and off the page, so visitors don’t see file paths from your server. Some guides tell you to set it to true. Don’t do that on a live site.

Reload the broken page, then open wp-content/debug.log. On my test site, the important line was:

PHP Fatal error:  Uncaught Error: Call to undefined function lab_contact_widget_register_blocks() in /wordpress/wp-content/plugins/lab-contact-widget/lab-contact-widget.php:11

The part that matters is the folder after wp-content. Here it’s plugins/lab-contact-widget, so that plugin is the cause. If it says themes/ and a theme name, it’s the theme. If it says Allowed memory size ... exhausted, go to step 5.

3. Disable the broken plugin

In your file manager, go to wp-content/plugins and rename the folder the log named, for example from lab-contact-widget to lab-contact-widget-off.

On my test site, the site came back as soon as the folder was renamed. In the dashboard, WordPress had deactivated the plugin and said why:

WordPress Plugins screen with a notice saying the plugin has been deactivated due to an error: Plugin file does not exist
WordPress deactivates a plugin whose folder has been renamed.

Then rename the folder back. The plugin stays deactivated until you choose to turn it on. Check for an update or a fix from its developer before you do.

No log, or no plugin named in it? Rename the whole plugins folder to plugins-off. That deactivates every plugin at once. If the site comes back, rename it to plugins and reactivate them one at a time until the error returns.

4. Switch away from a broken theme

If the log names a file in wp-content/themes/, rename that theme’s folder.

This step has a detail most guides skip. On my test site, after renaming the theme folder, the site didn’t switch to a default theme straight away. It showed a different error: “Template is missing.” WordPress only switched themes when I opened Appearance → Themes in the dashboard:

WordPress Themes screen with a notice saying the active theme is broken and WordPress is reverting to the default theme
Opening Appearance → Themes made WordPress switch to its default theme.

So after renaming, log in and open Appearance → Themes once. It only works if a default WordPress theme, such as Twenty Twenty-Five, is still installed, so don’t delete them all.

5. Raise the memory limit

If the log says Allowed memory size of ... bytes exhausted, PHP ran out of memory. Add this line to wp-config.php, above the line that says “That’s all, stop editing!”:

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

On my test site this raised PHP’s limit from 256 MB to 512 MB, and the job that crashed finished. WordPress’s documentation warns that some hosts don’t allow WordPress to raise the limit. If the error stays, ask your host to raise it, and find out what is using so much memory. It’s often a single plugin or a very large import.

A truly blank page, with no message

If the page is completely white and none of the above shows up, the error happened before WordPress could catch it. The usual cause is a typo in wp-config.php, often from editing it to fix something else.

I tested this by deleting one semicolon. My test site showed a “Parse error” naming wp-config.php and the line number. Most live hosts hide PHP errors, because PHP’s own production settings turn display_errors off, so on a live site that same typo shows a blank page. The debug log won’t help here either: nothing was written to it, because WordPress failed before reading the logging settings.

Undo your last change to wp-config.php, or restore it from a backup. If you didn’t change it, check your host’s PHP error log, which most control panels show under logs or errors.

Once the site is back

  • Set WP_DEBUG back to false, or remove the three lines you added.
  • Delete wp-content/debug.log. On my test site, anyone could open it in a browser at /wp-content/debug.log, and it lists your server’s file paths.
  • Update or replace the plugin or theme that caused it before you turn it back on.

If your site breaks after updates more than once, the problem is usually how updates are handled, not bad luck. Testing updates before they reach the live site prevents most white screens, and that’s part of my WordPress development work. A slow site that isn’t broken is a different problem; see how to speed up a WordPress site.

FAQ

Common questions

Why does my WordPress site show a white screen?

Almost always a PHP fatal error: a plugin or theme calls code that doesn't exist, has a typo, or runs out of memory. On most live hosts PHP hides error messages, so instead of the error you see a blank page or WordPress's critical error message. The debug log tells you which file caused it.

Is the white screen of death the same as "There has been a critical error on this website"?

Yes, the cause is the same. Since WordPress 5.2, WordPress catches most fatal errors and shows that message instead of a blank page. A truly blank page is now mostly caused by errors WordPress can't catch, such as a typo in wp-config.php.

Will I lose my content fixing a white screen?

No. Posts, pages and settings live in the database, which these fixes don't touch. Renaming a plugin folder deactivates that plugin, and renaming a theme folder makes WordPress switch to a default theme. Your content stays where it is.

Should I deactivate all plugins at once?

Only if you can't find the cause. Renaming the whole plugins folder deactivates everything, including security and caching plugins, and you then reactivate them one by one. The debug log usually names the exact plugin, so you only need to disable one.

What if the white screen is only in wp-admin?

The same fixes apply. A plugin that only loads in the admin area can break wp-admin while the public site keeps working. The debug log names it in the same way.

Aaron Carmen, SEO specialist

About the author

Aaron Carmen

Senior WordPress Developer and SEO Specialist

I've built and optimized WordPress websites since 2013, 13+ years in total, including 9.5 years building WordPress sites for every client of a dental marketing agency. Today I help local businesses and agencies with WordPress development and SEO, so they get found on Google Search, Google Maps and AI search.

WordPress is a trademark of the WordPress Foundation. Aaron Carmen is not affiliated with or endorsed by the WordPress Foundation or the WordPress open source project.

Contact

Want this done for you?

Tell me about your site and what you need. I'll reply within one business day with any questions, then a fixed quote.

  • Reply within one business day
  • No obligation, no hard sell
  • Form and email only, calls optional
What you need

Prefer email? hello@aaroncarmen.com