Comment corriger l’erreur 500 Internal Server Error dans WordPress

Dans WordPress, l’erreur 500 Internal Server Error est l’une des plus frustrantes parce qu’elle ne donne aucune information sur ce qui a mal tourné. Elle peut apparaître sur n’importe quelle page, mettre votre site entièrement hors ligne et nuire à votre classement dans les moteurs de recherche si elle reste non résolue pendant plus de quelques heures.

Téléchargez WP STAGING pour éviter cette erreur et d’autres à l’avenir. Le plugin WP STAGING vous permet de créer une copie de votre site WordPress en quelques secondes. Vous pouvez tester de nouveaux plugins, designs et autres mises à jour dans un environnement sécurisé sur ce site de staging.

En bref : Les cinq solutions les plus courantes pour une erreur 500 dans WordPress sont : (1) activer le mode débogage pour lire le journal d’erreurs, (2) vérifier et régénérer votre fichier .htaccess, (3) augmenter la limite de mémoire PHP, (4) désactiver tous les plugins et les réactiver un par un, et (5) réinstaller les fichiers du noyau WordPress. Commencez par le mode débogage afin de savoir quelle solution précise appliquer.

Qu’est-ce que l’erreur 500 Internal Server Error dans WordPress ?

Un code de statut 500 est la manière générique qu’a le serveur de dire « quelque chose a mal tourné ». Lorsque votre navigateur demande une page, le serveur exécute du code PHP pour construire cette page. Si un élément de ce processus échoue avant qu’une réponse correcte puisse être formée, le serveur répond par un HTTP 500 au lieu de la page elle-même.

L’erreur peut ressembler à ceci :

Error-500

Ou elle peut ressembler à ceci :

Error 500 - Internal Server Error

La caractéristique principale, c’est que l’erreur est générique. Elle vous indique que la requête a échoué, mais pas pourquoi. C’est ce qui la rend plus difficile à corriger qu’une erreur plus précise comme une 404 (page introuvable) ou une 403 (accès refusé). Le reste de ce guide vous propose un cheminement systématique à travers les causes les plus courantes.

Quelles sont les causes d’une erreur 500 dans WordPress ?

Les causes les plus fréquentes sont :

  • Un fichier .htaccess corrompu ou mal formé
  • Un épuisement de la mémoire PHP
  • Un conflit de plugin ou de thème provoquant une erreur PHP fatale
  • Des fichiers du noyau WordPress corrompus
  • Une défaillance au niveau du serveur (crash de PHP-FPM, mauvaise configuration, permissions de fichiers)

Utilisez le tableau ci-dessous pour associer votre situation à la cause la plus probable et à la première solution la plus rapide :

Quand l’erreur 500 est-elle apparue ? Portée Cause la plus probable Première solution à essayer
Après l’installation ou la mise à jour d’un plugin Site entier Conflit de plugin Solution 4 : Désactiver tous les plugins
Après avoir modifié wp-config.php ou .htaccess Site entier Erreur de syntaxe dans un fichier de configuration Solution 2 : Régénérer .htaccess
Après une mise à jour du noyau WordPress Site entier Fichiers du noyau corrompus Solution 5 : Réinstaller les fichiers du noyau
Aucun changement récent, site entier hors ligne Site entier Épuisement de la mémoire Solution 3 : Augmenter la limite de mémoire PHP
Aucun changement récent, une seule page affectée Une seule page Problème de permalien ou de mod_rewrite Solution 2 : Régénérer .htaccess
Impossible d’accéder à wp-admin Site entier Cause inconnue Solution 1 : Activer d’abord le mode débogage

Vérifications rapides à essayer d’abord

Avant de toucher au moindre fichier, effectuez ces deux étapes rapides. L’une ou l’autre peut résoudre une erreur 500 causée par un cache obsolète.

Forcer le rechargement de la page : Appuyez sur Ctrl + F5 sur Windows ou Cmd + Shift + R sur Mac pour contourner la version en cache et charger la copie la plus récente de la page.

Vider le cache de votre navigateur : Vider le cache du navigateur permet d’écarter un problème de mise en cache côté client avant de modifier le moindre fichier serveur.

  1. Google Chrome : Appuyez sur Ctrl + Shift + Delete, sélectionnez la plage horaire souhaitée et cliquez sur « Effacer les données ».
Effacer le cache du navigateur
  1. Mozilla Firefox : Appuyez sur Ctrl + Shift + Delete, choisissez la plage horaire appropriée et cliquez sur « Effacer maintenant ».
Effacer le cache du navigateur Firefox
  1. Apple Safari : Appuyez sur Command + Option + E pour vider le cache instantanément.
  2. Microsoft Edge : Appuyez sur Ctrl + Shift + Delete, cochez « Images et fichiers en cache » et cliquez sur « Effacer maintenant ».

Si l’erreur disparaît après avoir vidé le cache, c’est terminé. Si elle persiste, poursuivez avec les solutions numérotées ci-dessous.

