Depuis WordPress 5.2, une erreur PHP fatale n’affiche plus un écran blanc mais le message « Il y a eu une erreur critique sur ce site ». C’est plus propre, mais pas plus explicite. Voici comment trouver la cause en quelques minutes.
Que signifie « Il y a eu une erreur critique sur ce site » ?
Le code PHP du site s’est arrêté sur une erreur fatale. Dans la grande majorité des cas, elle vient d’une extension mise à jour, d’un thème, ou d’une version de PHP trop récente (ou trop ancienne) pour une partie du code. WordPress envoie alors un e-mail à l’adresse d’administration, avec un lien vers le mode de récupération : il permet de se connecter et de désactiver l’élément fautif.
Comment activer WP_DEBUG pour voir l’erreur ?
Si l’e-mail n’arrive pas, activez le journal de débogage dans wp-config.php, au-dessus de la ligne « C’est tout, ne touchez pas à ce qui suit » :
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );
Rechargez la page en erreur, puis ouvrez wp-content/debug.log. La dernière ligne « PHP Fatal error » indique le fichier et la ligne en cause : le chemin wp-content/plugins/nom-extension/ désigne directement le coupable.
Comment désactiver une extension sans accès à l’admin ?
- Par SFTP ou le gestionnaire de fichiers de l’hébergeur, renommez le dossier de l’extension (par exemple
woocommerceenwoocommerce-off). - Avec WP-CLI :
wp plugin deactivate nom-extension. - Si c’est le thème, renommez son dossier : WordPress basculera sur un thème par défaut s’il est installé.
Le problème vient-il de la version de PHP ?
Si l’erreur est apparue juste après un changement de version de PHP chez l’hébergeur, c’est probable. Revenez temporairement à la version précédente, puis mettez à jour ou remplacez l’extension incompatible avant de remonter de version.
Comment restaurer une sauvegarde ?
Si vous ne trouvez pas la cause ou si le site doit revenir en ligne immédiatement, restaurez la dernière sauvegarde saine (fichiers et base de données), puis refaites les mises à jour une par une sur un site de test pour identifier celle qui casse le site.
Les causes les plus fréquentes
| Cause | Indice dans debug.log | Solution |
|---|---|---|
| Extension incompatible après mise à jour | Chemin wp-content/plugins/… | Désactiver, puis revenir à la version précédente ou attendre un correctif |
| Thème ou thème enfant | Chemin wp-content/themes/… | Basculer sur un thème par défaut, corriger le code |
| Version de PHP | « Call to undefined function » ou fonction obsolète | Revenir à la version précédente le temps de mettre à jour le code |
| Mémoire insuffisante | « Allowed memory size exhausted » | Augmenter la limite de mémoire, chercher l’extension gourmande |
| Fichier corrompu après une mise à jour interrompue | Erreur dans wp-includes ou wp-admin | Réinstaller les fichiers du cœur |
Que faire si l’erreur ne concerne que l’administration ?
Si le site public fonctionne mais que l’administration affiche l’erreur, la cause est souvent une extension qui ne se charge que dans l’administration (constructeur de pages, outil SEO, sauvegarde). La méthode est la même : lire debug.log, puis désactiver l’extension citée.
Comment éviter que cela se reproduise ?
- Tester les mises à jour importantes sur un site de préproduction.
- Mettre à jour une extension à la fois, en vérifiant le site entre chaque.
- Garder une sauvegarde récente avant toute mise à jour.
- Surveiller la version de PHP proposée par l’hébergeur et les extensions qui ne sont plus maintenues.
Et maintenant ?
Ce que vous pouvez faire dès aujourd’hui :
- Vérifiez que l’adresse e-mail d’administration reçoit bien les messages du site.
- Gardez un accès SFTP ou au gestionnaire de fichiers de votre hébergeur.
- Notez la version de PHP utilisée par votre site.
Pour aller plus loin : Maintenance WordPress