"There has been a critical error on this website." Since WordPress 5.2 this one sentence replaces the old white screen of death. It looks scary, but it means something specific: a PHP fatal error stopped WordPress from finishing the page. The site, your posts and your database are almost always fine. One piece of code failed, and once you know which one, the fix is usually quick.
1. Check your email first
When the error happens, WordPress tries to email the site admin address a message titled "Your Site is Experiencing a Technical Issue". It names the plugin or theme that crashed and contains a recovery mode link. Open the link, log in, and WordPress loads the admin with the broken plugin paused so you can deactivate or update it. Check your spam folder too. If the email never arrived, which is common when the server's mail isn't set up, carry on with the steps below.
2. Read the actual error
The generic message hides the real one. To see it, open wp-config.php in your hosting File Manager and, above the line /* That's all, stop editing! */, set:
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );
Reload the broken page, then open wp-content/debug.log. The last lines show something like:
PHP Fatal error: Uncaught Error: Call to undefined function ... in
/wp-content/plugins/some-plugin/includes/class-main.php:214
The path tells you who is responsible: /plugins/name/ is a plugin, /themes/name/ is your theme. Many hosts also keep an error_log file in the site folder with the same information. Turn WP_DEBUG back to false when you are done.
3. The usual causes, and the fix for each
- A plugin update broke compatibility. Rename that plugin's folder in
wp-content/plugins(e.g. add-off). WordPress deactivates it and the site comes back. Then install the previous version or wait for a fixed release. - The PHP version changed. Hosts upgrade PHP (7.4 → 8.1 → 8.2), and old plugins and themes use functions that no longer exist. The log shows "undefined function" or "deprecated" errors from old code. Short term, switch back in cPanel → Select PHP Version. Long term, update or replace the outdated code.
- Memory limit. "Allowed memory size of 134217728 bytes exhausted" means PHP ran out of memory. Add
define( 'WP_MEMORY_LIMIT', '256M' );to wp-config.php, and raisememory_limitin your hosting PHP settings if needed. - The theme. If the path points to
/themes/, rename the active theme's folder. WordPress falls back to a default theme (if one is installed) so you can get into the admin. - An interrupted update. A half-copied plugin or core update leaves files missing. Re-upload that plugin, or reinstall WordPress core from Dashboard → Updates (your content is not touched).
4. Can't find it? Disable all plugins at once
Rename wp-content/plugins to plugins-off. If the site loads, a plugin was the cause. Rename the folder back, then deactivate the plugins one by one from the admin until the error returns. On a WooCommerce store, test the shop and checkout pages too. Some fatals only happen there.
What not to do
- Don't delete plugins to "test". Deactivating keeps their settings, deleting may not.
- Don't restore an old backup before reading the error log. You lose recent orders and posts, and the same update will break the site again.
- Don't leave
WP_DEBUG_DISPLAYon. It shows file paths to every visitor.
If the log is full of errors you don't recognise, or the site is a store losing orders right now, we fix critical errors at a fixed price, and you pay only after you have checked that the site works. You can also send us the site for a free diagnosis.