Votre site WordPress ne répond plus. Écran blanc, message d'erreur, ou pire : des liens vers des pharmacies en ligne qui apparaissent dans Google à votre place. La première réaction est de paniquer et de cliquer partout. C'est exactement ce qu'il ne faut pas faire.
Je suis Sébastien, développeur WordPress freelance à Lyon. J'interviens régulièrement sur des sites cassés ou compromis, et dans 90 % des cas, le problème se règle avec une procédure méthodique. Voici celle que je suis, étape par étape.
Deux scénarios très différents se cachent derrière "mon site ne marche plus" :
- La panne technique : le site affiche une erreur mais personne n'est entré. Souvent une mise à jour, une extension, un fichier corrompu.
- Le piratage : quelqu'un a injecté du code, créé des pages, ou pris la main. Là, ce n'est plus du dépannage, c'est de la sécurité. On va traiter les deux. Mais d'abord, une règle commune.
Avant tout : ne supprimez rien
Le réflexe de tout effacer pour "repartir propre" est la pire idée. Vous détruisez les preuves, et si c'est un piratage, vous risquez de garder la faille tout en perdant les traces qui permettent de la trouver.
Première action, toujours : faites une sauvegarde de l'état actuel, même cassé. Fichiers et base de données. Via votre hébergeur, FTP, ou en ligne de commande si vous y avez accès :
# Sauvegarde de la base de données
mysqldump -u UTILISATEUR -p NOM_DE_LA_BASE > backup-avant-intervention.sql
# Archive des fichiers
tar -czf backup-fichiers.tar.gz /chemin/vers/votre/site
Maintenant, on diagnostique.
Cas 1 : le site est en panne
1. Est-ce votre site, ou tout l'hébergement ?
Avant de plonger dans WordPress, éliminez le plus simple. Si c'est l'hébergeur qui est down, vous allez chercher un bug pour rien.
- Testez un autre site hébergé au même endroit, s'il y en a un.
- Vérifiez la page de statut de votre hébergeur (la plupart en ont une).
- Tapez votre nom de domaine dans un outil comme
downforeveryoneorjustme.compour voir si c'est vous ou tout le monde. Si tout l'hébergement est par terre, contactez le support et passez votre tour. Sinon, on continue.
2. Identifiez le symptôme exact
Le message d'erreur est votre meilleur ami. Notez précisément ce que vous voyez :
| Symptôme | Piste la plus probable |
|---|---|
| Écran totalement blanc | Erreur PHP fatale, conflit d'extension ou mémoire |
| Erreur 500 | Fichier .htaccess, PHP, ou extension qui plante |
| "Erreur de connexion à la base de données" | Identifiants DB, serveur MySQL, table corrompue |
| Erreur 403 | Permissions de fichiers ou règle de sécurité |
| Site bloqué en "maintenance" | Fichier .maintenance laissé après une mise à jour ratée |
Ce dernier cas est le plus rapide à régler : connectez-vous en FTP, supprimez le fichier .maintenance à la racine du site, et c'est réglé.
3. Activez le mode debug
Par défaut, WordPress masque les erreurs aux visiteurs. Pour voir ce qui se passe réellement, ouvrez le fichier wp-config.php (à la racine, via FTP) et ajoutez ces lignes avant la ligne /* That's all, stop editing! */ :
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true ); // écrit les erreurs dans un fichier
define( 'WP_DEBUG_DISPLAY', false ); // ne les affiche pas aux visiteurs
Rechargez le site. Les erreurs s'écrivent maintenant dans wp-content/debug.log. Ouvrez-le : la dernière ligne pointe presque toujours vers le fichier ou l'extension fautive.
Pensez à remettre
WP_DEBUGsurfalseune fois le problème réglé. On ne laisse jamais le debug actif en production.
4. Désactivez les extensions sans accès à l'admin
Si l'admin est inaccessible, vous ne pouvez pas désactiver les extensions depuis le tableau de bord. Passez par le FTP.
Renommez le dossier complet des extensions :
wp-content/plugins → wp-content/plugins-off
Votre site se recharge sans aucune extension. S'il revient à la vie, c'est une extension le coupable. Renommez le dossier à l'identique (plugins), puis réactivez les extensions une par une dans l'admin jusqu'à retrouver celle qui casse tout.
5. Repassez sur un thème par défaut
Même logique pour le thème. Renommez le dossier de votre thème actif dans wp-content/themes/. WordPress bascule automatiquement sur un thème par défaut (Twenty Twenty-Four ou similaire). Si le site repart, le problème vient de votre thème, souvent du fichier functions.php.
6. "Erreur de connexion à la base de données"
Ce message a trois causes classiques :
-
Identifiants incorrects dans
wp-config.php(DB_NAME,DB_USER,DB_PASSWORD,DB_HOST). Vérifiez-les auprès de votre hébergeur, surtout après une migration. - Serveur MySQL injoignable : trop de connexions, serveur surchargé. Côté hébergeur.
-
Table corrompue. WordPress propose un outil de réparation. Ajoutez dans
wp-config.php:
define( 'WP_ALLOW_REPAIR', true );
Puis visitez votre-site.fr/wp-admin/maint/repair.php, lancez la réparation, et retirez la ligne aussitôt après (sinon n'importe qui peut accéder à cet outil).
7. La mémoire PHP est saturée
L'écran blanc vient parfois d'une limite mémoire trop basse, surtout sur les sites un peu lourds. Augmentez-la dans wp-config.php :
define( 'WP_MEMORY_LIMIT', '256M' );
Si ça ne suffit pas, le réglage se fait au niveau de l'hébergement (php.ini ou panneau de l'hébergeur).
Cas 2 : le site est piraté
Ici, la logique change. On ne cherche plus à "réparer", on cherche à nettoyer et sécuriser. Et la règle d'or : tant que vous n'avez pas trouvé par où c'est entré, le site se fera repirater.
Les signes qui ne trompent pas
- Des redirections vers des sites inconnus (pharmacie, casino, contrefaçon).
- Des pages indexées dans Google que vous n'avez jamais créées.
- Google ou votre navigateur affiche un avertissement "site dangereux".
- Des comptes administrateurs que vous ne reconnaissez pas.
- Des fichiers récemment modifiés alors que vous n'avez touché à rien.
- Votre hébergeur vous a envoyé une alerte de sécurité. ## 1. Isolez le site
Mettez le site en mode maintenance (HTTP 503) pour stopper la propagation et éviter que vos visiteurs soient infectés ou redirigés pendant l'intervention. Si l'attaque est grave, demandez à votre hébergeur de couper l'accès public temporairement.
2. Lancez un scan
Installez un scanner reconnu (depuis l'admin, ou en FTP si l'admin est bloqué) :
- Wordfence : la référence gratuite, scan approfondi.
- MalCare : scan côté serveur, très rapide.
- Sucuri : bon pour le scan distant et la blacklist Google. Le scan vous liste les fichiers modifiés, les fichiers inconnus, et les injections suspectes. C'est votre carte du champ de bataille.
3. Traquez les fichiers récemment modifiés
Si vous avez un accès SSH, c'est l'outil le plus efficace. Listez tous les fichiers PHP modifiés ces 7 derniers jours :
find . -type f -name "*.php" -mtime -7 -ls
Et repérez les motifs typiques du code malveillant (code obfusqué, exécution déguisée) :
grep -rEl "eval\(|base64_decode\(|gzinflate\(|str_rot13\(" wp-content/
Ces fonctions ont parfois des usages légitimes, mais combinées et planquées dans wp-content/uploads/, elles sont presque toujours le signe d'une porte dérobée.
4. Remplacez le cœur, ne le réparez pas
N'essayez pas de "nettoyer" les fichiers du cœur de WordPress un par un. Remplacez-les en bloc par les versions officielles. Avec WP-CLI :
# Vérifie quels fichiers du cœur ont été altérés
wp core verify-checksums
# Réinstalle le cœur proprement, sans toucher à vos contenus
wp core download --force --skip-content
Faites pareil pour vos extensions et thèmes : réinstallez-les depuis les sources officielles plutôt que de tenter de les désinfecter.
5. Comptes fantômes, clés et mots de passe
Trois actions non négociables :
-
Supprimez les comptes administrateurs inconnus. Vérifiez aussi la table
wp_usersdirectement, certains pirates créent des admins invisibles dans l'interface. -
Régénérez les clés de sécurité (SALT). Récupérez un nouveau jeu sur
https://api.wordpress.org/secret-key/1.1/salt/et remplacez le bloc correspondant danswp-config.php. Ça déconnecte toutes les sessions actives, y compris celle du pirate. - Changez tous les mots de passe : admin WordPress, base de données, FTP, et compte d'hébergement. ## 6. Nettoyez la base de données
Le code malveillant ne vit pas que dans les fichiers. Inspectez la table wp_options (lignes siteurl, home, scripts injectés), les articles et pages contenant du JavaScript suspect, et les entrées de spam. Un plugin comme Wordfence repère une partie de ces injections, mais une vérification manuelle reste souvent nécessaire.
7. Demandez le réexamen à Google
Si Google a blacklisté votre site, la dernière étape est de demander un réexamen via la Google Search Console, dans la section Sécurité et actions manuelles. À ne faire qu'après un nettoyage complet : si la moindre trace subsiste, Google maintiendra l'avertissement plus longtemps. Le centre de recherche Google propose un guide officiel dédié aux sites piratés, à lire avant la demande.
Quand passer la main
Vous pouvez gérer beaucoup de choses seul avec cette procédure. Mais certains signaux indiquent qu'il vaut mieux ne pas insister :
- Vous avez nettoyé, et le piratage revient quelques jours plus tard. La faille est toujours là.
- Le site est un e-commerce ou traite des données clients (enjeu RGPD, obligation de déclaration à la CNIL en cas de fuite).
- Vous n'avez pas de sauvegarde propre et le nettoyage manuel touche des fichiers que vous ne maîtrisez pas.
- Le site est blacklisté et chaque jour hors ligne vous coûte du chiffre d'affaires.
- Vous n'êtes simplement pas à l'aise avec le FTP, la base de données ou la ligne de commande, et une erreur peut aggraver la situation. Dans ces cas, un nettoyage approximatif coûte plus cher qu'une intervention propre, parce qu'il laisse une porte ouverte.
J'interviens sur ce type de situation, en dépannage ponctuel comme en suivi régulier. Si vous êtes face à un site cassé ou compromis :
- Site piraté : la procédure complète de nettoyage et de sécurisation est détaillée ici 👉 Site WordPress piraté : diagnostic, nettoyage et protection
- Pour éviter d'en arriver là : un contrat de maintenance (mises à jour, sauvegardes, surveillance) règle 90 % de ces incidents en amont 👉 Maintenance WordPress à Lyon
Pour aller plus loin
La meilleure procédure de diagnostic reste celle qu'on n'a jamais à utiliser. La plupart des pannes et piratages que je traite auraient été évités par quelques bons réflexes :
Post not found or has been removed.
Et vous, quel a été votre pire incident WordPress ? Racontez en commentaire, c'est toujours instructif de comparer les diagnostics.
Sébastien, développeur WordPress freelance à Lyon. J'aide les TPE et PME à construire, optimiser et maintenir des sites fiables. En savoir plus sur lyode.fr.
Top comments (0)