DétectionRéférencementPublié le · mis à jour le · 11 min

Injection SEO et spam sur WordPress : le piratage que vous ne voyez pas

C'est l'infection la plus sournoise : votre site fonctionne normalement quand vous le consultez. Le problème n'apparaît que pour Google et pour les visiteurs venus de la recherche, c'est-à-dire là où vous ne regardez jamais.

Sources : guides de Google sur le piratage par mots-clés japonais, les pages charabia et les mots-clés masqués, et règles anti-spam de Google (en anglais).

L'essentiel en 30 secondes

Le principe
Votre domaine a une réputation auprès de Google ; l'attaquant s'en sert pour faire monter ses propres pages
Pourquoi vous ne voyez rien
Le cloaking : un contenu pour Google, un autre pour vous, connecté ou venu directement
Le bon réflexe
Chercher site:votre-domaine.fr et inspecter les URL suspectes dans la Search Console
Piège fréquent
L'attaquant s'ajoute comme propriétaire de votre Search Console pour y déposer ses sitemaps
Où il se cache
Souvent en base de données et dans le .htaccess, pas seulement dans des fichiers PHP

Pourquoi un attaquant vise votre référencement

Contrairement à une défiguration, une injection SEO n'a aucun intérêt à se montrer. Votre domaine a une ancienneté et une réputation auprès de Google, et l'attaquant les détourne pour faire monter des pages qui vendent des produits illicites ou poussent d'autres sites. Plus l'injection reste invisible, plus elle rapporte. D'où l'usage presque systématique du cloaking : servir un contenu différent selon qui regarde. Google le classe parmi les pratiques contraires à ses règles anti-spam, et c'est votre site qui en subit les conséquences : avertissement « Ce site peut être piraté », pages déclassées, trafic qui chute.

Les formes les plus courantes

FormeCe qui se passeComment elle se trahit
Pharma hackVos pages remontent sur des noms de médicaments. Le texte n'est servi qu'au robot de Google.Titres et extraits étranges dans les résultats, pages normales dans votre navigateur
Spam japonaisDes centaines de pages en japonais (contrefaçon, revente) créées sous votre domaine, avec leur propre sitemap.Pages en japonais dans site:, sitemap inconnu dans la Search Console
Pages charabiaDes pages au texte généré automatiquement, bourrées de mots-clés, dans des dossiers aux noms aléatoires.URL aux noms incompréhensibles, pic soudain de pages indexées
Redirection conditionnelleLe visiteur venu de Google, ou sur mobile, part vers un autre site. Vous, en tapant l'adresse, restez sur le vôtre.Plaintes de visiteurs que vous ne pouvez pas reproduire
Liens cachésDes liens vers d'autres sites ajoutés à vos pages, invisibles (même couleur que le fond, hors écran).Liens inconnus dans le code source des pages

Comment la repérer quand elle se cache de vous

  • Cherchez votre propre site sur Google avec site:votre-domaine.fr, et parcourez plusieurs pages de résultats. Des URL aux dossiers aléatoires, une autre langue ou des titres douteux sont un signal net. Une page de spam peut se présenter comme une erreur 404 pour vous et rester visible pour Google.
  • Regardez la page comme Google la voit. L'outil d'inspection d'URL de la Search Console affiche le contenu récupéré par le robot : c'est souvent là que le texte injecté apparaît.
  • Vérifiez les propriétaires de la Search Console. D'après Google, les attaquants s'ajoutent comme propriétaires pour modifier les sitemaps ou le ciblage géographique. Un propriétaire inconnu suffit à confirmer l'intrusion.
  • Testez depuis un moteur de recherche, pas depuis la barre d'adresse, et sur mobile : la redirection ne se déclenche souvent que si le visiteur vient de Google.
  • Surveillez les impressions incohérentes dans le rapport Performances : une visibilité soudaine sur des mots-clés sans rapport avec votre activité trahit des pages parasites indexées.

Où le code se loge

À la différence d'un webshell, l'injection SEO se cache souvent hors des fichiers PHP. C'est ce qui la rend tenace : une analyse limitée aux fichiers passe à côté de la partie stockée en base.

1

La base de données

Le contenu de spam est stocké dans les articles, les widgets ou une option, puis réinjecté à l'affichage. Un nettoyage qui ne touche que les fichiers le laisse intact.

2

Les tâches planifiées de WordPress

