What this problem looks like
A white or grey screen showing “There has been a critical error on your website” means WordPress stopped while processing the page. The cause is often a plugin or theme error, an incompatible PHP version, or a memory limit.
To fix a WordPress critical error, find the real error message before reinstalling or replacing anything. If wp-admin will not open, you can inspect files through your hosting File Manager, SFTP, or FTP.
Step 1: Enable debug logging in wp-config.php
Connect via SFTP, hosting File Manager, or FTP and open wp-config.php in your site root. It usually sits next to the wp-admin and wp-content folders. Search for WP_DEBUG, WP_DEBUG_LOG, and WP_DEBUG_DISPLAY first. If those lines already exist, set them to the values below instead of adding duplicates. If none of them exist, paste these lines above the line that says stop editing. On a live site, log to file only and never print errors to visitors.
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );
@ini_set( 'display_errors', 0 ); Reload the broken page once, then open wp-content/debug.log. The last lines usually name the plugin file and line number. If debug.log stays empty, check your host PHP error log in cPanel, Plesk, or Site Tools.
Step 2: Use WordPress recovery mode
When a plugin or theme fatals, WordPress may email the site admin a recovery mode link. That link lets you access wp-admin with the offending extension paused. Follow it, log in, and deactivate the plugin from the Plugins screen.
- Check the inbox for your site admin email, including spam folders.
- If no email arrived, skip to file-level plugin isolation below.
- After recovery, update or remove the plugin before reactivating it.
Step 3: Deactivate plugins at the file level
When wp-admin will not load, rename the plugins directory so WordPress cannot load any plugin PHP. If the site then loads, a plugin is causing the critical error.
- Go to
wp-content/in File Manager, SFTP, or FTP. - Rename
pluginstoplugins.disabled. - Reload the site and
wp-admin. - If the site works, rename
plugins.disabledback toplugins. WordPress will see the plugins again, but they should remain deactivated. - In
wp-admin, activate plugins one at a time and reload the site after each activation. - When the critical error returns, the plugin you just activated is the culprit. Deactivate or remove it, then activate the rest as needed.
Step 4: Rule out the active theme
If disabling plugins does not help, switch themes at the file level. WordPress falls back to a default theme when the active theme folder is missing.
- Open
wp-content/themes/. - Rename your active theme folder, for example
mythemetomytheme.off. - Ensure
twentytwentyfouror another default theme folder exists. - Reload the site.
Step 5: Check PHP version and memory limits
Hosts migrate PHP versions without warning. Legacy plugins break on PHP 8.x. Temporarily switch PHP 8.2 to 8.1 in hosting only as a short test, not a permanent fix.
If logs mention memory exhausted, raise limits in wp-config.php:
define( 'WP_MEMORY_LIMIT', '256M' );
define( 'WP_MAX_MEMORY_LIMIT', '512M' ); When to stop DIY and hire help
If the critical error persists after plugin and theme isolation, or the error log points at WordPress core files you did not change, stop guessing on a live shop. BugShield resolves critical errors at a confirmed price without hourly billing surprises.