Sites piratés · WordPress · Nettoyage

Nettoyer un site WordPress piraté : la méthode complète, étape par étape

Nettoyer en surface ne suffit pas : tant que la faille et les portes dérobées restent en place, le piratage revient.

📅 29 septembre 2026✎ Bilal Destouches⏱ 12 min de lecture

Votre site WordPress est piraté, et vous voulez qu'il cesse de l'être. Supprimer les fichiers suspects et lancer une extension de sécurité est la façon la plus sûre de revoir le même piratage quelques jours plus tard. Un pirate qui a pris pied sur un serveur laisse presque toujours de quoi revenir : un compte administrateur, un fichier caché, une tâche planifiée qui réinstalle sa charge. Et tant que sa porte d'entrée reste ouverte, il n'en a même pas besoin.

Nettoyer un site piraté, c'est donc quatre choses, dans cet ordre : trouver la faille, nettoyer le piratage, retirer les portes dérobées, corriger la faille. Puis faire sortir le spam de Google. Ce guide détaille chaque étape avec les commandes utiles. Les passages techniques sont signalés : sans accès SSH, confiez-les à votre hébergeur ou à votre prestataire.

Avant de toucher au site : figer, isoler, changer les accès

Faire une copie de l'état piraté

Premier réflexe, contre-intuitif : sauvegarder le site tel qu'il est, fichiers et base de données, infection comprise. Elle permet de revenir en arrière, de retrouver la porte d'entrée et de prouver ce qui s'est passé à un assureur ou à la CNIL. Rangez-la hors du serveur, clairement nommée.

Si vous avez des sauvegardes plus anciennes, ne les restaurez pas les yeux fermés. Google le rappelle dans son guide pour les sites piratés : vérifiez d'abord que la sauvegarde a été créée avant le piratage.

Isoler le site

Si le site redirige vos visiteurs ou leur sert du code malveillant, mettez-le hors ligne. Google recommande une réponse 503, servie depuis l'extérieur du serveur compromis : une page de maintenance générée par le WordPress piraté peut elle-même être manipulée. Votre hébergeur peut le faire ; prévenez-le dans tous les cas, les autres sites de votre compte sont peut-être touchés.

Changer tous les mots de passe, depuis un poste sain

Tous, pas seulement celui de WordPress : espace client de l'hébergeur, FTP et SFTP, base de données (à reporter dans wp-config.php), chaque compte administrateur, et la boîte mail qui reçoit les réinitialisations. Faites-le depuis un ordinateur sain : un poste d'administrateur infecté figure en tête des causes de piratage listées par Google.

Si le site traite des données personnelles

Formulaires de contact, comptes clients, commandes WooCommerce : un piratage peut être une violation de données au sens du RGPD. Si elle présente un risque pour les personnes, elle se notifie à la CNIL dans les 72 heures si possible après sa découverte, quitte à compléter ensuite ; au-delà, le retard doit être justifié. Si le risque est élevé, les personnes concernées doivent aussi être informées. Toute violation, notifiée ou non, doit être documentée en interne (articles 33 et 34 du RGPD).

Mesurer l'étendue du piratage, côté Google

Dressez d'abord la liste de ce que le pirate a publié sous votre nom : elle servira à la désindexation et indique la nature de la charge : pages de casino en turc (la famille la plus fréquente dans notre veille, détaillé dans notre article sur les pages de casino et de paris sportifs), pharmacie, contrefaçons en japonais (voir le piratage par mots-clés japonais).

  • La recherche site:votredomaine.fr dans Google, page après page de résultats.
  • Dans Search Console, le rapport Problèmes de sécurité, le rapport Pages et les requêtes du rapport Performances dans des langues que vous ne parlez pas.
  • Dans Paramètres › Utilisateurs et autorisations, un propriétaire que vous ne connaissez pas : certains pirates vérifient votre site dans leur propre Search Console pour y déclarer leurs sitemaps. Retirez-le, puis supprimez le fichier ou la balise de validation qu'il a posé.
  • Dans Sitemaps, un fichier que vous n'avez pas déclaré.

Ces pages sont souvent invisibles dans votre navigateur : le serveur ne les sert qu'au robot de Google, c'est le cloaking. Pour voir ce que Google reçoit, suivez notre guide pour vérifier si un site est piraté.