Une tâche réécrit le contenu ou réinstalle le code à intervalle régulier, pour survivre à une suppression.

wp cron event list
3

Le fichier .htaccess

Des règles de réécriture servent les pages de spam ou redirigent les visiteurs selon leur provenance. Google recommande de remplacer le .htaccess par une version propre plutôt que de chercher la ligne fautive.

4

Le thème ou une fausse extension

Du code dans functions.php, ou une extension au nom plausible, trie les visiteurs : robot de Google, visiteur venu de la recherche, administrateur connecté. C'est le cœur du cloaking.

5

Des fichiers générés

Les pages de spam peuvent être de vrais fichiers, créés en masse dans un dossier aux noms aléatoires, ou produites à la volée par un seul fichier PHP.

Retirer l'injection

1

Faire le ménage dans la Search Console

Dans les paramètres, retirez les propriétaires que vous ne connaissez pas et supprimez leur jeton de vérification : un fichier HTML à la racine, ou une règle du .htaccess. Supprimez aussi les sitemaps que vous n'avez pas déclarés. Sans cette étape, l'attaquant garde la main sur la façon dont Google voit votre site.

2

Copier, puis nettoyer fichiers et base

Après une copie complète de l'état infecté, réinstallez le cœur, les extensions et le thème depuis leurs sources officielles, remplacez le .htaccess, et retirez le contenu injecté de la base : articles, widgets, options. Cherchez aussi le PHP récent, anormalement gros ou obfusqué (base64_decode, eval).

3

Faire disparaître les pages de spam

Une fois le code retiré, les pages de spam doivent renvoyer une erreur 404 ou 410, et non une redirection vers l'accueil. Vérifiez-le avec l'outil d'inspection d'URL : il doit montrer une page introuvable, pas un contenu de spam.

4

Corriger l'entrée, puis demander le réexamen

Corrigez la faille par laquelle l'attaquant est entré et changez tous les mots de passe. Si Google signale le site, demandez ensuite le réexamen : il prend plusieurs semaines pour du spam, plus que pour un malware. Les pages disparaissent ensuite de l'index au fil des explorations.

Le nettoyage complet est détaillé dans comment nettoyer un WordPress hacké, et la procédure de réexamen dans « Ce site peut être piraté » : que faire.

Retrouver son référencement

Le retrait du spam ne fait pas disparaître les pages de l'index du jour au lendemain : Google les retire au fil de ses explorations, en constatant qu'elles renvoient une erreur 404 ou 410. Pour masquer rapidement les plus gênantes, l'outil Suppressions de la Search Console les cache des résultats pendant environ six mois. Ce masquage est temporaire : seule l'erreur 404 ou 410 rend le retrait définitif, et bloquer ces URL dans le robots.txt ne suffit pas.

Vos pages légitimes, elles, remontent progressivement une fois l'avertissement levé et le spam retiré. Personne ne peut promettre un délai. Ce qui le raccourcit : un nettoyage complet dès le premier passage, une demande de réexamen précise, et aucune réinfection pendant les semaines qui suivent. Surveillez le rapport Pages de la Search Console : le nombre de pages indexées doit revenir vers celui que vous aviez avant l'attaque.

Ce que notre scan voit, et ce qu'il ne voit pas

Le scan analyse les fichiers, dont les .htaccess, et lit en lecture seule une partie de la base : options, comptes administrateurs, tâches planifiées et contenus. C'est là que l'injection SEO aime se loger. Il ne voit pas le site comme Google le voit et ne consulte pas votre Search Console : la recherche site: et l'inspection d'URL restent à faire de votre côté. Le retrait du contenu injecté dans vos articles est une intervention sur vos données, que vous menez ou que nous menons dans le cadre du Nettoyage accompagné.

Le détail de la méthode et de ses limites est publié sur notre page méthodologie.

Savoir où l'injection se cache sur votre site

Le scan unique analyse les fichiers et une partie de la base de votre WordPress, et classe chaque élément en menace confirmée, à vérifier ou informatif. Si une menace est confirmée, le Nettoyage accompagné (249 €) remet le site en état pour vous : sauvegarde vérifiée, quarantaine réversible et remplacement par les versions officielles.

Paiement unique, sans abonnement. Il faut créer un compte et installer sur le site notre extension de connexion, qui fonctionne en lecture seule. Le scan ne vérifie ni le serveur ni les secrets : ces étapes restent à faire.