"There has been a critical error on this website" is the message modern WordPress shows when it catches a fatal PHP error instead of leaving you a blank page. On Ultra Web Hosting shared, VPS, and dedicated plans it is almost always a plugin, a theme, exhausted memory, or a PHP version mismatch. The good news is that since WordPress 5.2 the platform emails your site administrator a special Recovery Mode link that lets you log in and pause the exact thing that broke. This guide shows you how to use that email first, and how to fix it by hand when the email never arrives.
- What the Critical Error Message Means
- First: Check Your Admin Email Inbox
- Using WordPress Recovery Mode
- No Email? Fall Back to Manual Fixes
- Turn On WP_DEBUG and Read the Log
- The Usual Causes and Quick Fixes
- How This Differs From the White Screen and Database Errors
- When It Is Malware, Not a Bug
- Restoring From a Backup as a Last Resort
Check the Admin Email, Then Use Recovery Mode
WordPress already knows what broke and it tried to tell you. Open your admin email inbox, find the technical-issue message, and click its Recovery Mode link. WordPress pauses the offending plugin or theme so you can log in and fix it.
- Look for the email titled "Your Site is Experiencing a Technical Issue"
- It names the exact plugin or theme that crashed
- Its Recovery Mode link logs you into a working dashboard
- No email? Turn on
WP_DEBUGand fix it by hand
The Recovery Mode Email Is the Fastest Path
Before you touch File Manager or FTP, spend two minutes on your admin inbox. The Recovery Mode email hands you the culprit's name and a login link that bypasses the crash. That single link saves the folder-renaming guesswork covered later in this guide. If you never got it, that is a signal your site mail is not sending, and Section 04 picks up from there.
- Recovery Mode link: log in with the broken component paused
- No email: your WordPress admin address is wrong or mail is failing
- Either way, Sections 05 and 06 get you back in
01. What the Critical Error Message Means
When PHP hits a fatal error, the script stops dead. In older WordPress that left a pure blank page, the White Screen of Death. Since WordPress 5.2 the platform installs a shutdown handler that catches most fatal errors and shows a friendly page instead: "There has been a critical error on this website." Logged-in administrators sometimes see a slightly longer version that adds "There has been a critical error on this website. Please check your site admin email inbox for instructions."
That second sentence is the important part. WordPress did not just show you a nicer error page. It also tried to email your site administrator with the details and a way back in. So the message is not a dead end, it is a starting point. The underlying problem is a real PHP fatal error, the same class of fault that used to cause a blank screen, but now WordPress is helping you find it.
If you instead see a genuinely empty white page with no text at all, WordPress did not catch the error, and you want our companion guide "How to Fix the WordPress White Screen of Death" (ID 128 covers the related 500 Internal Server Error). If you see "Error establishing a database connection," that is a different fault entirely and our "Error Establishing a Database Connection in WordPress" guide is the right one. Section 07 helps you tell these apart.
02. First: Check Your Admin Email Inbox
Before anything else, open the inbox for your WordPress administrator email address. This is the address set under Settings > General > Administration Email Address in wp-admin, which is not always the same as the address you log in with. When the critical error fired, WordPress attempted to send a message there.
- Open the mailbox for your site's admin email address, including the spam and junk folders.
- Look for a message with the subject "Your Site is Experiencing a Technical Issue" sent from your own site.
- Open it. The email names the exact plugin or theme that caused the crash, often with the specific file and line number.
- Near the bottom is a Recovery Mode login link. That link is your fastest route back into the dashboard. Section 03 walks through using it.
If the Recovery Mode email is sitting in your inbox, you are minutes from a fix. It tells you what broke and hands you a login link that pauses that exact component. Everything after Section 03 in this guide exists for the case where that email never showed up. Read the email first, and you may skip the rest.
03. Using WordPress Recovery Mode
Recovery Mode is a special login state that WordPress enters through the link in that email. When you log in this way, WordPress pauses the plugin or theme it identified as the cause, so the fatal error no longer fires and you can reach a working /wp-admin dashboard.
- Click the Recovery Mode link in the technical-issue email. It opens the WordPress login screen.
- Log in with your normal administrator username and password.
- WordPress loads the dashboard with a notice at the top telling you which plugin or theme has been paused. A paused component is loaded in a safe, deactivated-for-you state.
- Go to Plugins (or Appearance > Themes) and act on the flagged item. Deactivate it, update it if an update is waiting, or delete and reinstall it.
- Once the offending component is dealt with, click Exit Recovery Mode in the admin bar. Reload your public site to confirm it loads normally.
Recovery Mode pauses the component that threw the fatal error WordPress caught. If two things are broken, fixing the first can surface the second on the next reload, and WordPress will send a fresh email and Recovery Mode link. Work through them one at a time. If updating the plugin does not fix it, deactivate it and reach out to its developer before reactivating.
04. No Email? Fall Back to Manual Fixes
Plenty of sites never receive the Recovery Mode email. That is not a WordPress bug, it usually means one of these:
- The admin email address is wrong or abandoned. Check what is set under Settings > General if you can reach the dashboard, or in the
wp_optionstable underadmin_emailif you cannot. - The site cannot send mail. Shared hosting PHP mail is unreliable and often filtered. If your WordPress notifications generally do not arrive, the site's mail is the real issue, and configuring proper SMTP is the long-term fix.
- The error is too severe for the handler. Some fatal errors happen so early that WordPress cannot catch them or send anything, and you get a blank page instead of the friendly message.
When the email is not coming, you diagnose and fix the crash directly through cPanel File Manager or FTP. The next two sections do exactly that: make the error visible, read it, then apply the matching fix.
You Got the Email
The fast path. The email names the culprit and the Recovery Mode link logs you into a working dashboard with that component paused. Fix it from inside wp-admin in a few clicks.
- No File Manager or FTP needed
- WordPress already identified what broke
- Deactivate or update from the Plugins screen
You Did Not Get the Email
The fallback. Work through cPanel File Manager: turn on WP_DEBUG, read the log to see the exact file, then deactivate plugins or the theme by renaming folders until the site loads.
- Enable
WP_DEBUGand readdebug.log - Rename the plugins folder to deactivate all at once
- Switch to a default theme by renaming the active one
05. Turn On WP_DEBUG and Read the Log
The critical error page hides the actual PHP error from visitors by design. To see it, switch on WordPress debug logging so the exact fault is written to a file you can read. This is the single most useful step when the email did not arrive.
Open wp-config.php in cPanel File Manager (right-click, Edit). Find the line that reads /* That's all, stop editing! Happy publishing. */ and add the following above it. If a define('WP_DEBUG', false); line already exists, replace it rather than adding a duplicate.
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );
@ini_set( 'display_errors', 0 );
Save the file, reload your site once to trigger the error, then open wp-content/debug.log in File Manager and read the last few lines. A caught fatal error names the exact file and line:
PHP Fatal error: Uncaught Error: Call to undefined function
some_plugin_function() in
/home/user/public_html/wp-content/plugins/bad-plugin/bad-plugin.php:212
Read the file path in the error before you change anything. A path under wp-content/plugins/bad-plugin/ means that plugin is the fault. A path under wp-content/themes/your-theme/ points at the theme. A line mentioning functions.php usually means a recent theme edit. The log turns guesswork into a targeted fix.
Once the site is fixed, set WP_DEBUG back to false and delete wp-content/debug.log. Leaving debug logging on a live site fills the disk over time and can expose server file paths to anyone who guesses the log URL. This is a troubleshooting switch, not a permanent setting.
06. The Usual Causes and Quick Fixes
The critical error page and the classic white screen share the same root causes, so the fixes are the same. Rather than repeat every step here, this section names each cause, gives the quick fix, and points to the guide with the full walk-through where one exists.
- Plugin conflict. The most common cause by far, and usually right after a plugin update. If you can reach wp-admin, deactivate plugins from the Plugins screen. If not, in File Manager rename
wp-content/pluginstoplugins-offto deactivate them all at once, reload, then rename it back and reactivate one at a time to find the bad one. - Theme fault. Common after a theme update or a direct edit to
functions.php. From wp-admin, switch to a default theme under Appearance > Themes. If the dashboard is down, rename the active theme's folder underwp-content/themesso WordPress falls back to a bundled default like Twenty Twenty-Four. - PHP memory exhaustion. If the log shows
Allowed memory size ... exhausted, the request ran out of memory. Raise it inwp-config.phpand, if needed, in cPanel MultiPHP INI Editor. Our "WordPress Memory Exhausted" guide covers the exact limits and where to set them. - PHP version mismatch after an update. A plugin or WordPress update that needs newer PHP throws fatal errors on an old version, and occasionally a new PHP version breaks an old plugin. Switch the version in cPanel MultiPHP Manager; our guide on changing your PHP version (ID 425) walks through it.
- Corrupted core files. An interrupted update can damage a core file. Upload fresh
wp-adminandwp-includesfolders from a clean WordPress download, overwriting the old ones. Never touchwp-contentorwp-config.php. If an extraction fails with a PCLZIP error, see ID 429. - A broken functions.php edit. A stray character or unclosed brace pasted into the theme's
functions.phpis a classic trigger. The debug log points right at the line. Paste back a known-good copy, or remove the snippet you just added. Our "How to Fix the WordPress White Screen of Death" guide covers safe theme editing with a child theme.
If none of these clears it but the site was fine yesterday, think about what changed: an update, a new plugin, an edited file. The debug log plus "what changed last" almost always narrows a critical error to one component. Ongoing memory pressure on a busy site can also point at deeper tuning work; see our guide on optimizing WordPress performance (ID 276).
07. How This Differs From the White Screen and Database Errors
Three WordPress failures look similar from the outside but need different guides. Match what you actually see on screen to the right one so you are not applying database fixes to a plugin crash.
White Screen of Death
A genuinely empty page means WordPress did not catch the error. The causes overlap, but the diagnosis starts with turning the error back on.
- See "How to Fix the WordPress White Screen of Death"
- Related 500 error is covered in ID 128
- Same fixes, different starting point
Critical Error (This Guide)
The friendly "critical error" message means WordPress caught a fatal PHP error and, for admins, tried to email a Recovery Mode link. Start with your inbox.
- Check the admin email first, Section 02
- Use Recovery Mode, Section 03
- Fall back to WP_DEBUG, Sections 05 and 06
"Error establishing a database connection" is not a caught PHP fatal error at all. It means WordPress cannot reach or authenticate to its MySQL database, usually a wrong credential in wp-config.php, a crashed database, or a corrupt table. None of the fixes in this guide apply. Use our "Error Establishing a Database Connection in WordPress" guide instead.
08. When It Is Malware, Not a Bug
Most critical errors are ordinary faults, a plugin update gone wrong or a bad edit. But a critical error that appears with no change on your side, especially alongside files you do not recognize, can be the aftermath of a compromise. Injected code that half-broke, or a malicious file with a syntax error, throws the same fatal error as a legitimate bug.
- The error appeared without any update, edit, or install on your part.
- The debug log points at a file with an odd name, or one full of obfuscated code, base64 strings, or
eval(calls. - You find plugin folders, PHP files, or admin users you did not create.
- Fixing one error only surfaces another, as if something is actively rewriting files.
If the fatal error traces back to unfamiliar files or injected code rather than a plugin you installed, stop applying fixes and treat the site as potentially compromised. Cleaning the visible error without removing the underlying malware just resets the clock. Our guide on cleaning a hacked WordPress site (ID 478) walks through scanning, cleanup, and hardening. When in doubt, open a ticket and we will scan the account for you.
09. Restoring From a Backup as a Last Resort
If you have checked the admin email, tried Recovery Mode, read the debug log, and worked through the causes without success, the cleanest path back is to restore the last known-good backup. This undoes whatever change broke the site in one move, rather than chasing the error further.
- Identify the last point in time the site was working, ideally before the update or edit that triggered the error.
- In cPanel, use the backup or restore tool to roll the account (or just the affected files and database) back to that point.
- Reload your site to confirm it loads on the restored version.
- Re-apply the update or change more carefully, one item at a time, so you can catch the fault if it returns.
Every Ultra Web Hosting plan keeps automatic backups, so a rollback is usually available even if you did not take one yourself. After restoring, do not simply repeat the exact change that broke the site. Update the plugin or theme in a staging copy first, or apply changes one at a time with the debug log open, so a repeat fatal error is caught immediately.
Still Seeing the Critical Error?
If you have checked the admin email, tried Recovery Mode, and worked through the causes but the site still shows the critical error, our support team can read the error log on the server and pinpoint the fault for you. Send us the domain and the last few lines of your debug.log and we will take it from there.
Quick Recap: The Critical Error in Six Steps
If you only remember six things from this guide, remember these:
- Check your admin email inbox for the "Your Site is Experiencing a Technical Issue" message, which names what broke.
- Use the Recovery Mode link in that email to log in with the offending plugin or theme paused, then fix it from wp-admin.
- No email? Turn on WP_DEBUG and WP_DEBUG_LOG in
wp-config.phpand readwp-content/debug.logfor the exact file and line. - Work the usual causes: plugin conflict, theme fault, memory, PHP version (ID 425), corrupted core, or a broken
functions.phpedit. - Tell it apart from a blank white screen and from a database-connection error, and follow the right guide for what you actually see.
- If it looks like a hack (ID 478) or nothing else works, clean it or restore a backup and re-apply changes carefully.
Last updated July 2026 · Browse all WordPress articles
