fbpx

How to fix the “There has been a critical error on your website” WordPress error

The WordPress critical error can have a variety of causes, though the issue often has to do with PHP. Either the PHP memory limit has been exceeded, or your plugins or themes are having issues.

The quickest way to fix the problem is to roll back your website if you have a backup, but there are a variety of other methods you can try, from raising the PHP memory limit to identifying and disabling a problem plugin.

How to Fix the Critical Error

Your entire site is probably down, so you’ll need to access the backend through FTP or SFTP. All you need is your FTP login credentials and an FTP client like FileZilla.

Enable Debug in WordPress

One of the first things you should do is enable debug mode. With debug mode on, you’ll be able to see the various PHP errors happening on your site, and figure out the root of the problem.

As you may be unable to access your dashboard, you’ll also need to enable the debug log. This will write all PHP errors to a file.

  • Step 1: Connect to your site with FTP.
  • Step 2: Find wp-config.php in the root folder, right click it and open it with a text editor.
  • Step 3: Place the following code before the final message, then save and close the file:
define( 'WP_DEBUG', true );

define( 'WP_DEBUG_DISPLAY', false );

define( 'WP_DEBUG_LOG', true );

Here’s what it will look like when done:

wp-config.php debug.

You can find the debug log in the wp-content folder, named debug.log. Look for names of your theme or plugins which will point to them being the cause or references to a specific file. Even if you aren’t sure what to do with this information, save it someplace — it can help you if you need to reach out for support.

When you’re finished debugging, make sure to remove these lines of code.

Roll Back Your Site

Restoring a backup is a quick and easy solution. It won’t always solve the issue but it will help get your website back online and possibly understand the cause of the error.

There are multiple ways of backing up your data, and each one has a different recovery process. If you use a plugin, follow the instructions in the documentation. If backups are included with your web host, you’ll be able to do it from your hosting dashboard.

Revert to a Default Theme

Sometimes the error can be traced back to a problem within your theme. The best way to test for this is to temporarily delete it and revert to a default theme, which should immediately clear up the issue. Make sure you back up your site first, as you’ll need a way to get your theme files back once they’re gone.

If you have access to your dashboard, this is easy. Just go to Appearance > Themes, click on the theme to select it, and then click Delete in the lower right corner of the pop-up window.

If you don’t see the option, then try downloading and switching to a different theme. The safest bet is to try a default theme.

Twenty Twenty-One theme

If you don’t have access to your backend, follow these instructions to revert to a default theme with FTP.

  • Step 1: Connect to your site with FTP.
  • Step 2: Navigate to wp-content/themes. You have two choices here: either rename your theme folder (will allow you to turn the theme back on later) or simply delete it.
  • Step 3: If you don’t have a backup theme here already, manually download Twenty Twenty and place its files into the themes folder.

Your site should now revert to the default theme. If it loads properly now, you know it was a theme conflict.

To restore your theme files, simply reinstall the theme or change the folder back to its original name.

Disable All Plugins

When you’re having a critical error, a plugin is often to blame. If you have several or even dozens of plugins on your site, trying to locate the one that’s the issue may seem like a daunting task.

But there’s an easy way to find the problem plugin: simply turn them all off and see if that fixes the problem. If it does, enable them one by one until your site breaks again. And there’s the culprit!

To disable your plugins from the dashboard, visit Plugins > Installed Plugins and tick the checkbox at the top of the list to select them all. Then click Bulk Actions > Deactivate, which should be enough to disable any conflicts and restore your site.

You can also click Delete instead to entirely remove their files, though you will need to reinstall them manually or restore a backup.

Deactivating installed plugins in WordPress.

You can then turn them on one by one by returning to Installed Plugins and clicking Activate on each.

You can do essentially the same thing through FTP.

  • Step 1: Log in to your site with FTP.
  • Step 2: Open the wp-content folder to find your plugins.
  • Step 3: Rename the plugins folder to plugins_old and verify that your site is working again.
  • Step 4: Rename the folder back to “plugins”. The plugins should be disabled still, so you should be able to log in to your dashboard and activate them one by one. If the plugins reactivate automatically, rename individual plugin folders with _old until your site is restored.

Raise the PHP Memory Limit

Even if a plugin or theme is causing the error, the PHP memory limit is often the real one to blame.

Your web server only has a certain amount of RAM, or memory, so WordPress sets a hard limit on how much memory a single PHP script can take up. When this limit is exceeded, you’ll encounter the white screen of death or the critical error.

While you don’t want to set the memory limit too high and allow misconfigured scripts to slow your site to a crawl, the default value may be far too low. Raising your PHP limit just a bit could instantly fix your broken website.

  • Step 1: Access your site through FTP and open wp-config.php.
  • Step 2: Insert the following code right before the final line and save.
define( 'WP_MEMORY_LIMIT', '128M' );

Defining the memory limit in wp-config-php.

Defining the memory limit in wp-config-php.

You can also try 256M if this doesn’t fix the issue, but anything higher is definitely unnecessary unless specifically called for in plugin documentation. If the issue is with the memory limit, the plugin you’re using is almost certainly broken and needs to be disabled.

Raise the Max Upload File Size and Text Processing Functions

If you’re only seeing the critical error in certain situations and not constantly on every page, a small tweak to a few PHP functions might be able to fix it.

Uploading large files and finding yourself on an error screen is probably a result of the max upload file size being too small, while certain large pages breaking can be fixed by increasing recursion and backtrack limits.

First, check what your maximum upload size is and compare it to the file you’re trying to upload. You can find this by visiting Media > Add New and checking beneath the file uploader.

Checking the maximum upload file size in WordPress.

To fix either of these issues, you’ll need to log into FTP and edit the wp-config.php file, placing the new code right above the final comment line.

To increase the max upload file size, add this code:

ini_set('upload_max_size' , '256M' );
ini_set('post_max_size','256M');

And to fix the breaking of large pages on your site, add this code:

ini_set('pcre.recursion_limit',20000000);

ini_set('pcre.backtrack_limit',10000000);

Clear Your Site Cache

Caching is a great way to speed up your website, and most of the time it’s strictly a good thing. But sometimes the cache can get corrupted, leaving your site throwing out errors.

When this happens, a simple solution is to clear the cache, which should be all you need to get rid of the problem and restore your site to working order.

No fear: The cached version of your pages will soon be restored, allowing your site to load quickly again. Clearing the cache will simply delete the stuck corrupted files.

Upgrade Your PHP Version

Outdated PHP can cause your site to break, and other conflicts are sure to occur. You usually want your site on the latest version of PHP supported by WordPress, which is currently PHP 7.3 to 8.0.

Some WordPress users prefer to stay on PHP 7.4 as they’re concerned about theme and plugin compatibility. Usually, this won’t cause problems. But if you’re using PHP 5.x, it’s imperative you upgrade as it can cause serious conflicts.

A PHP upgrade is a big deal, so make sure you have a backup ready before trying it.

Check for Malware

Sometimes a critical error can be caused by malware, especially if you’re noticing strange PHP scripts that can’t be traced back to your plugins or theme. Removing malware is a tough task, more so when you’re locked out of your website and can’t even run a scan.

It can be hard to tell the difference between legitimate files and suspicious ones added by malware, and deleting random core files isn’t likely to end well. Malware can also modify PHP files, hiding scripts in them you won’t notice as malicious unless you’re a developer.

If you suspect malware is the cause, then it may be best to turn to your web host for help.

Updated on October 6, 2021

Was this article helpful?

Leave a Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.