•

“There has been a critical error on this website”: how to find what caused it

WordPress shows “There has been a critical error on this website” instead of a page when something fails so badly that it can’t carry on. It deliberately hides the details from visitors, which is good for security but no help to you. The real error is still there, in an email, a log file or your host’s error log. Finding it is most of the job.

Is this what you’re seeing?

  • Your site shows only “There has been a critical error on this website. Please check your site admin email inbox for instructions.”
  • The same message appears when you try to get into wp-admin, so you can’t log in either.
  • Only some pages break, for example the shop, the checkout or one page built with a page builder.
  • It started straight after you updated a plugin, the theme or WordPress itself.
  • It started overnight, when nobody changed anything (often an automatic update by your host).
  • Your host has emailed to say they’ve upgraded PHP, and the site broke around the same time.

What usually causes it

A plugin or theme update that doesn’t suit the rest of your site

This is the most common cause by far. A plugin is updated and now clashes with another plugin, with your theme, or with your version of WordPress. Page builders and their add-ons are frequent culprits, because the free and Pro parts have to stay in step with each other. How to tell: the recovery email or the debug log names a file inside wp-content/plugins/ or wp-content/themes/. The folder name after that tells you which one.

A PHP version change on the server

PHP is the language WordPress runs on. Hosts upgrade it every so often, and some let you change it yourself in the control panel. Older plugins and themes, or ones that haven’t been updated for a while, can fail on a newer PHP version. A plugin can also be updated to a version that needs a newer PHP than your server has. How to tell: the error mentions things like “Uncaught Error”, “deprecated” or a function that “does not exist”, and the timing matches an email from your host or a change in the control panel’s PHP settings.

An automatic update you didn’t know about

WordPress can update plugins and itself automatically, and many hosts run their own updater as well. On shared hosting, the installer tool Softaculous can update plugins overnight. It doesn’t check a plugin’s “Requires PHP” line, so it can install a version that the server’s PHP can’t run. How to tell: look at the dates on the plugin folders in your host’s file manager. A folder that changed overnight, when nobody was working on the site, is the first place to look.

The site running out of memory

Every page load gets a set amount of memory. A heavy plugin, a big import or a page builder page with a lot on it can go over that limit. How to tell: the log says “Allowed memory size of … bytes exhausted”. If it only happens on one page, or during one task, memory is likely.

An update that only half finished

If an update is interrupted, for example because the connection dropped or the server timed out, a plugin can be left with some new files and some old ones. How to tell: the error says a file “failed to open” or a class was “not found”, inside a plugin that was updated around the time it broke.

A code change

A snippet added to the theme’s functions.php, or a code snippets plugin, can take the whole site down with one missing bracket. This includes code suggested by an AI assistant that looked right but didn’t suit your site. How to tell: the error names functions.php or the snippets plugin, often with “syntax error” or “unexpected”.

What you can safely try

Take a backup first. Every step here can be undone. If you can’t log in to WordPress, take the backup through your host’s control panel, or ask your host to.

  1. Check the inbox of your site’s admin email address, including the spam folder. Look for “Your Site is Experiencing a Technical Issue”. It names the plugin or theme and includes a recovery mode link. The link expires, so use it soon.
  2. Use the recovery link to log in. WordPress pauses the faulty plugin or theme for you while you’re in recovery mode. Go to Plugins, deactivate the one it names, and check the site in a private browser window. Don’t delete it: deleting a plugin can delete its settings too.
  3. If there’s no email, turn on WordPress’s debug log. In your host’s file manager, open wp-config.php in the site’s main folder and add these lines just above the line that says “That’s all, stop editing!”:
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );
  1. Reload the broken page once, then open wp-content/debug.log. The last “PHP Fatal error” line names the file that failed. Your host’s control panel may also have its own PHP error log, which is worth checking too.
  2. If the error names a plugin you can’t switch off any other way, rename its folder in wp-content/plugins/, for example from plugin-name to plugin-name-off. WordPress then treats it as deactivated. Rename it back later and reactivate it from the Plugins screen. Do one plugin at a time, starting with the most recently updated.
  3. If it started with a PHP upgrade, check whether your host lets you switch back to the previous version in the control panel. Treat that as a short-term fix while the plugin or theme is updated, not a permanent one: old PHP versions stop getting security fixes.
  4. When you’re done, remove the three debug lines from wp-config.php (or set WP_DEBUG back to false) and delete debug.log. The log can contain details about your site that shouldn’t be left lying around.

