WordPress troubleshooting

WordPress “Critical Error” After an Update: How to Fix It

The message means PHP hit a fatal error, almost always from a plugin, a theme, or a PHP version mismatch. You can usually find the exact cause in a few minutes.

“There has been a critical error on this website.” If that sentence replaced your home page right after you clicked Update, the site is not gone. WordPress hit a fatal PHP error and stopped loading the page so it would not show broken output. The fix is to find which piece of code caused it.

What the error actually means

WordPress runs on PHP. When a plugin, theme, or WordPress core calls a function that doesn’t exist, runs out of memory, or uses syntax the server’s PHP version doesn’t support, PHP stops with a fatal error. Since WordPress 5.2, instead of a blank white screen you see the “critical error” message, and the site administrator is sent an email with details.

After an update, the cause is almost always one of these:

  • A plugin update that conflicts with another plugin or with your theme.
  • A theme or plugin that needs a newer (or older) PHP version than your hosting runs.
  • An update that only partly finished, leaving mismatched files.
  • Custom code in the theme’s functions.php that relied on something the update changed.

Step 1: check the admin email

Open the inbox for the site’s admin email address and look for a message titled “Your Site is Experiencing a Technical Issue.” It names the plugin or theme that caused the error and includes a recovery mode link. Recovery mode lets you log in to the dashboard with the faulty plugin paused, so you can deactivate it or roll it back.

If the email arrived, this is often the whole fix: log in through the link, deactivate the named plugin, and confirm the site loads.

Step 2: turn on the debug log

If there is no email, find the error yourself. Using your host’s file manager or SFTP, open wp-config.php and add these lines above the line that says “That’s all, stop editing”:

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

Reload the broken page, then open wp-content/debug.log. The last “PHP Fatal error” line names the file and line number, and the folder path tells you which plugin or theme it belongs to. Many hosts also show the same error in their PHP error log.

When you are done, set WP_DEBUG back to false. Leaving debug mode on in production can expose file paths to visitors.

Step 3: disable the plugin or theme without the dashboard

If you can’t reach the dashboard, rename the plugin’s folder in wp-content/plugins/ (for example, add -off to the end). WordPress deactivates a plugin it can’t find. If you don’t know which plugin it is, rename the whole plugins folder, confirm the site loads, rename it back, and re-enable plugins one at a time.

For a theme, rename its folder in wp-content/themes/ and WordPress falls back to a default theme, as long as one is installed.

Step 4: check the PHP version

If the log mentions syntax errors or undefined functions in code that hasn’t changed, compare the plugin’s required PHP version (on its WordPress.org page or changelog) with the version in your hosting control panel. Older plugins can break on PHP 8, and some new plugins require it. Change the PHP version only after taking a backup, and test the whole site afterwards.

Step 5: restore a backup if you need to

If the site is a store or takes bookings and every minute counts, restoring the most recent backup is a legitimate first move. Then repeat the update on a staging copy to find the conflict without customers watching.

How to avoid this next time

  • Take a full backup (files and database) before updating anything.
  • Update plugins one at a time, or in small groups, so you know which one caused a problem.
  • Test major updates on a staging copy first, especially WooCommerce, page builders, and anything that touches checkout.
  • Keep PHP on a version your plugins and theme support.
  • Remove plugins you no longer use. Fewer plugins means fewer conflicts.

If you would rather not do this yourself, this is one of the most common fixes DR3 handles: find the cause in the logs, fix it properly, and check the rest of the site before handing it back.

FAQ

Frequently asked questions

What causes “There has been a critical error on this website” in WordPress?

A fatal PHP error. After an update it is almost always a plugin or theme conflict, code that needs a different PHP version than your server runs, or an update that did not finish.

How do I fix a WordPress critical error without access to the dashboard?

Use the recovery mode link in the admin email if you received one. Otherwise, rename the faulty plugin’s folder in wp-content/plugins (or the theme’s folder in wp-content/themes) using your host’s file manager or SFTP. WordPress deactivates what it can’t find.

Where do I find the WordPress error log?

Turn on WP_DEBUG and WP_DEBUG_LOG in wp-config.php, reload the broken page, and open wp-content/debug.log. Many hosts also show PHP errors in their control panel.

Is it safe to leave WP_DEBUG turned on?

No. Turn it off once the problem is fixed, because debug output can reveal file paths and other details to visitors.

Start with the technical side

Rather have a developer handle it?

Send the site link and a few lines about what is going on. Don will reply with how he would fix it.

Based in New Rochelle, NY, serving Westchester, New York City, and the tri-state area. We work remotely with clients across the US and are happy to meet in person nearby.