Les étapes suivantes sont plus complexes et affectent la base de données/les fichiers du site WordPress. Pour ne pas causer davantage de dégâts et si vous avez encore accès au tableau de bord WordPress, créez un site de staging avec WP STAGING et essayez de corriger l’erreur sur la page de staging plutôt que sur le site de production.

Vous pouvez créer un site de staging pour tester chaque solution en toute sécurité avant de l’appliquer à votre site de production avec WP STAGING.

Solution 1 : Activer le mode débogage de WordPress

La première étape la plus sûre consiste à activer la journalisation de débogage de WordPress afin de lire l’erreur exacte à l’origine de la réponse 500. Sans ce journal, chaque solution suivante relève de la devinette. Dans les tickets de support de WP STAGING, la première cause la plus fréquente que nous rencontrons est un conflit de plugin, et le journal de débogage le fait apparaître immédiatement.

Ouvrez votre fichier wp-config.php (situé à la racine de votre installation WordPress, accessible via FTP ou le gestionnaire de fichiers de votre hébergement) et ajoutez ces trois lignes :

define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );
Modifier le fichier wp-config

Consultez cet article pour un guide étape par étape sur l’activation du journal de débogage de WordPress.

Le journal de débogage s’écrit dans /wp-content/debug.log. Ouvrez le fichier et cherchez la première erreur en haut. Si le journal désigne un plugin précis, renommez le dossier de ce plugin pour le désactiver. Par exemple, renommez /wp-content/plugins/woocommerce en /wp-content/plugins/woocommerce-disabled.

Si le journal de débogage est vide, vérifiez le journal d’erreurs au niveau du serveur :

  • Apache : /var/log/apache2/error.log
  • Nginx : /var/log/nginx/error.log

Accédez à ces fichiers via FTP ou le panneau de contrôle de votre hébergement. Certains panneaux de contrôle exposent aussi le journal d’erreurs directement dans leur interface.

Solution 2 : Régénérer votre fichier .htaccess

Un fichier .htaccess corrompu est l’une des causes les plus courantes d’une erreur 500 sur les serveurs basés sur Apache. Le fichier se trouve dans le répertoire racine de votre WordPress, à côté des dossiers wp-admin, wp-includes et wp-content.

Modifier le fichier .htaccess

Pour le régénérer :

  1. Connectez-vous à votre site via FTP ou le gestionnaire de fichiers de votre hébergement.
  2. Renommez le fichier .htaccess existant en .htaccess_backup afin d’avoir une solution de secours.
  3. Créez un nouveau fichier nommé .htaccess et collez-y les règles de réécriture par défaut de WordPress :
# BEGIN WordPress

<IfModule mod_rewrite.c>

RewriteEngine On

RewriteBase /

RewriteRule ^index.php$ - [L]

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule . /index.php [L]

</IfModule>

# END WordPress

Rechargez votre site. Si le fichier .htaccess corrompu était la cause, l’erreur se résout immédiatement.

Alternative via l’administration WordPress : Si vous avez encore accès au tableau de bord, allez dans Réglages > Permaliens et cliquez sur « Enregistrer les modifications » sans rien changer. WordPress régénère automatiquement le fichier .htaccess lors de cet enregistrement.

Solution 3 : Augmenter la limite de mémoire PHP

PHP traite chaque requête de page dans un budget de mémoire. Lorsqu’un plugin, un thème ou une requête complexe dépasse ce budget, le serveur répond par une erreur 500. D’après nos tests sur des environnements d’hébergement mutualisé, l’épuisement de la mémoire PHP est le déclencheur côté serveur le plus fréquent que nous rencontrons lorsqu’aucun changement récent du site n’a précédé l’erreur.

Vous pouvez augmenter la limite de deux façons :

Option A : Via cPanel (si votre hébergeur le propose)

  1. Connectez-vous à cPanel.
  2. Ouvrez « Select PHP Version ».
  3. Cliquez sur « Switch to PHP Options ».
  4. Cliquez sur memory_limit et augmentez la valeur à 256 ou 512 (Mo), puis enregistrez.

Option B : Via wp-config.php

Modifier le fichier wp-config

Ouvrez wp-config.php et ajoutez cette ligne près du haut :

define('WP_MEMORY_LIMIT', '256M');

Enregistrez le fichier et rechargez votre site. Si l’épuisement de la mémoire était la cause, l’erreur se résout après l’enregistrement.

Solution 4 : Désactiver tous les plugins

Les conflits de plugins sont une cause fondamentale fréquente d’une erreur 500 dans WordPress. Si la solution 1 a confirmé un conflit de plugin dans le journal de débogage, ou si vous ne parvenez pas à lire le journal, désactiver tous les plugins puis les réactiver un par un permet d’identifier le coupable.

