Tutorials

How to Fix 'There Has Been a Critical Error' in WordPress (2026 Recovery Guide)

By Daniel Reyes•October 2, 2026•4 min read

Disclosure: some links on this page are affiliate links. We may earn a commission at no extra cost to you. How we test and rate hosts.

Our top pick for most WordPress sites
Bluehost: free domain, free SSL, 24/7 support, 30-day money-back guarantee.
Check Bluehost Deal →

The error: "There has been a critical error on this website" — WordPress's wrapper for a fatal PHP crash since 5.2. The fast path: check your admin email for the recovery-mode link WordPress sent — it lets you log in and disable the culprit directly. If no email: enable WP_DEBUG, find the crashing file, disable it via FTP. Here are the fixes in order.

Step 1: Check for the Recovery-Mode Email (Fastest Fix)

When WordPress catches a fatal error, it emails the address in Settings → General with subject "Your Site is Experiencing a Technical Issue" and a special recovery-mode login link. Click it → you're logged into a safe-mode dashboard showing which plugin or theme caused the crash → deactivate it. This resolves the majority of cases in under two minutes.

Check spam. If no email exists (mail disabled, wrong admin address, you're not admin on record), recovery mode is unavailable — move to the manual method below.

Step 2: Identify the Culprit with WP_DEBUG

Without the email, you need to know what's crashing. Enable debug logging — it won't show errors publicly, only writes them to a file:

// In wp-config.php, above "That's all, stop editing" define( 'WP_DEBUG', true ); define( 'WP_DEBUG_LOG', true ); define( 'WP_DEBUG_DISPLAY', false );

Reload the site once, then check wp-content/debug.log. The fatal error line names the file — almost always a path under wp-content/plugins/plugin-name/ or wp-content/themes/theme-name/.

Step 3: Deactivate the Culprit via FTP

Once you know the offender, connect via FTP (FileZilla) or your host's File Manager:

  • Plugin → rename wp-content/plugins/plugin-name to plugin-name-off
  • Theme → rename wp-content/themes/theme-name (WordPress falls back to a default theme)

Renaming the folder deactivates it instantly — the site should come back. Then update the offending plugin/theme, or replace it if abandoned.

Step 4: If You Can't Identify a Single Plugin — Disable All

Rename the whole wp-content/plugins folder to plugins-off. If the site loads, a plugin caused it; rename back and disable them one at a time to isolate. If it still errors with plugins off, switch to a default theme (twentytwentyfour) — if that fixes it, your theme is the problem.

Step 5: Check Memory Limit and PHP Version

If no plugin/theme is the culprit, two common triggers remain:

  • Memory exhausted — add define( 'WP_MEMORY_LIMIT', '256M' ); to wp-config.php. If the host's PHP memory_limit is lower, contact them or see our memory limit guide.
  • PHP version incompatibility — an old plugin may crash on PHP 8.x, or a new one may require newer PHP than your host runs. Check the plugin's requirements vs your host's PHP version.

Step 6: Restore From Backup if All Else Fails

If the crash is in core files or you can't isolate it, restore from your host's backup or a backup plugin. A recent restore beats hours of debugging corrupted core files.

Prevention: Make Updates Non-Fatal

  • Update plugins one at a time — bulk updates hide which one breaks
  • Staging first — test updates on a copy before production
  • Automatic backups — a bad update is a 1-click restore, not a crisis
  • Hosting that helps — Bluehost's managed WP includes automatic backups, staging, and update management that catches bad updates before they take you down

Updates That Don't Take Your Site Down

Bluehost managed WordPress: automatic backups before updates, one-click staging, and WP Cloud infrastructure — so a bad plugin update is a rollback, not a panic.

Get Bluehost Managed WP →

Related: white screen of death, database connection error, 500 internal server error, stuck in maintenance mode.

Find Your Perfect Hosting Plan

What are you building?

Tell us about your project so we can match the perfect hosting plan.

Question 1 of 425% complete
Interactive Tool

Hosting Cost Calculator

See exactly how much you'll spend on hosting over time. Compare Bluehost vs popular alternatives and discover your potential savings.

Used to calculate transaction fees (Shopify charges 2% on sales)

Shopify Basic (3yr)
$1,044
Bluehost (3yr)
$444
You Save
$600
58% less than Shopify Basic

Frequently Asked Questions

What does 'There has been a critical error on this website' mean?

WordPress hit a fatal PHP error — usually a plugin/theme conflict, exhausted memory, or incompatible PHP version. WordPress 5.2+ catches the fatal and shows this instead of a blank white screen, and emails the admin a recovery-mode link.

How do I fix the critical error fast?

Check your admin email for the recovery-mode link — it lets you log in and disable the offending plugin/theme directly. If no email arrived, enable WP_DEBUG to identify the file, then rename that plugin/theme folder via FTP to deactivate it.

Why didn't I get the recovery email?

The email goes to the admin address in Settings > General — it may be in spam, or your host's mail may be disabled, or you're not the admin on record. If no email, you can't use recovery mode; use the FTP/debug method instead.

Is the critical error dangerous to my data?

No — it's a code crash, not data loss. Your content lives in the database untouched. The error blocks page display but doesn't delete anything.

Can a plugin update cause this?

Yes — the #1 trigger is a plugin/theme update that's incompatible with your WP core or PHP version. If it appeared right after an update, that update is the culprit; disable that plugin first.

How do I prevent critical errors?

Update plugins one at a time (not bulk), keep PHP version current but compatible, use a staging site to test updates, and pick hosting with automatic backups so a bad update is reversible.

Ready to launch?

Get Bluehost from $3.99/month with a free domain, free SSL, and 30-day money-back guarantee.

Start for $3.99 →

Related Articles