"There has been a critical error
on this WordPress site"?
we bring it back online today.
WordPress critical error diagnostic and resolution
Message visible to all your visitors, WordPress "recovery mode" email never received, guilty plugin unknown: no data is lost, just code to neutralise. We enable debug, isolate the culprit, restore your WordPress. Free diagnostic, firm quote within 24 business hours.
What WordPress shows your visitors
Since WordPress 5.2 (May 2019), this is what your visitors see when a fatal PHP error occurs.
There has been a critical error on this website.
Please check your site admin email inbox for instructions.
↑ The default WordPress message. In French: "Il y a eu une erreur critique sur ce site."
The "recovery mode" email WordPress claims to have sent? In 7 out of 10 cases, it never arrives
— because wp_mail() isn't configured (no SMTP, server IP blacklisted, mail filtered as spam).
We work around it by accessing WordPress via FTP/SSH: same result, without depending on the email.
The 6 most frequent causes
Across 40 WordPress emergency interventions in 2025-2026. One may be present, or several stacked.
~40% of cases. You move from PHP 7.4 to PHP 8.1 (forced by your host), and an old plugin uses a removed function or deprecated syntax. Typical error: Fatal error: Uncaught TypeError: ... must be of type string, null given. Fix: disable the plugin, find a maintained alternative, or apply a local patch if the plugin is critical.
~25%. Two plugins declare the same global function, or plug the same hook with conflicting priorities. Typical error: Cannot redeclare function or Call to undefined function. Fix: identification by bisection (disabling in successive halves), choice of which plugin to keep, clean removal of the second.
~12%. You use a child theme that overrides a parent function. The parent theme is updated, the parent function signature changes, your child functions.php crashes. Fix: adapt functions.php, or temporary rollback to the previous parent theme version.
wp-config.php mis-edited
~8%. You added a line to enable debug but forgot the trailing ;. Or copy-pasted a snippet from a blog with typographic quotes instead of ". WordPress can no longer load its config and crashes at bootstrap. Fix: compare with wp-config-sample.php, restore syntax, validate PHP via command line (php -l wp-config.php).
~8%. On WooCommerce sites with large catalogues + cache plugin + security plugin, the default 128MB PHP memory blows up in admin. Error: Allowed memory size of X bytes exhausted. Fix: raise WP_MEMORY_LIMIT and WP_MAX_MEMORY_LIMIT in wp-config.php, audit the guilty plugin.
~7%. Brutal FTP migration, interrupted transfer, partial backup restore. Missing or truncated core files. Fix: download a clean copy of WordPress, rewrite /wp-includes/ and /wp-admin/ without touching /wp-content/ or wp-config.php.
Critical error resolved in 38 min
Real case · SME services site + WooCommerce · WordPress 6.4 + 32 plugins · March 2026.
/wp-content/plugins/ to plugins_OFF/. Admin access restored immediately.
WP_DEBUG_LOG
Edit wp-config.php: define('WP_DEBUG', true); define('WP_DEBUG_LOG', true); define('WP_DEBUG_DISPLAY', false);. Restore plugins folder, refresh.
/wp-content/debug.log: PHP Fatal error: Uncaught Error: Class "WC_Geolocation" not found in /wp-content/plugins/x-shipping/includes/Calculator.php:88. The x-shipping plugin depended on a WooCommerce class removed in WC 8.3.
WC_Geolocation_Loader instead. Checkout tests: OK.
(38 min × €60/h excl. VAT)
Pricing stated up-front
Free diagnostic. For the intervention, you know exactly what it costs before we touch the code.
Diagnostic
- WP_DEBUG_LOG enabled + read
debug.log - Faulty plugin or theme identified
- Firm quote sent immediately
- You decide if we continue
Targeted intervention
- Backup of files + DB before any intervention
- Neutralisation of the faulty plugin / theme
- Replacement or local patch if needed
- Written report: cause + fix applied
- 30-day warranty on the fix
Monthly maintenance
- Monthly audit of WordPress plugins
- Daily automatic backups externalised
- Updates tested on staging before deployment
- Priority intervention on critical error
WordPress critical error — frequently asked questions
wp_mail() isn't configured (no SMTP, server IP blacklisted).wp_options table (option recovery_mode_token) via SSH or phpMyAdmin. (2) The fastest: bypass recovery mode by disabling plugins via FTP — rename /wp-content/plugins/ to plugins_OFF/, all plugins become inactive and admin access is restored.WP_DEBUG_LOG in wp-config.php, reload, read /wp-content/debug.log — file and line at fault are indicated. (2) Bisection disabling (in successive halves). (3) Read php-fpm.log or error_log directly — the stack trace shows the .php file. Method (1) is fastest with FTP access.Other issues I handle
Critical error right now?
Free diagnostic, firm quote within 24 business hours, intervention from €60/h excl. VAT on quote.