Si vous avez accès à l’administration WordPress :

  1. Allez dans Plugins depuis le tableau de bord.
  2. Sélectionnez tous les plugins à l’aide de la case à cocher en haut.
  3. Dans le menu déroulant « Actions groupées », choisissez « Désactiver », puis cliquez sur « Appliquer ». WordPress Dashboard Select Plugins Deactivate plugins to troubleshoot errors in the WordPress Admin Dashboard
  4. Rechargez votre site. Si l’erreur a disparu, réactivez les plugins un par un, en rechargeant après chacun, jusqu’à ce que l’erreur réapparaisse. Le dernier plugin que vous avez activé est le coupable.

Si vous ne pouvez pas accéder à l’administration WordPress :

Connectez-vous via FTP et renommez le dossier des plugins :

  1. Renommez /wp-content/plugins en /wp-content/plugins-disabled.
  2. Rechargez votre site. S’il revient, vous avez confirmé un conflit de plugin.
  3. Renommez le dossier en /wp-content/plugins.
  4. Désactivez les plugins individuellement en renommant leurs sous-dossiers (par exemple, renommez /wp-content/plugins/woocommerce en /wp-content/plugins/woocommerce-disabled), puis rechargez après chaque renommage.

Solution 5 : Réinstaller les fichiers du noyau WordPress

Si l’erreur est apparue sans aucune modification de plugin ou de thème, des fichiers du noyau WordPress corrompus peuvent en être la cause. Vous pouvez réinstaller le noyau sans écraser votre contenu, vos plugins ni vos thèmes.

  1. Téléchargez la dernière copie de WordPress depuis wordpress.org.
  1. Décompressez l’archive téléchargée.
  2. Connectez-vous à votre serveur via FTP ou le gestionnaire de fichiers de votre hébergement.
  3. Renommez les dossiers /wp-admin et /wp-includes existants en /wp-admin-backup et /wp-includes-backup.
  1. Téléversez les nouveaux dossiers /wp-admin et /wp-includes de l’archive décompressée au même emplacement.
  1. Rechargez votre site. Si des fichiers du noyau corrompus étaient la cause, l’erreur se résout une fois le téléversement terminé.

Ne remplacez pas wp-config.php ni le dossier wp-content durant ce processus. Ces fichiers contiennent vos identifiants de base de données et tous vos médias téléversés.

Solution 6 : Contacter votre hébergeur

Si aucune des cinq solutions ci-dessus n’a résolu l’erreur, le problème se situe très probablement au niveau du serveur plutôt qu’à l’intérieur de votre installation WordPress. Les causes au niveau du serveur incluent :

  • Un processus PHP-FPM qui a planté ou s’est arrêté silencieusement
  • Une mauvaise configuration d’Apache ou de Nginx introduite lors d’une mise à jour du serveur
  • Des changements de permissions de fichiers empêchant PHP de lire les fichiers WordPress
  • Des limites de ressources au niveau du serveur sans rapport avec la limite de mémoire PHP

Contactez l’équipe de support de votre hébergeur et partagez les lignes pertinentes du journal d’erreurs du serveur que vous avez trouvé dans la solution 1. La plupart des hébergeurs WordPress infogérés peuvent diagnostiquer rapidement les erreurs 500 au niveau du serveur à partir du journal.

Si votre hébergeur ne parvient pas à résoudre le problème, ou si des erreurs 500 reviennent fréquemment en charge normale, il est peut-être temps d’évaluer un environnement d’hébergement plus performant, adapté aux besoins de votre site.

Abonnez-vous à notre chaîne YouTube pour plus de tutoriels vidéo WordPress et connectez-vous avec nous sur Twitter et Facebook.

Que faire si aucune des solutions ne fonctionne

Si vous avez parcouru les six solutions et que l’erreur persiste, utilisez ce tableau pour cerner les possibilités restantes :

Symptôme Ce qu’il faut vérifier
Le journal de débogage est vide après l’activation de WP_DEBUG Vérifiez le journal d’erreurs au niveau du serveur (chemin Apache ou Nginx de la solution 1) ; l’erreur PHP n’atteint peut-être pas la couche de journalisation de WordPress
Tous les plugins désactivés, l’erreur persiste Passez à un thème WordPress par défaut (comme Twenty Twenty-Four) via FTP en renommant le dossier de votre thème actif sous /wp-content/themes/
Erreur uniquement sur wp-admin, pas sur le front-end Un plugin ou fichier propre à l’administration dans /wp-content/mu-plugins/ se charge peut-être et échoue ; vérifiez ce répertoire
L’erreur 500 apparaît sur une seule URL Un shortcode, un champ personnalisé ou un bloc propre à un article déclenche peut-être une erreur fatale ; activez WP_DEBUG et visitez cette URL pour capturer l’entrée du journal
L’hébergeur affirme qu’il n’y a aucune erreur serveur Demandez précisément l’état du processus PHP-FPM et si le pool de workers PHP a été redémarré récemment

Articles connexes

Rene Hermenau

Auteur : Rene Hermenau

À propos de l'auteur : René Hermenau est le fondateur de WP STAGING. Il travaille sur les sauvegardes WordPress, les environnements de staging, les migrations, la gestion des bases de données et les workflows de déploiement sécurisés.