How to Fix “There Has Been a Critical Error on This Website” in WordPress
⚡ Quick Fix Summary
If you’re staring at the message “There has been a critical error on this website” — don’t panic. The problem is almost always one of these:
- A faulty plugin that just updated
- A theme conflict after a WordPress update
- PHP version mismatch on your server
- Memory limit exhaustion
- Corrupted WordPress core files
Fix order: Check recovery email → Disable plugins → Switch theme → Increase memory → Update PHP → Restore backup.
📋 Table of Contents
- What Causes This Error
- Step 1: Recovery Mode Email
- Step 2: Enable Debug Mode
- Step 3: Disable All Plugins
- Step 4: Switch to Default Theme
- Step 5: Increase Memory Limit
- Step 6: Update PHP Version
- Step 7: Replace Core Files
- Step 8: Fix .htaccess
- Step 9: Repair Database
- Step 10: Restore a Backup
- Plugin-Specific Fixes
- Prevention Tips
- Recommended SEO Tool
- FAQ
What Causes the “There Has Been a Critical Error on This Website” Message?
I’ve dealt with this error more times than I care to admit. It usually hits at the worst possible moment — right after a plugin update, or after you just switched themes. The message itself is intentionally vague, which makes it frustrating.
Here’s a breakdown of the most common culprits and how often each one is responsible:
Most Common Causes of WordPress Critical Errors
Based on common WordPress support forum reports and community data
| Cause | How It Happens | Difficulty to Fix |
|---|---|---|
| Faulty Plugin Update | Plugin code conflicts with WordPress core or PHP version | Easy |
| Theme Conflict | Active theme has incompatible code after a WP update | Easy |
| PHP Version Mismatch | Hosting runs old PHP; plugins need newer versions | Medium |
| Memory Exhaustion | Server runs out of RAM for WordPress to execute | Medium |
| Corrupted Core Files | Hack, failed update, or bad FTP upload | Medium |
| Database Error | Corrupt tables after crash or botched migration | Harder |
| Bad Custom Code | functions.php edits, child theme errors | Medium |
Check the Recovery Mode Email from WordPress
When WordPress detects a fatal error, it automatically sends an email to your admin address. This is your first and fastest route to a fix. Check your inbox (and spam folder) for a subject like “Your site is experiencing a technical issue”.
What to Look For Inside the Email
- The name of the plugin or theme causing the error
- The exact PHP fatal error message
- A Recovery Mode login link — click this!
If Recovery Mode Works
Use the recovery link to log into a special admin mode. Navigate to Plugins, find the offending plugin, and deactivate it. Then update it or replace it with an alternative.
If Recovery Mode Doesn’t Work
No email received, or the link is expired? Move to Step 2. You’ll need to get your hands dirty with the file manager.
Enable WordPress Debug Mode
When your site is broken and there’s no helpful error message on screen, debug mode is your best diagnostic tool. It writes errors to a log file so you can read exactly what went wrong.
How to Access wp-config.php
- Via File Manager: Login to cPanel → File Manager → public_html
- Via FTP: Use FileZilla or similar FTP client
- Via Hosting Control Panel: Most managed hosts have a built-in editor
Add These Debug Settings to wp-config.php
Open wp-config.php and add these lines before the line that says /* That's all, stop editing! */:
// Enable debug logging define('WP_DEBUG', true); define('WP_DEBUG_LOG', true); define('WP_DEBUG_DISPLAY', false);
Locate the Debug Log
After saving, reproduce the error by visiting your site, then look for the log at:
/wp-content/debug.log
Open it and look for lines like PHP Fatal error. They’ll usually name the exact file and line causing the problem.
Disable All Plugins Manually (Without Admin Access)
This is the most reliable fix when you can’t access your WP admin dashboard. Renaming the plugins folder forces WordPress to deactivate all plugins at once.
Method: Rename the Plugins Folder
- Open your hosting File Manager
- Navigate to
wp-content - Right-click the
pluginsfolder - Rename it to
plugins-disabled - Visit your website
Finding the Faulty Plugin
Once the site loads, rename the folder back to plugins. Then activate plugins one by one, refreshing after each one until the error returns. That last plugin you activated is your problem.
Switch to a Default WordPress Theme
Themes can cause critical errors just as easily as plugins — especially after a major WordPress version update. The fix is the same idea: rename the active theme folder to force WordPress to load a default theme.
Why Themes Cause Critical Errors
- Outdated PHP functions in old theme files
- Incompatible code after a WordPress core update
- Broken child theme setup
- Custom code added directly to functions.php
How to Disable Your Theme via File Manager
Navigate to wp-content/themes/ and rename your active theme folder (e.g. divi → divi-disabled). WordPress will automatically fall back to a default theme.
| Default Theme | WordPress Version | PHP Compatible |
|---|---|---|
| Twenty Twenty-Five | WP 6.7+ | PHP 8.0+ |
| Twenty Twenty-Four | WP 6.4+ | PHP 7.4+ |
| Twenty Twenty-Three | WP 6.1+ | PHP 7.4+ |
💡 Site back online? Now grow your traffic with AI-powered SEO. Soro SEO helps bloggers rank faster with smarter content planning.
Try Soro SEO Free →Increase the WordPress Memory Limit
WordPress needs enough server memory (RAM) to run PHP scripts. When memory runs out, you get a critical error — sometimes without any clear indication that memory was the cause. This happens a lot after installing resource-heavy plugins like page builders.
Signs Your Memory Limit Is Exhausted
Add This to wp-config.php
// Increase WordPress memory limit define('WP_MEMORY_LIMIT', '512M');
If that doesn’t work, also add:
define('WP_MAX_MEMORY_LIMIT', '512M');
Update Your PHP Version
Running an old PHP version is one of the sneakiest causes of critical errors. A plugin might work fine on PHP 7.4 but throw fatal errors on PHP 8.0+ — or vice versa. Many popular plugins now require PHP 8.0 or higher. If your host is running PHP 7.2 or older, you’re going to hit problems.
| PHP Version | Status | Recommendation |
|---|---|---|
| PHP 5.x / 6.x | End of Life | Upgrade immediately |
| PHP 7.0 – 7.3 | No longer supported | Upgrade immediately |
| PHP 7.4 | Security only | Upgrade soon |
| PHP 8.0 – 8.1 | Active but aging | Acceptable short-term |
| PHP 8.2 | Active support | ✅ Recommended |
| PHP 8.3 | Latest stable | ✅ Best choice |
How to Update PHP
- cPanel: MultiPHP Manager → select domain → choose PHP version
- DirectAdmin: PHP Version Selector in domain settings
- Managed WordPress Hosting (WP Engine, Kinsta, Cloudways): Dashboard → PHP settings
Replace Corrupted WordPress Core Files
If your WordPress installation itself got corrupted — whether from a hack, a failed update, or a bad server migration — replacing the core files can fix unexplained critical errors. This is a safe operation as long as you don’t touch your content.
How to Do It
- Download a fresh copy of WordPress from wordpress.org/download
- Extract the zip file on your computer
- Upload and replace only these folders via FTP or File Manager:
✅ Replace These
- wp-admin folder
- wp-includes folder
- Root PHP files (index.php, wp-login.php, etc.)
❌ DO NOT Replace
- wp-content folder (your plugins, themes, uploads)
- wp-config.php (your database credentials)
- .htaccess (your rewrite rules)
Check .htaccess for Errors
A corrupted .htaccess file can cause a critical error, a 500 server error, or broken page URLs. Security plugins and caching plugins commonly write to this file, and sometimes they write bad rules.
How to Reset .htaccess
Via File Manager, find .htaccess in your root directory (enable “Show Hidden Files” if you can’t see it). Open it and replace the contents with the default WordPress rules:
# Default WordPress .htaccess # BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # END WordPress
Save the file and test your site. If it loads, the original .htaccess had bad rules. You can regenerate it cleanly by going to Settings → Permalinks in your WordPress admin and clicking Save.
Repair the WordPress Database
Database corruption is less common than plugin issues, but when it happens, it can cause critical errors that none of the above steps fix. You’ll often notice missing posts, broken admin pages, or errors that appear specifically after updates or migrations.
Enable WordPress Database Repair
Add this line to wp-config.php:
define('WP_ALLOW_REPAIR', true);
Run the Repair Tool
Visit this URL in your browser (replace yourdomain.com with your actual domain):
https://yourdomain.com/wp-admin/maint/repair.php
Click Repair Database. Once done, remove the WP_ALLOW_REPAIR line from wp-config.php immediately — this URL is publicly accessible and should not remain active.
Restore a Recent Backup
Sometimes the fastest fix is the most obvious one. If your site was working perfectly yesterday, and a single update broke everything today, restoring a backup from before the update is often the right call. I’ve personally used this shortcut more than once when debugging was taking too long.
| Backup Source | How to Restore | Speed |
|---|---|---|
| Hosting Panel Backup | cPanel → Backup Wizard → Restore | Fast |
| UpdraftPlus | WP Admin → UpdraftPlus → Restore (if admin accessible) | Fast |
| Jetpack VaultPress | Log into Jetpack.com → Activity Log → Restore | Fast |
| Manual Backup | Upload via FTP + restore DB via phpMyAdmin | Slower |
Restoring a backup is the right call when: major file corruption occurred, a hack modified core files, or when multiple updates were applied and you’re not sure which one broke things.
Fixing Critical Errors Caused by Specific Plugins
Some plugins are more commonly associated with this error than others — usually the most popular ones, simply because more people are using them. Here’s what to do for each:
⚡ Elementor
Often caused by Elementor and “Elementor Pro” version mismatch. Deactivate Elementor Pro first, then update both to matching versions.
🛒 WooCommerce
Critical errors often appear after WooCommerce updates. Check for incompatible payment gateway or shipping plugins. Disable them one by one.
📈 Rank Math
Conflicts sometimes happen with caching plugins. Disable caching plugin first, then check if Rank Math loads. Clear cache after re-enabling.
🔍 Yoast SEO
Yoast errors are usually caused by outdated PHP. Upgrade to PHP 8.0+. Yoast also conflicts with some duplicate meta tag plugins.
🚀 WP Rocket
Clear the WP Rocket cache first. If the error persists, rename the WP Rocket plugin folder via FTP to deactivate it cleanly.
Plugin-Specific Fix Comparison
| Plugin | Most Common Cause | First Fix | Time to Fix |
|---|---|---|---|
| Elementor | Version mismatch with Elementor Pro | Match version numbers | 5 min |
| WooCommerce | Incompatible payment/shipping addon | Disable addons one by one | 15 min |
| Rank Math | Caching plugin conflict | Disable cache plugin | 5 min |
| Yoast SEO | Old PHP version | Update PHP to 8.0+ | 10 min |
| WP Rocket | Cache file corruption | Clear all cache | 3 min |
How to Prevent WordPress Critical Errors in the Future
The best fix is the one you never need. After going through this process once, you really don’t want to do it again. Here’s what I now do on every site I manage:
✅ Good Habits to Build
- Use a staging site before updating live
- Update plugins one at a time, not all at once
- Create daily automatic backups
- Monitor PHP compatibility before updates
- Remove unused plugins immediately
- Keep WordPress core up to date
❌ Habits That Lead to Errors
- Mass-updating all plugins at once
- Installing plugins without checking ratings
- Editing theme files directly on live
- Running PHP 7.x in 2025
- No backups whatsoever
- Ignoring WordPress update notices
How Preventive Measures Reduce Error Frequency
Recommended SEO Tool for Content Creators After Fixing Your Site
Alright — your site is back up. Now what? Fixing the error is one thing, but if you’re running a blog or content site, the real work is growing your traffic. That’s where Soro SEO comes in, and it’s genuinely one of the tools I keep coming back to.
Why I Use Soro SEO
I tested a lot of SEO tools this year. Most of them either overwhelm you with data you don’t know what to do with, or they’re so simplified they don’t actually help you rank. Soro SEO sits in a different lane — it’s built for bloggers and niche site owners who want to publish optimized content faster, without hiring an SEO agency.
| Feature | What It Does | Useful For |
|---|---|---|
| AI Content Optimization | Scores and improves your content for target keywords | Blog posts, landing pages |
| Keyword Clustering | Groups related keywords so one page ranks for many | Topic authority building |
| Content Planning | Suggests topics based on your niche and competition | Editorial calendars |
| Competitor Analysis | Shows what’s ranking and why in your niche | Finding content gaps |
| Rank Tracking | Monitors your keyword positions over time | Measuring SEO progress |
✅ Benefits for WordPress Users
- Publish fully optimized content faster
- Discover ranking opportunities your competitors miss
- Improve organic traffic without paid ads
- Build topical authority in your niche
- Create content briefs in minutes, not hours
⚠️ Things to Know
- Works best for English content (expanding)
- Requires some time to learn keyword clustering
- Paid plans needed for advanced features
🚀 Start Growing Your WordPress Traffic Today
Soro SEO is built for bloggers and content creators who want real SEO results without the agency price tag. AI-powered keyword research, content planning, and optimization — all in one tool.
Try Soro SEO Now →See Pricing & Plans
Frequently Asked Questions
The most common cause is a faulty or incompatible plugin — this accounts for about 68% of critical errors. Other causes include theme conflicts, PHP version mismatches, memory limit exhaustion, corrupted core files, and database issues.
Absolutely. Plugins are the #1 cause of WordPress critical errors. When a plugin updates and its code becomes incompatible with your PHP version, WordPress core version, or another plugin, it throws a fatal error that brings down your site.
Use FTP or your hosting File Manager. Rename the plugins folder from plugins to plugins-disabled to disable all plugins at once. If that doesn’t work, rename your active theme folder. These are the two most effective fixes without needing admin access.
First, rename the plugins folder to disable all plugins. If the site loads, rename it back, then activate plugins one by one via your WordPress admin. The moment the error returns, the last plugin you activated is the culprit. You can also check the debug log at /wp-content/debug.log for the exact file name.
Yes, in both directions. Upgrading PHP can break plugins that haven’t been updated to support the new version. And running old PHP can break plugins that now require PHP 8.0+. Always check plugin compatibility before changing PHP versions, and test on a staging site first.
In most cases, you don’t need a full reinstall. Replacing just the wp-admin and wp-includes folders with fresh copies usually resolves corruption issues without touching your content or settings. A full reinstall is rarely necessary.
📈 Site fixed and running? Take it to the next level — Soro SEO helps WordPress bloggers plan content, cluster keywords, and grow organic traffic with AI.
Get Started with Soro SEO →Final Thoughts
The message “There has been a critical error on this website” is stressful, but it’s almost always fixable. In most cases, it comes down to a plugin, a theme, or a PHP version issue — things you can resolve without any developer experience.
Start with the recovery email. If that doesn’t work, disable all plugins via File Manager. Still broken? Switch to a default theme. Enable debug mode to read the exact error. Increase memory if needed. Update PHP to 8.2 or 8.3.
Most WordPress critical errors can be resolved in under 30 minutes using the steps above. And once your site is running again, set up daily backups and a staging environment so the next update doesn’t catch you off guard.
Now go fix your site — and then go grow it. 🚀