Since version 5.2, WordPress catches fatal PHP errors and shows "There has been a critical error on this website" instead of a blank page. At the same time it emails the site administrator a special link that lets you log in with the broken plugin or theme paused. This guide shows how to use it and what to do when the email never arrives.
Before you start
- Check the inbox of the address in Settings → General → Administration Email Address, including spam. The subject is "Your Site is Experiencing a Technical Issue".
- Have cPanel access ready as a fallback.
Use the recovery mode link
- Open the email. It names the plugin or theme that caused the error and the error message.
- Click the link ending in
wp-login.php?action=enter_recovery_modeand log in. - WordPress shows a notice that you are in recovery mode and that the faulty extension is paused for you.
- Go to Plugins (or Appearance → Themes) and deactivate the named extension, or update it if an update is available.
- Click Exit Recovery Mode in the admin bar and test the site in a private window.
The link is valid for a limited time. If it has expired, the next fatal error triggers a new email, though WordPress limits how often it sends them.
No email? Find the error yourself
- Open cPanel → Files → File Manager and check the
error_logfile in the site folder, or cPanel → Metrics → Errors. - Look for the latest PHP Fatal error. The path shows the culprit, for example
wp-content/plugins/old-slider/. - If there is no log entry, enable debug logging in
wp-config.phpand reload the broken page.
Disable the culprit without logging in
- Plugin: rename its folder in
wp-content/plugins, for example toold-slider-off. - Theme: rename the active theme's folder in
wp-content/themes. WordPress switches to an installed default theme. - Unknown: rename the whole
pluginsfolder toplugins-off, log in, rename it back and reactivate plugins one at a time.
Common causes
| Error mentions | Cause | Fix |
|---|---|---|
Allowed memory size exhausted | PHP memory limit | Raise memory_limit in cPanel |
Call to undefined function | Missing PHP extension or old code on new PHP | Enable the extension or update the plugin |
Cannot redeclare | Two plugins define the same function | Deactivate one of them |
Uncaught TypeError | Plugin not compatible with the PHP version | Update the plugin or adjust the PHP version |
Failed opening required | Incomplete update, missing file | Reinstall the plugin or core |
Change where the email goes
To send recovery emails to a developer instead of the site owner, add to wp-config.php:
define( 'RECOVERY_MODE_EMAIL', 'developer@example.com' );Make sure WordPress mail is delivered reliably by sending it through SMTP.
After the fix
- Check Tools → Site Health for remaining critical issues.
- If the cause was an update, report it to the plugin developer with the error message.
- Consider testing future updates on a staging site.
