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 commandouRewriteRule→ 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 groupouPermission 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ément | Valeur attendue | Erreur si incorrect |
|---|---|---|
| Dossiers | 755 | 500 si 777 sur certains serveurs |
| Fichiers | 644 | 500 si le fichier est modifiable par le groupe |
wp-config.php | 640 ou 600 | Risque de sécurité si trop ouvert |
| Version de PHP | Compatible avec vos extensions | 500 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.