Ce que veut dire « erreur 500 »

Le code HTTP 500 signifie : le serveur a rencontré un problème qu'il ne sait pas décrire. Selon le navigateur et l'hébergeur, il s'affiche comme « 500 Internal Server Error », « HTTP ERROR 500 » ou « Cette page ne fonctionne pas ». Sur WordPress, il a presque toujours l'une de ces causes : un fichier .htaccess invalide, une erreur PHP fatale, une limite de ressources atteinte ou des permissions de fichiers incorrectes.

C'est un cousin de la page blanche et de l'erreur critique : la même panne PHP peut produire l'un ou l'autre selon la configuration du serveur.

Avant toute modification

Sauvegardez fichiers et base de données. Chaque étape ci-dessous est réversible, à condition d'avoir un point de retour.

1. Lire le journal d'erreurs du serveur

C'est l'étape qui fait gagner le plus de temps. Dans cPanel : Métriques → Erreurs ; chez la plupart des hébergeurs, un menu « Journaux » ou « Logs ». Cherchez les lignes à l'heure exacte où vous avez rechargé la page. Trois formes reviennent souvent :

  • Invalid command ou RewriteRule → le problème est dans .htaccess (étape 2).
  • PHP Fatal error → une extension ou le thème (étapes 3 et 4).
  • Allowed memory size exhausted → la mémoire PHP (étape 5).
  • is writable by group ou Permission denied → les permissions (étape 6).

2. Régénérer le fichier .htaccess

Sur les serveurs Apache et LiteSpeed (la majorité des hébergements mutualisés), une seule ligne invalide dans .htaccess suffit à provoquer une erreur 500 sur tout le site. Les extensions de cache, de sécurité et de redirection y écrivent toutes.

En SFTP, renommez .htaccess (fichier caché, à la racine) en .htaccess-ancien. Rechargez le site. S'il revient, connectez-vous et allez dans Réglages → Permaliens, puis cliquez sur « Enregistrer » sans rien changer : WordPress recrée un fichier propre. Si besoin, voici le contenu standard :

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

Sur un serveur Nginx, il n'y a pas de .htaccess : passez directement à l'étape suivante.

3. Activer le journal de débogage WordPress

Ajoutez 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, puis ouvrez wp-content/debug.log : la dernière ligne PHP Fatal error nomme le fichier et la ligne en cause.

4. Désactiver les extensions, puis le thème

Renommez wp-content/plugins en plugins-off. Si le site revient, remettez le nom d'origine et renommez les dossiers des extensions un par un jusqu'à ce que l'erreur réapparaisse. Si rien ne change, faites de même avec le dossier du thème actif dans wp-content/themes/.

5. Augmenter la mémoire PHP

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

Si l'hébergeur plafonne la mémoire plus bas, cette ligne n'aura pas d'effet : augmentez la limite memory_limit dans le panneau (« Sélecteur PHP », « Options PHP ») ou demandez-le au support. Et cherchez ensuite ce qui consomme autant — augmenter la limite masque souvent le vrai problème.

6. Vérifier permissions et version de PHP

ÉlémentValeur attendueErreur si incorrect
Dossiers755500 si 777 sur certains serveurs
Fichiers644500 si le fichier est modifiable par le groupe
wp-config.php640 ou 600Risque de sécurité si trop ouvert
Version de PHPCompatible avec vos extensions500 juste après un changement de version

Si l'erreur est apparue sans aucune intervention de votre part, vérifiez si l'hébergeur a changé la version de PHP — c'est l'une des causes « je n'ai rien touché » les plus fréquentes.

Toujours une erreur 500 ?

Envoyez-moi la dernière ligne du journal d'erreurs, ou simplement l'adresse du site. La plupart des erreurs 500 se règlent en moins de deux heures — et vous ne payez rien si je ne peux pas réparer.

Questions fréquentes

L'erreur 500 vient-elle de mon hébergeur ou de WordPress ?

Le plus souvent de WordPress : un .htaccess invalide, une extension ou une limite de mémoire. Si le journal d'erreurs est vide et que même un fichier de test statique renvoie une erreur 500, contactez l'hébergeur.

L'erreur 500 n'apparaît que dans l'administration. Pourquoi ?

Une extension qui ne s'exécute que côté administration est en cause, ou la mémoire est insuffisante pour le tableau de bord. Le journal de débogage le confirmera.

Une erreur 500 peut-elle être le signe d'un piratage ?

Parfois. Du code injecté dans .htaccess ou dans un fichier PHP peut provoquer une erreur 500. Si le .htaccess contient des redirections que vous n'avez pas ajoutées, consultez le guide du site piraté.

Mon site renvoie une erreur 500 juste après une mise à jour. Que faire ?

Désactivez l'élément que vous venez de mettre à jour en renommant son dossier via SFTP, puis vérifiez sa compatibilité avec votre version de PHP.