Ce que tu vas résoudre ici

Ce matin, un site sous WordPress affichait une page blanche avec une seule ligne : “500 Internal Server Error”. Aucun autre indice. Pas de message de plugin, pas de log visible depuis l’admin — pour cause, l’admin lui-même était injoignable. C’est le scénario le plus fréquent d’erreur 500 : un message générique qui ne dit rien de la vraie cause, et qui peut venir d’à peu près n’importe quel étage de la stack (serveur, PHP, thème, plugin, base de données).

Cet article s’adresse à qui doit remettre un site en ligne vite, en avançant du diagnostic le plus simple au plus technique — sans supposition, sans redémarrer le serveur “au cas où” en espérant que ça passe. À la fin, tu sauras localiser la cause exacte et la corriger proprement.

Prérequis

Étape 1 : vérifier le fichier .htaccess

Le .htaccess est la cause la plus fréquente et la plus rapide à corriger. Une règle de réécriture cassée, une directive mal fermée, ou un ajout manuel maladroit (souvent après une modification de permaliens ou une migration) suffit à provoquer une 500.

  1. Connecte-toi en FTP à la racine du site (là où se trouvent wp-config.php et les dossiers wp-content, wp-admin).
  2. Renomme temporairement .htaccess en .htaccess_old.
  3. Recharge le site. Si l’erreur disparaît, le problème vient bien de ce fichier.
  4. Régénère un .htaccess propre depuis Réglages > Permaliens dans l’admin WordPress (clique sur “Enregistrer” sans rien changer).

Si l’admin lui-même est inaccessible à cause de la 500, régénère manuellement le contenu standard 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

Ce cas se croise aussi souvent en combinaison avec une erreur 404 sur toutes les pages : les deux symptômes partagent la même racine, une réécriture d’URL cassée.

Étape 2 : vérifier et augmenter la mémoire PHP

Une erreur 500 peut venir d’un dépassement de la limite mémoire allouée à PHP (memory_limit). C’est fréquent après l’ajout d’un plugin gourmand, une montée en volume de contenu, ou un thème mal optimisé.

  1. Ouvre wp-config.php à la racine du site.
  2. Ajoute juste avant la ligne /* That's all, stop editing! */ :
define( 'WP_MEMORY_LIMIT', '256M' );
define( 'WP_MAX_MEMORY_LIMIT', '256M' );
  1. Si le fichier php.ini est accessible (VPS, serveur dédié, ou hébergement avec accès complet), vérifie aussi :
memory_limit = 256M
  1. Recharge le site après chaque modification, une à la fois.

Si tu n’es pas sûr de la différence entre ces différentes directives PHP (limite mémoire, temps d’exécution, taille d’upload), notre guide complet des directives PHP WordPress détaille chacune et où la modifier selon ton hébergeur.

Étape 3 : isoler un plugin ou un thème fautif

Si le .htaccess et la mémoire PHP ne sont pas en cause, le problème vient très probablement d’un plugin ou du thème actif — souvent après une mise à jour automatique ou manuelle.

  1. Renomme le dossier wp-content/plugins en plugins_old via FTP.
  2. Recharge le site. S’il revient, tous les plugins étaient désactivés en bloc — le fautif est parmi eux.
  3. Renomme le dossier en plugins et réactive les extensions une par une depuis l’admin, en testant le site après chaque activation.
  4. Si le thème est suspecté, bascule temporairement sur un thème par défaut (Twenty Twenty-Four par exemple) en renommant le dossier du thème actif dans wp-content/themes.

Ce protocole d’élimination est identique à celui qu’on utilise pour un site cassé après une mise à jour automatique ou pour un plugin qui casse le site après une MAJ. La logique de rollback y est détaillée si tu dois revenir à une version antérieure.

Étape 4 : consulter les logs serveur

