Redirections vers des sites douteux, pages de spam en japonais dans Google, alerte rouge dans le navigateur, administrateur inconnu dans la liste des utilisateurs : votre site WordPress a probablement été piraté. Le réflexe de supprimer le fichier suspect et de passer à autre chose ne suffit presque jamais, car le pirate laisse en général plusieurs portes dérobées. Voici, dans l’ordre, les étapes que je suis quand je nettoie un site WordPress piraté.

Les signes d’un site WordPress piraté

  • Des redirections, souvent seulement sur mobile ou quand on arrive depuis Google, ce qui les rend difficiles à reproduire.
  • Des pages que vous n’avez jamais créées dans les résultats de recherche (pharmacie, casino, caractères japonais).
  • Un avertissement « Ce site a peut-être été piraté » dans Google, ou un message de sécurité dans la Search Console.
  • Des administrateurs inconnus, des extensions que personne n’a installées.
  • Un email de l’hébergeur, un site soudain très lent ou des emails de spam envoyés depuis votre domaine.

1. Isoler le site

Mettez le site en maintenance ou demandez à l’hébergeur de le suspendre le temps du nettoyage. L’objectif : ne plus servir de contenu malveillant à vos visiteurs et à Google. Si l’infection envoie des emails ou attaque d’autres sites, c’est urgent.

2. Sauvegarder l’état infecté

Faites une copie complète des fichiers et de la base de données, sans la restaurer. Elle sert à comprendre l’attaque, à retrouver la date d’intrusion et à revenir en arrière si le nettoyage casse quelque chose.

3. Changer tous les accès

  • Mots de passe de tous les administrateurs, de l’hébergement, du FTP ou SFTP et de la base de données (puis wp-config.php en conséquence).
  • Les clés de sécurité de wp-config.php (les lignes AUTH_KEY, SECURE_AUTH_KEY…) : en les remplaçant par de nouvelles valeurs générées sur api.wordpress.org/secret-key/1.1/salt/, vous déconnectez toutes les sessions, y compris celle du pirate.
  • Supprimez les comptes que vous ne reconnaissez pas, en vérifiant aussi directement dans la table des utilisateurs de la base de données.

4. Vérifier le cœur et les extensions

Si vous avez accès à WP-CLI, deux commandes comparent vos fichiers avec les versions officielles :

wp core verify-checksums
wp plugin verify-checksums --all

Tout fichier du cœur modifié est remplacé. Pour les extensions et le thème, la méthode la plus sûre est de les réinstaller depuis leur source officielle (répertoire WordPress ou site de l’éditeur), plutôt que de chercher le code malveillant ligne par ligne. Supprimez toute extension « nulled » (version piratée d’une extension payante) : c’est l’une des portes d’entrée les plus fréquentes.

5. Chercher les fichiers cachés

  • Des fichiers .php dans wp-content/uploads : ce dossier ne doit contenir que des médias.
  • Le dossier wp-content/mu-plugins : les extensions qui s’y trouvent se chargent automatiquement et n’apparaissent pas dans la liste habituelle, une cachette appréciée des pirates.
  • Du code illisible : eval(, base64_decode(, gzinflate(, de longues chaînes de caractères sans sens.
  • Le fichier .htaccess à la racine et dans les sous-dossiers : redirections selon la provenance ou le type d’appareil.

6. Nettoyer la base de données

Les pirates cachent aussi du code dans la base : scripts insérés dans les articles et les pages, adresse du site modifiée dans les réglages (siteurl et home), tâches planifiées malveillantes, options inconnues. Recherchez les balises <script et les domaines inconnus dans le contenu et les options, et supprimez ce qui n’a rien à y faire.

7. Mettre à jour et sécuriser

  • Mettez à jour WordPress, le thème et toutes les extensions, et supprimez celles qui ne servent pas.
  • Ajoutez define( 'DISALLOW_FILE_EDIT', true ); dans wp-config.php pour désactiver l’éditeur de fichiers de l’administration.
  • Activez la double authentification pour les administrateurs et limitez les tentatives de connexion.
  • Vérifiez les droits des fichiers (644 pour les fichiers, 755 pour les dossiers) et passez à une version de PHP supportée.

8. Faire lever les alertes

Dans la Google Search Console, rubrique « Problèmes de sécurité », demandez un réexamen en expliquant ce qui a été corrigé. Les pages de spam doivent renvoyer une erreur 404 ou 410 pour disparaître de l’index. Si votre domaine a été mis sur liste noire pour l’envoi d’emails, contactez l’hébergeur.

Comment éviter que ça recommence

La grande majorité des piratages WordPress viennent d’une extension ou d’un thème non mis à jour, ou d’une extension piratée. Une maintenance mensuelle garde le site à jour, sauvegardé et surveillé. Si vous voulez savoir où en est votre site aujourd’hui, un audit complet liste les risques par priorité. Le principe est le même sur les autres CMS : voir le guide site Joomla piraté.

Questions fréquentes

Une extension de sécurité peut-elle nettoyer mon site toute seule ?

Elle aide à repérer des fichiers suspects, mais elle ne trouve pas tout et ne corrige pas la faille d’origine. Les infections récentes sont justement conçues pour échapper aux scanners. Un nettoyage fiable combine les outils et une vérification manuelle.

Puis-je restaurer une ancienne sauvegarde ?

Seulement si vous êtes certain qu’elle date d’avant l’intrusion, et à condition de corriger la faille juste après. Sinon, le site sera de nouveau piraté, souvent en quelques jours.

Vais-je perdre mon référencement ?

Un piratage laissé en place fait chuter le référencement. Une fois le site nettoyé et le réexamen accepté, les positions reviennent en général, d’autant plus vite que l’intervention a été rapide.