How to Fix There Has Been a Critical Error on This Website

WordPress | Updated July 2026

"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.

Do Not Skip This

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.

Note

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.

  1. Open the mailbox for your site's admin email address, including the spam and junk folders.
  2. Look for a message with the subject "Your Site is Experiencing a Technical Issue" sent from your own site.
  3. Open it. The email names the exact plugin or theme that caused the crash, often with the specific file and line number.
  4. 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.
This Email Is the Single Fastest Fix

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.

  1. Click the Recovery Mode link in the technical-issue email. It opens the WordPress login screen.
  2. Log in with your normal administrator username and password.
  3. 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.
  4. 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.
  5. 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 Only Pauses What It Caught

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_options table under admin_email if 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.

Manual FTP Fix

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_DEBUG and read debug.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
The Path Points Straight at the Culprit

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.

Turn Debugging Back Off When You Are Done

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.

  1. 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/plugins to plugins-off to deactivate them all at once, reload, then rename it back and reactivate one at a time to find the bad one.
  2. 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 under wp-content/themes so WordPress falls back to a bundled default like Twenty Twenty-Four.
  3. PHP memory exhaustion. If the log shows Allowed memory size ... exhausted, the request ran out of memory. Raise it in wp-config.php and, if needed, in cPanel MultiPHP INI Editor. Our "WordPress Memory Exhausted" guide covers the exact limits and where to set them.
  4. 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.
  5. Corrupted core files. An interrupted update can damage a core file. Upload fresh wp-admin and wp-includes folders from a clean WordPress download, overwriting the old ones. Never touch wp-content or wp-config.php. If an extraction fails with a PCLZIP error, see ID 429.
  6. A broken functions.php edit. A stray character or unclosed brace pasted into the theme's functions.php is 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.
Tip

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.

Blank Page, No Text

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
If the Message Mentions the Database

"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.
Treat an Unexplained Critical Error as a Possible Hack

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.

  1. Identify the last point in time the site was working, ideally before the update or edit that triggered the error.
  2. In cPanel, use the backup or restore tool to roll the account (or just the affected files and database) back to that point.
  3. Reload your site to confirm it loads on the restored version.
  4. Re-apply the update or change more carefully, one item at a time, so you can catch the fault if it returns.
Restore, Then Re-Apply Slowly

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.

Open a Support Ticket

Quick Recap: The Critical Error in Six Steps

If you only remember six things from this guide, remember these:

  1. Check your admin email inbox for the "Your Site is Experiencing a Technical Issue" message, which names what broke.
  2. Use the Recovery Mode link in that email to log in with the offending plugin or theme paused, then fix it from wp-admin.
  3. No email? Turn on WP_DEBUG and WP_DEBUG_LOG in wp-config.php and read wp-content/debug.log for the exact file and line.
  4. Work the usual causes: plugin conflict, theme fault, memory, PHP version (ID 425), corrupted core, or a broken functions.php edit.
  5. Tell it apart from a blank white screen and from a database-connection error, and follow the right guide for what you actually see.
  6. 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

  • 0 Users Found This Useful

Was this answer helpful?

Related Articles

WordPress Error: The Uploaded File Could Not Be Moved

WordPress | Updated March 2026 The "uploaded file could not be moved to" error in WordPress...

JetPack says my website is offline

WordPress | Updated 2026 Quick Answer JetPack's uptime monitor can report false "offline"...

How to Fix the WordPress White Screen of Death

WordPress | Updated July 2026 The WordPress White Screen of Death is a blank page with no...

Elementor Critical Error with Both Elementor and Elementor Pro

WordPress | Updated March 2026 When both Elementor (free) and Elementor Pro are active and...

WordPress Site Search

WordPress | Updated 2026 WordPress includes a built-in site search that lets visitors find...



Save 30% on web hosting - Use coupon code Hosting30