Erreur 500 WordPress : trouver la cause et remettre le site en ligne
L'erreur 500 (Internal Server Error) et son équivalent WordPress « Il y a eu une erreur critique sur ce site » signifient que PHP a planté avant de pouvoir produire une page. Le message affiché aux visiteurs est volontairement vague : la vraie cause se trouve dans les journaux d'erreur du serveur ou dans le mode de débogage de WordPress.
Dans la grande majorité des cas, il s'agit d'une erreur fatale PHP provoquée par une extension ou un thème après une mise à jour, d'une incompatibilité avec la version de PHP, d'une mémoire insuffisante ou d'un fichier .htaccess corrompu. Le site peut être totalement inaccessible ou l'erreur ne toucher qu'une page ou l'administration.
Cette page vous donne la méthode pour lire le message d'erreur réel, la liste des causes les plus fréquentes avec leur correction, et les situations dans lesquelles il vaut mieux confier l'intervention à un professionnel plutôt que de risquer d'aggraver la situation.
Symptômes typiques
- Page blanche avec « Internal Server Error », « HTTP ERROR 500 » ou « Ce site ne peut actuellement pas traiter cette requête ».
- Message « Il y a eu une erreur critique sur ce site. Veuillez consulter la boîte de réception de l'e-mail de l'administrateur du site pour plus d'instructions ».
- L'erreur apparaît juste après la mise à jour d'une extension, d'un thème, de WordPress ou de la version de PHP.
- Seule l'administration (wp-admin) est en erreur, ou seule une page précise (panier, formulaire, page d'article).
- L'erreur est intermittente : le site fonctionne puis retombe en 500 sous charge ou à intervalles réguliers.
- Le fichier error_log grossit rapidement à la racine du site ou dans le dossier wp-admin.
Causes possibles
Erreur fatale dans une extension ou un thème
Fonction inexistante, conflit entre deux extensions, code incompatible avec la version de WordPress ou de PHP. C'est la cause numéro un après une mise à jour.
Version de PHP incompatible
Passer de PHP 7.4 à 8.x sans vérifier la compatibilité fait planter les extensions qui utilisent des fonctions supprimées. À l'inverse, certaines extensions récentes exigent une version de PHP minimale.
Mémoire PHP insuffisante
Le message « Allowed memory size of ... bytes exhausted » dans les journaux indique que la limite memory_limit est atteinte, souvent lors de l'import, de la génération d'images ou sur des thèmes lourds.
Fichier .htaccess corrompu
Une règle mal écrite ajoutée par une extension de sécurité, de cache ou de redirection fait échouer Apache avant même d'exécuter PHP.
Permissions ou propriétaire de fichiers incorrects
Après une migration ou une restauration, des fichiers appartenant au mauvais utilisateur ou des dossiers non lisibles par PHP-FPM déclenchent des erreurs 500 ou 403.
Serveur saturé ou PHP-FPM en défaut
Trop de processus PHP, un pool php-fpm plein, un délai d'attente dépassé (timeout) ou un disque plein génèrent des 500 et 502/503 intermittentes.
Base de données corrompue ou inaccessible
Une table wp_options endommagée ou un MySQL qui refuse les connexions peut produire une erreur critique plutôt que le classique « Error establishing a database connection ».
Contrôles à effectuer
- 1
Lire l'e-mail de récupération
Depuis WordPress 5.2, un e-mail est envoyé à l'adresse administrateur avec le message d'erreur exact, le fichier fautif et un lien pour ouvrir l'administration en mode de récupération, extension coupable désactivée.
- 2
Activer le mode de débogage
Dans wp-config.php, ajoutez define('WP_DEBUG', true); define('WP_DEBUG_LOG', true); define('WP_DEBUG_DISPLAY', false); puis rechargez la page. Le message complet apparaît dans wp-content/debug.log sans être montré aux visiteurs.
- 3
Consulter les journaux du serveur
Cherchez un fichier error_log à la racine ou dans wp-admin, ou consultez les logs de l'hébergeur (cPanel, Plesk) et, en SSH, /var/log/apache2/error.log, /var/log/nginx/error.log ou le journal de php-fpm. La dernière ligne « PHP Fatal error » désigne généralement le fichier responsable.
- 4
Tester le .htaccess
Renommez .htaccess en .htaccess.old par FTP. Si le site revient, le fichier était en cause ; régénérez-le depuis Réglages > Permaliens en enregistrant sans modifier.
- 5
Désactiver toutes les extensions
Sans accès à l'administration, renommez le dossier wp-content/plugins en plugins.old par FTP ou en SSH. Si le site revient, remettez le nom d'origine puis renommez les extensions une par une pour trouver la coupable.
- 6
Vérifier la mémoire et la version de PHP
Ajoutez define('WP_MEMORY_LIMIT', '256M'); dans wp-config.php et vérifiez la version de PHP dans le panneau de l'hébergeur. Revenir temporairement à la version précédente permet de confirmer une incompatibilité.
- 7
Contrôler l'état du serveur
En SSH : df -h (disque plein), free -m (mémoire), et systemctl status php8.2-fpm ou équivalent pour vérifier que le service PHP tourne.
Solutions
Désactiver ou corriger l'extension fautive
Une fois le fichier identifié dans les journaux, désactivez l'extension ou le thème concerné, mettez-le à jour ou revenez à la version précédente, puis contactez son éditeur si le bug persiste.
Ajuster la version de PHP
Choisissez la version la plus récente compatible avec toutes vos extensions. Testez-la sur une copie de préproduction avant de l'appliquer en production.
Augmenter la mémoire PHP
Relevez memory_limit dans php.ini, .user.ini ou via l'hébergeur, et WP_MEMORY_LIMIT dans wp-config.php. Si un script consomme une mémoire anormale, c'est lui qu'il faut corriger.
Régénérer le .htaccess
Repartez du .htaccess standard de WordPress, puis réintroduisez une à une les règles ajoutées par les extensions pour identifier celle qui casse Apache.
Rétablir permissions et propriétaire
Fichiers en 644, dossiers en 755, wp-config.php en 640 ou 600, le tout appartenant à l'utilisateur qui exécute PHP (chown -R www-data:www-data sur un serveur Debian classique).
Traiter la cause serveur
Libérer de l'espace disque, ajuster les paramètres pm.max_children de php-fpm, relever les délais d'attente ou redimensionner le serveur si les 500 sont liées à la charge.
Quand contacter un professionnel ?
- Le message d'erreur cite un fichier du thème ou une extension sur mesure et vous ne savez pas corriger le code PHP.
- Le site est une boutique WooCommerce ou un site à fort trafic et chaque minute d'indisponibilité coûte cher.
- L'erreur est intermittente et les journaux ne désignent pas de coupable évident : le diagnostic serveur demande des outils et de l'expérience.
- Vous n'avez pas d'accès FTP ou SSH, pas de sauvegarde récente ou vous craignez d'aggraver les choses.
- L'erreur 500 est apparue après un piratage ou en même temps que des fichiers inconnus.
L'intervention proposée par Agencei
- 1
Diagnostic rapide
Lecture des journaux PHP, Apache/Nginx et WordPress, activation contrôlée du mode de débogage et identification du composant responsable, généralement en moins d'une heure.
- 2
Remise en ligne
Désactivation ou correction du composant fautif, ajustement de la configuration PHP ou serveur, restauration ciblée si nécessaire.
- 3
Correction durable
Mise à jour ou remplacement de l'extension, correction du code sur mesure, adaptation à la version de PHP cible, régénération d'un .htaccess propre.
- 4
Vérification complète
Test de l'ensemble du site (pages, formulaires, tunnel de commande, administration), contrôle de l'intégrité des fichiers pour exclure une compromission.
- 5
Prévention
Mise en place d'un environnement de préproduction, de sauvegardes automatiques et d'une politique de mises à jour testées pour éviter que l'erreur ne revienne.
Questions fréquentes
Où trouver le message d'erreur exact ?
Dans l'e-mail de récupération envoyé par WordPress, dans wp-content/debug.log une fois WP_DEBUG_LOG activé, ou dans les journaux d'erreur du serveur (error_log, logs Apache/Nginx, journal php-fpm). Le message vague affiché au visiteur ne suffit jamais.
Une erreur 500 signifie-t-elle que le site est piraté ?
Rarement. C'est le plus souvent un bug ou une incompatibilité après une mise à jour. Mais si l'erreur s'accompagne de fichiers inconnus, de redirections ou d'un avertissement Google, il faut vérifier l'intégrité du site.
Puis-je simplement restaurer une sauvegarde ?
C'est une solution valable si la sauvegarde est récente et que vous acceptez de perdre les modifications intermédiaires. Elle ne corrige toutefois pas la cause : la même mise à jour provoquera la même erreur.
Pourquoi l'erreur touche-t-elle seulement l'administration ?
Certaines extensions ne chargent leur code que dans wp-admin, ou l'administration dépasse la limite de mémoire alors que le site public, servi depuis le cache, reste visible.
Combien de temps pour résoudre une erreur 500 ?
Quand la cause est une extension ou le .htaccess, souvent moins d'une heure. Les cas intermittents liés au serveur ou à la base de données peuvent demander plusieurs heures d'analyse.
Services associés
Dépannage WordPress
Écran blanc, erreur 500, piratage, panne après mise à jour : diagnostic et remise en service rapides.
Voir ce serviceCorrection de bugs
Reproduction, cause racine et correctif testé sur vos applications web, mobiles, API et CMS.
Voir ce serviceMaintenance WordPress
Mises à jour testées, sauvegardes, surveillance et sécurité pour un site WordPress toujours disponible.
Voir ce serviceSupport informatique
Assistance applicative et serveurs, gestion des incidents et engagements de service clairs.
Voir ce serviceParlez-nous de votre projet
Décrivez votre besoin en quelques lignes : nous revenons vers vous avec une première analyse et les prochaines étapes.