When to stop and get help

  • The error names WordPress’s own files (in wp-admin or wp-includes) rather than a plugin or theme.
  • Switching off the plugin it names would break something you rely on, like the checkout, bookings or member logins.
  • You’d need to roll back to an older version and don’t know which one is safe.
  • The site is taking orders or bookings, and every hour it’s down is costing you money.
  • You’re being asked to edit the database, or to restore a backup over the live site. Restoring over the top can wipe out recent orders and enquiries.
  • You’ve tried several things and you’re no longer sure what’s been changed.

A real example

A restaurant’s site, built with Elementor, broke during maintenance and hosting work. The free Elementor plugin and Elementor Pro had ended up on versions that didn’t work together, which caused a fatal error and left the contact form and the popup menu broken. Updating everything to the newest versions wasn’t the safe answer in that case. I found a pair of Elementor and Elementor Pro versions that worked together and with the rest of the site, and put those back. The contact form and the popup menu came back with them, without rebuilding anything.

On the shared hosting I manage for my own sites, Softaculous updates plugins overnight. It doesn’t check whether a new plugin version needs a newer PHP than the server has. So when a site breaks in the morning and nobody has touched it, I don’t start by guessing. I compare the plugin folders’ dates against the overnight backups to see exactly what changed, then deal with that one plugin.

Getting it fixed

If the recovery email doesn’t arrive and the log doesn’t make sense, send me what you have: a screenshot of the error, and what changed just before it broke. I take a full backup, find the plugin, theme or server change behind the error, and fix it properly rather than leaving things switched off. A WordPress repair is a fixed £119, which covers finding the problem and up to 90 minutes of fixing it. Most repairs fit in that, and you’re never charged more without agreeing first.

If your site is down and it’s costing you money right now, see emergency WordPress support for a faster start.

Questions

Why didn’t I get the recovery email?

WordPress sends it to the address in Settings → General (“Administration Email Address”), which may be an old address or one belonging to whoever built the site. It also relies on your site being able to send email at all, and many sites can’t send reliably. See why WordPress emails don’t arrive.

Can I fix a critical error without access to wp-admin?

Usually, yes. You can turn on the debug log and rename plugin folders through your host’s file manager or by FTP, without logging in to WordPress. If you can’t get into your hosting account either, that’s the first thing to sort out.

Will I lose my content?

A critical error doesn’t delete your pages, posts or orders. They’re in the database, and the error stops them being shown. What can lose content is the wrong fix, for example deleting a plugin along with its settings, or restoring an old backup over the top.

Is it safe to just switch the plugin off and leave it?

For a few hours, often yes. For good, only if you don’t need what it does. A switched-off security, caching or shop plugin can leave a gap you won’t notice until later. The proper fix is updating it, rolling it back to a version that works, or replacing it.

My host says it’s a WordPress problem, not theirs. Who do I ask?

Hosts generally look after the server, not your plugins and theme. That’s the gap I fill. If the server is involved, for example a PHP upgrade or a memory limit, I’ll work it out with your host for you.

Could this mean I’ve been hacked?

It’s rarely the cause. A critical error is nearly always a plugin, theme or PHP problem. But if you also see redirects to other sites, pages you didn’t create, or a warning from Google, it needs a hacked site clean-up instead.

Written by Peter Claridge, who fixes WordPress sites for businesses across the UK from Reading. Last checked on WordPress 7.1, November 2026.