Vérifiez par vous-même, sans nous
  1. Dans Google, tapez site:votredomaine.fr et parcourez les pages listées. Des titres qui ne vous ressemblent pas sont servis depuis votre site.
  2. Dans Search Console, ouvrez Sécurité et actions manuelles puis Problèmes de sécurité.
  3. Collez une URL suspecte dans le Test des résultats enrichis et cliquez sur Afficher la page testée, onglet HTML : vous lisez ce que votre site envoie à Google.

Le détail de ces trois vérifications est sur notre page méthode.

Étape 1 : trouver la porte d'entrée

C'est elle qui décide si le piratage reviendra : un site nettoyé dont la faille reste ouverte sera réinfecté par le même chemin. Google ajoute une mise en garde utile : plusieurs piratages indépendants peuvent coexister, et en trouver un ne dispense pas de chercher les autres.

PisteOù regarderCe qui doit alerter
Extension ou thème vulnérableListe des extensions et thèmes, avec leurs versionsUne version en retard de plusieurs mois, une extension abandonnée par son auteur, une faille publiée pour la version installée
Extension ou thème « nulled »Extensions premium installées sans licenceUne version payante téléchargée gratuitement sur un site tiers : elle est régulièrement livrée avec sa porte dérobée
Mot de passe volé ou trop faibleJournaux d'accès du serveur, dernières connexionsDes centaines de tentatives sur wp-login.php ou xmlrpc.php, puis une connexion réussie ; un mot de passe réutilisé ailleurs
Accès hébergement ou FTP compromisHistorique de connexion de l'espace client et du FTPDes connexions depuis un pays ou une heure qui ne correspondent à personne
Voisin infectéAutres sites du même compte d'hébergementUn vieux site oublié dans un sous-dossier ou un sous-domaine, jamais mis à jour

