Since WordPress 5.2, when a plugin or theme crashes the site, WordPress shows a short message instead of a broken page: "There has been a critical error on this website." On the admin side it may add "Please check your site admin email inbox for instructions."
That message is WordPress protecting you. It caught a fatal PHP error, stopped, and in most cases emailed you a way back in. This guide walks through using that email, finding the cause when there's no email, and knowing when to hand it over.
What the message means
WordPress runs on PHP. When a piece of PHP code fails so badly that the page can't continue, that is a "fatal error". Before WordPress 5.2 you'd get a white screen. Now WordPress's fatal error handler catches it, shows the critical error message, and records which plugin or theme caused it.
The common causes are:
- A plugin or theme update with a bug, or one that clashes with another plugin
- Code that needs a newer PHP version than your server runs, or that newer PHP no longer accepts
- The site running out of PHP memory
- A custom code snippet added to the theme's
functions.phpfile
Your posts, pages and orders live in the database and are normally untouched.
Step 1: Use the recovery mode email
When the error happens, WordPress emails the site's admin address with the subject "Your Site is Experiencing a Technical Issue". It usually names the plugin or theme at fault and includes a special login link.
- Search your inbox and spam folder for that subject line. It goes to the email set under Settings, General, which may be an old address or a developer's.
- Click the link that starts with your site address and ends in
?action=enter_recovery_mode, then log in as normal. - You'll see the dashboard with a notice at the top saying you're in recovery mode. On the Plugins screen, the failing plugin is marked and paused for your session only.
- Deactivate that plugin (or switch theme under Appearance, Themes if the theme is named), then click "Exit recovery mode".
- Load the site in a private window to check it works for visitors.
The link expires after a day. If it has expired, the next visit that triggers the error sends a fresh one, though WordPress limits how often it sends them.
Step 2: No email? Work on the files
If the email never arrived, you can do the same thing by hand.
- Log in to your hosting account and open the File Manager. Find the folder that contains
wp-admin,wp-contentandwp-config.php, usuallypublic_html. - Open
wp-content/plugins. You'll see one folder per plugin. - If you know which plugin was updated last, rename its folder, for example
some-plugintosome-plugin-off. If you don't know, rename the wholepluginsfolder toplugins-off. - Reload the site. If it works, rename the folder back and reactivate plugins one by one from the dashboard until the error returns. The last one you activated is the cause.
If plugins aren't the cause, do the same with your active theme's folder in wp-content/themes, as long as a default theme such as Twenty Twenty-Five is installed for WordPress to fall back on.
Step 3: Read the debug log
When you can't tell which plugin it is, let WordPress write the error to a file.
- Open
wp-config.phpin the file manager's editor. - Replace
define( 'WP_DEBUG', false );with:define( 'WP_DEBUG', true );define( 'WP_DEBUG_LOG', true );define( 'WP_DEBUG_DISPLAY', false ); - Reload the broken page once, then open
wp-content/debug.log. - Look for a line beginning "PHP Fatal error". It ends with a file path such as
/wp-content/plugins/example-forms/includes/class-form.php on line 212. The folder afterplugins/orthemes/tells you what to switch off.
Your host may also keep its own PHP error log in the control panel, which is worth checking if debug.log stays empty. Turn debugging off and delete the log when you're done, because it can expose server details.
Step 4: Check the PHP version
If the error started without anyone updating anything, your host may have upgraded PHP. The debug log often shows this as an "Uncaught Error" about a function that doesn't exist, or a type error.
In your hosting panel, look for a setting called "PHP version" or "PHP Selector". It shows the current version, such as 8.3. Switching back to the previous version for a day is a fair test: if the site works, outdated plugin or theme code is the cause. Treat that as a short stopgap only. Old PHP versions stop getting security fixes, so the real fix is updating or replacing the code that broke.
Step 5: Raise the memory limit
A log line that says "Allowed memory size of 134217728 bytes exhausted" means PHP ran out of memory. Add this line to wp-config.php, above the comment that says "That's all, stop editing!":
define( 'WP_MEMORY_LIMIT', '256M' );
If the error continues, your host's own limit is lower and only they can raise it. A site that keeps hitting memory limits usually has a heavy plugin worth replacing.
When to stop and call someone
Get help if the log points to your theme's custom code, if the plugin at fault runs your checkout or bookings and can't simply be switched off, if you aren't comfortable editing wp-config.php, or if the error keeps coming back after updates. Unexpected file names in the log, or admin users you don't recognise, suggest a hack rather than a bug.
Our emergency WordPress repair is a flat $599. We back up the site first, find the error, fix it and explain the cause in plain English. Most fixes are done by the next morning. Order by 5pm Eastern and it's done by 9am Eastern.
Rather we handle it? Flat $599, 30 days of the Care plan included. No fix, no charge.
Start my fixQuestions we get asked
What does "There has been a critical error on this website" mean?
WordPress hit a PHP fatal error it could not recover from, usually in a plugin or theme, and showed this message instead of a broken page. Your content is normally safe.
I didn't get the recovery mode email. What now?
Check spam, and check which address is set as the site's admin email. If it still isn't there, use your host's file manager to rename the plugin or theme folder named in the error log, or the whole plugins folder.
Is the recovery mode link safe to use?
Yes. It logs you into a protected session where the failing plugin or theme is paused for you only. Visitors still see the error until you deactivate or fix the cause.
Can a PHP version change cause a critical error?
Yes, often. Hosts upgrade PHP, and old plugin or theme code that newer PHP no longer accepts stops working. Updating the plugin, or temporarily switching PHP back in your hosting panel, usually confirms it.
How fast can you fix it?
Most fixes are done by the next morning. Order by 5pm Eastern and it's done by 9am Eastern. The emergency fix is a flat $599, and if we can't fix it you don't pay.