Si les trois premières étapes n’ont rien donné, il faut arrêter de deviner et lire ce que le serveur dit réellement. Le message affiché au visiteur (“500 Internal Server Error”) est volontairement vague pour des raisons de sécurité — le vrai détail est dans les logs.

  1. Active le mode debug de WordPress dans wp-config.php :
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );
  1. Recharge la page en erreur, puis consulte wp-content/debug.log.
  2. Si rien n’apparaît côté WordPress, va chercher les logs serveur : dans cPanel via “Erreurs”, dans Plesk via “Journaux”, ou en SSH via :
tail -n 100 /var/log/apache2/error.log
# ou selon la config
tail -n 100 /var/log/nginx/error.log
  1. Cherche la ligne horodatée correspondant au moment de l’erreur : elle mentionne généralement le fichier PHP exact et la ligne fautive.

Cette étape est aussi celle qu’on recommande pour distinguer une 500 d’une erreur 502 ou d’une erreur 503 : les logs révèlent si la cause est applicative (PHP) ou liée à la communication entre le serveur web et le processus PHP-FPM.

Étape 5 : vérifier les fichiers core et les permissions

Si aucune des étapes précédentes n’a résolu le problème, deux causes plus rares restent à vérifier :

Si le site a été compromis récemment, une 500 peut aussi être la conséquence d’un fichier malveillant injecté — vérifie ce point avec notre guide sur un site WordPress piraté avant de conclure trop vite à un simple bug.

Tableau récapitulatif : cause → solution

Cause probableSymptôme associéSolution rapide
.htaccess corrompu500 immédiate, admin parfois inaccessibleRenommer puis régénérer via Permaliens
Mémoire PHP insuffisante500 après ajout de contenu/pluginAugmenter WP_MEMORY_LIMIT
Plugin incompatible500 après une mise à jourDésactivation en masse puis test unitaire
Thème buggé500 sur le front uniquementBascule sur thème par défaut
Fichiers core corrompus500 après une MAJ interrompueRéupload wp-admin et wp-includes
Permissions incorrectes500 aléatoire, parfois lié à l’uploadRéinitialiser en 755/644

Pièges courants

FAQ

Une erreur 500 peut-elle disparaître toute seule ?

Parfois, si elle est liée à un pic de charge temporaire côté serveur. Mais si elle revient régulièrement, c’est le signe d’une cause structurelle (mémoire, plugin, hébergement sous-dimensionné) qu’il faut traiter, pas ignorer.

Faut-il contacter l'hébergeur avant de chercher soi-même ?

Contacte-le en parallèle si tu n’as pas accès aux logs serveur toi-même. Beaucoup d’hébergeurs mutualisés masquent ces logs par défaut ; un ticket support peut débloquer l’accès ou te fournir directement l’extrait pertinent.

La 500 peut-elle venir de la base de données ?

Oui, notamment si une requête malformée (souvent via un plugin) sature le serveur MySQL. Le symptôme ressemble alors davantage à une erreur de connexion à la base, mais une 500 générique peut aussi masquer ce cas — les logs serveur permettent de trancher.

Comment éviter que ça se reproduise ?

Une maintenance régulière (mises à jour testées en environnement de préproduction, surveillance des logs, sauvegardes automatiques) limite fortement ce type d’incident. Le comparatif entre maintenance illimitée et frais à la carte explique ce que couvre — ou pas — un contrat de maintenance sur ce point précis.

Une erreur 500 non résolue en quelques minutes n’est jamais “juste de la malchance” : c’est toujours une cause identifiable, du fichier de configuration au serveur lui-même. La méthode compte plus que la vitesse — corriger au hasard un .htaccess ou un plugin sans passer par les logs, c’est risquer de masquer temporairement un problème qui reviendra sous une autre forme.

Ce problème, Peechy s'en occupe

Plutôt que de tout gérer seul, confiez votre site à une agence qui s'occupe de tout — hébergement, sécurité, maintenance et corrections. Encore plus simple en abonnement : on règle les soucis avant même que vous les remarquiez.

Confier mon site à Peechy