Si vous avez accès aux journaux du serveur (votre hébergeur les fournit souvent dans l'espace client), cherchez les requêtes POST vers des fichiers qui ne devraient pas en recevoir : un fichier PHP dans uploads, un nom aléatoire à la racine. La date de la première requête vers ce fichier date l'intrusion, et la requête qui la précède montre souvent par où elle est passée. Les dates de modification des fichiers aident aussi, avec une réserve : un pirate peut les falsifier, elles ne prouvent donc rien à elles seules.

Étape 2 : remplacer tout ce qui peut l'être

Le principe : ne pas fouiller les fichiers de WordPress, des extensions et des thèmes, mais les remplacer par des copies officielles.

Si vous avez un accès SSH et WP-CLI, ajoutez --skip-plugins --skip-themes à chaque commande : sans ces options, WP-CLI charge les extensions et le thème, donc le code du pirate. Le fichier wp-config.php est lu quoi qu'il arrive, d'où l'intérêt de l'ouvrir tôt.

# 1. Le cœur de WordPress : comparer aux sommes officielles
wp core verify-checksums --include-root --skip-plugins --skip-themes

# 2. Le réinstaller par-dessus, dans la même version, sans toucher à wp-content
wp core download --version=$(wp core version --skip-plugins --skip-themes) --locale=fr_FR --skip-content --force

# 3. Les extensions : comparer aux sommes de WordPress.org
wp plugin verify-checksums --all --skip-plugins --skip-themes

La première commande signale les fichiers modifiés ou en trop, et avec --include-root les fichiers étrangers à la racine. Le réinstallateur écrase les fichiers officiels mais ne supprime pas les fichiers en trop : relancez la vérification après, et supprimez ce qu'elle signale encore.

La vérification des extensions a une limite : elle ne connaît que les extensions publiées sur WordPress.org. Vos extensions premium, votre thème acheté, votre thème enfant ne sont pas vérifiés. Réinstallez les premières depuis le compte de l'éditeur, et relisez le thème enfant à la main, en commençant par functions.php. Supprimez enfin toute extension désactivée ou inconnue : inactive, elle reste exploitable.

Sans SSH, le même travail se fait par FTP : remplacer wp-admin, wp-includes et chaque extension par des copies fraîches.

Étape 3 : fouiller ce qui ne se remplace pas

wp-config.php et les fichiers .htaccess

wp-config.php doit contenir vos réglages et rien d'autre : pas d'include vers un fichier inconnu, pas de longue chaîne illisible. Les fichiers .htaccess se cherchent dans tous les dossiers, pas seulement à la racine : une règle de réécriture suffit à rediriger les visiteurs venus de Google ou à envoyer le robot vers le script du pirate.

Le dossier uploads

wp-content/uploads contient vos images et documents. Il n'a aucune raison de contenir du PHP, et c'est pourtant la cachette la plus courante.

# Fichiers exécutables dans uploads (il ne devrait y en avoir aucun)
find wp-content/uploads -type f \( -name "*.php" -o -name "*.phtml" -o -name "*.phar" \)

# Tous les .htaccess du site
find . -name ".htaccess"

# Fichiers PHP modifiés ces 30 derniers jours
find . -type f -name "*.php" -mtime -30

# Fonctions typiques du code masqué
grep -rlE "eval\(|base64_decode|gzinflate|str_rot13" --include="*.php" .

La dernière commande remonte aussi des extensions légitimes : un résultat n'est pas une preuve, c'est un fichier à ouvrir.

La base de données

Le pirate n'écrit pas que des fichiers. Dans la table wp_options (le préfixe peut différer chez vous), vérifiez siteurl et home, qui doivent pointer vers votre domaine, et active_plugins, qui doit correspondre à vos extensions. Dans wp_posts, cherchez les contenus qui contiennent du script ou des iframes que vous n'avez pas mis, et les pages publiées à des dates où personne n'a travaillé sur le site. Pensez aussi aux catégories et aux étiquettes.

wp option get siteurl --skip-plugins --skip-themes
wp option get active_plugins --skip-plugins --skip-themes
wp term list category --fields=term_id,name,slug,count --skip-plugins --skip-themes
wp db query "SELECT ID, post_title, post_date FROM wp_posts WHERE post_content LIKE '%<script%' OR post_content LIKE '%<iframe%';" --skip-plugins --skip-themes
Cas réel · août-septembre 2026

Une jardinerie. Dans Google, une de ses pages apparaît sous ce titre :

bahis Archives

« Bahis » signifie « paris » en turc, et « Archives » est le suffixe que WordPress ajoute aux pages de catégorie et d'étiquette. Le pirate a créé une catégorie sur le site : elle vit dans la base de données, pas dans les fichiers. Un nettoyage qui se limite aux fichiers la laisse en place. Sur les 79 sites piratés qui servaient à Google un titre de casino ou de paris dans notre veille (sites découverts entre mi-août et fin septembre 2026), 9 présentaient ce type de page « Archives ».

Étape 4 : retirer les portes dérobées

Une porte dérobée, ou backdoor, est ce que le pirate laisse pour revenir sans repasser par la faille. C'est elle qui explique les réinfections « inexplicables ». Les emplacements à passer en revue :

  • Les comptes administrateur. Listez-les, et supprimez ceux que vous ne connaissez pas en réattribuant leurs contenus. Un compte peut être masqué dans le tableau de bord par une extension malveillante : la liste de WP-CLI, lancée sans extensions, ou une requête directe sur la table wp_usermeta ne se laissent pas tromper.
  • Les mots de passe d'application. Ils permettent de piloter le site à distance sans passer par l'écran de connexion, et survivent à un changement de mot de passe. Vérifiez-les pour chaque administrateur, dans son profil ou avec WP-CLI.
  • Les tâches planifiées. Celles de WordPress, et celles du serveur, dans le panneau de l'hébergeur ou avec crontab -l. Une tâche au nom inconnu qui s'exécute chaque heure peut réinstaller toute la charge après votre nettoyage.
  • Les extensions « must-use » et les drop-ins. Les fichiers du dossier wp-content/mu-plugins s'exécutent sans apparaître dans la liste des extensions. Les drop-ins (advanced-cache.php, object-cache.php, db.php à la racine de wp-content) sont légitimes s'ils viennent de votre extension de cache, suspects sinon.
  • Les faux fichiers. Une extension au nom presque identique à une vraie, un fichier index.php dans un dossier qui n'en a pas besoin, un script au nom aléatoire à la racine.
  • Les sessions ouvertes. Régénérer les clés de sécurité de wp-config.php déconnecte tout le monde, pirate compris.
wp user list --role=administrator --fields=ID,user_login,user_email,user_registered --skip-plugins --skip-themes
wp db query "SELECT user_id, meta_value FROM wp_usermeta WHERE meta_key = 'wp_capabilities' AND meta_value LIKE '%administrator%';" --skip-plugins --skip-themes
wp user application-password list 1 --skip-plugins --skip-themes
wp cron event list --fields=hook,next_run_relative,recurrence --skip-plugins --skip-themes
wp plugin list --status=must-use --skip-plugins --skip-themes
wp plugin list --status=dropin --skip-plugins --skip-themes
wp config shuffle-salts

Remplacez le 1 par l'identifiant de chaque administrateur. Un compte supprimé qui réapparaît signale une porte dérobée oubliée : reprenez la liste.

Corriger la faille, puis rouvrir le site

La faille identifiée à l'étape 1 se corrige maintenant : mettre à jour ou supprimer l'extension vulnérable, remplacer l'extension « nulled » par une version sous licence ou par une alternative, fermer le vieux site oublié du compte. Ajoutez les réglages qui ferment des portes à peu de frais :

  • WordPress, extensions et thèmes à jour, et les mises à jour de sécurité appliquées sans attendre ;
  • la double authentification pour chaque administrateur, et le moins d'administrateurs possible ;
  • l'édition de fichiers désactivée dans le tableau de bord, avec define( 'DISALLOW_FILE_EDIT', true ); dans wp-config.php, comme le recommande la documentation officielle de WordPress ;
  • des droits de fichiers raisonnables (755 pour les dossiers, 644 pour les fichiers) ;
  • l'exécution de PHP interdite dans uploads, si votre serveur est un Apache, par un fichier .htaccess placé dans ce dossier.
<FilesMatch "\.(php|phtml|phar)$">
  Require all denied
</FilesMatch>

Rouvrez ensuite le site et repassez le Test des résultats enrichis sur la page d'accueil et sur quelques adresses de spam.

Faire sortir le spam de Google et demander le réexamen

Le serveur est propre, mais Google garde en mémoire les pages qu'il a indexées. Elles en sortent si elles répondent désormais par une erreur : chaque adresse de spam doit renvoyer un code 404 ou 410, jamais une redirection vers votre page d'accueil. Si elles sont nombreuses et visibles, l'outil Suppressions de Search Console les masque plus vite, par adresse ou par préfixe quand elles partagent un même dossier. Ce masquage dure environ six mois : il ne remplace pas la 404, il l'accompagne.

Déclarez ensuite un sitemap propre, retirez celui du pirate, et, si Search Console affiche un problème de sécurité ou une action manuelle, déposez la demande de réexamen. Google demande qu'elle explique le problème, décrive les mesures prises et en montre les résultats. Vos notes de nettoyage y répondent : faille trouvée, fichiers retirés, comptes supprimés. Notre article sur les problèmes de sécurité dans Search Console détaille la demande.

Côté délais, Google annonce, pour un site piraté avec du spam, un examen qui peut prendre jusqu'à plusieurs semaines, et quelques jours pour un logiciel malveillant ; une fois la demande acceptée, les avertissements disparaissent sous 72 heures. Une seule demande à la fois, et seulement une fois le problème réglé : une demande prématurée prolonge le signalement.

Ce que les extensions de sécurité voient, et ce qu'elles ratent

Wordfence, Sucuri et leurs équivalents reconnaissent des fichiers modifiés et des charges connues. Mais un scanner installé dans WordPress tourne à l'intérieur du site infecté, et ne connaît que ce qui ressemble à ce qu'il a déjà vu. Un scanner en ligne, lui, interroge votre site comme un visiteur : si le serveur ne sert le spam qu'aux adresses de Google, il ne voit rien. Le seul contrôle qui tranche pour le spam est celui que Google fait lui-même, décrit dans notre article sur le cloaking.

Surveiller les semaines suivantes

Pendant les semaines qui suivent, revenez régulièrement sur les mêmes points : la liste des administrateurs, les tâches planifiées, le dossier mu-plugins, les fichiers PHP de uploads, la recherche site: et Search Console. Tout nouvel élément signale une porte dérobée oubliée ou une faille mal identifiée.

Observation Hackwatch · 2026

Dans notre veille quotidienne des sites français piratés, les pages et les titres servis à Google changent en quelques jours : de l'ordre de six jours dans nos observations. Une recherche site: propre un jour ne prouve donc rien le lendemain : c'est la répétition des contrôles qui compte, pas un contrôle unique.

Cette surveillance, et les mises à jour qui évitent d'en arriver là, sont le cœur de notre maintenance à 200 € HT par mois : mises à jour suivies, sauvegardes, et les contrôles ci-dessus faits pour vous.

Le faire vous-même ou le confier

Tout ce qui précède est faisable seul, avec du temps, un accès SSH et de la méthode. Il ne pardonne pas l'oubli : une tâche planifiée ou un mot de passe d'application suffisent pour que le piratage revienne. Si vous préférez le confier, nous faisons ce parcours de la porte d'entrée au réexamen, avec le détail écrit de ce qui a été retiré. BetterCallBil est référencé sur la plateforme Cybermalveillance.gouv.fr ; notre méthode décrit ce que nous vérifions avant toute intervention, et le guide site piraté rassemble nos autres articles.

Votre site est concerné ?

Diagnostic gratuit, nettoyage 450 € HT, rien ne démarre sans votre accord écrit.

Demander le diagnostic

Questions fréquentes

Pourquoi mon site WordPress est-il de nouveau piraté après le nettoyage ?

Parce que la faille par laquelle le pirate est entré est restée ouverte, ou parce qu'une porte dérobée a survécu : un compte administrateur, un mot de passe d'application, une tâche planifiée, un fichier dans mu-plugins ou un fichier PHP dans uploads. Il faut identifier la porte d'entrée, la corriger, et passer en revue chacun de ces emplacements.

Une extension de sécurité suffit-elle à nettoyer un site piraté ?

Non. Elle aide à repérer des fichiers modifiés et des charges connues, mais elle tourne à l'intérieur du site infecté et ne trouve pas la faille d'entrée. Un scanner en ligne interroge le site comme un visiteur : si le serveur ne sert le spam qu'à Google, il ne voit rien.

Faut-il restaurer une sauvegarde plutôt que nettoyer ?

Seulement si la sauvegarde date d'avant le piratage, ce qui est difficile à établir : une infection s'installe souvent bien avant de se voir. Même restauré, le site garde la faille d'origine, qu'il faut corriger avant de le remettre en ligne.

Combien de temps faut-il à Google pour retirer les pages de spam ?

Les pages qui renvoient une erreur 404 ou 410 sortent de l'index au fil des explorations ; l'outil Suppressions de Search Console les masque environ six mois en attendant. Pour un problème de sécurité, Google annonce un examen de quelques jours pour un logiciel malveillant et jusqu'à plusieurs semaines pour du spam.

Combien coûte le nettoyage d'un site WordPress piraté ?

Chez BetterCallBil, le diagnostic est gratuit et le nettoyage coûte 450 € HT : recherche de la faille, nettoyage, retrait des portes dérobées, désindexation du spam et demande de réexamen. La maintenance qui suit est à 200 € HT par mois.

Bilal Destouches
Bilal Destouches

Fondateur de BetterCallBil, prestataire référencé sur la plateforme Cybermalveillance.gouv.fr. Plus de dix ans de sites web, 200 sites gérés, et depuis 2026 une veille quotidienne des sites français qui servent du spam à Google. Notre méthode · Mentions légales

Référencé sur la plateforme Cybermalveillance.gouv.fr
Dispositif public

Référencé sur la plateforme Cybermalveillance.gouv.fr

BetterCallBil est référencé sur Cybermalveillance.gouv.fr, le dispositif national d'assistance aux victimes d'actes de cybermalveillance. Nous avons signé sa charte d'engagement des prestataires :

  • diagnostic complet et devis écrit avant toute intervention ;
  • remédiation réalisée en interne, sans sous-traitance ;
  • conservation des preuves utiles à un dépôt de plainte ;
  • confidentialité de vos données.

Vérifier notre référencement dans l'annuaire officiel · Notre méthode

Les prestations sont réalisées et facturées par BetterCallBil. L'assistance publique de Cybermalveillance.gouv.fr reste gratuite pour toute victime.