secaudit.eu
Incidents

Spam SEO WordPress : repérer les liens cachés casino et pharma

Spam SEO WordPress : repérez les liens cachés casino et pharma, voyez ce que voit Googlebot, nettoyez base et fichiers, puis demandez un réexamen à Google.

Par , AngelForce OÜ 10 min de lecture

Aussi en : English Deutsch Español Italiano Polski Português Türkçe

Si Google affiche pour votre domaine des résultats inattendus de casino, de pharmacie ou en japonais alors que votre site paraît normal dans votre navigateur, soupçonnez du spam SEO WordPress. Ces résultats peuvent venir d'une compromission active, ou d'un spam resté indexé après un nettoyage. Le spam est soit dissimulé dans le balisage, soit servi uniquement à Google et aux visiteurs qui arrivent depuis un moteur de recherche. Ce guide montre comment voir votre site comme Google le voit, où le spam se loge, et comment l'en faire sortir.

À quoi ressemble le spam SEO WordPress, et pourquoi vous ne le voyez pas

Vous ne le voyez pas, parce qu'il n'est pas fait pour vous. Les attaquants veulent la réputation de votre domaine, pas l'attention de vos visiteurs. Le code injecté ignore souvent les utilisateurs connectés et les personnes qui saisissent directement votre adresse.

Il existe trois formes courantes :

  • Les liens parasites (hacklinks). Des liens vers des sites de casino, de pharmacie ou de crédit sont injectés dans vos pages. Ils se trouvent généralement dans un bloc display:none, positionnés hors écran, ou dans un pied de page que personne ne lit.
  • Le piratage par mots-clés japonais. Des milliers de pages générées automatiquement, avec du texte japonais et des liens vers des boutiques. Elles s'accompagnent souvent de leur propre sitemap pour que Google les trouve vite.
  • Les redirections conditionnelles et le cloaking. Le code examine le user agent, l'adresse IP ou le référent. Googlebot reçoit du contenu de spam. Le visiteur qui arrive depuis Google est redirigé. Vous, vous obtenez la page normale.
Schéma : le code injecté montre une page normale au propriétaire, des liens de spam à Googlebot, et redirige vers un casino les visiteurs venus de Google
Cloaking : une même URL renvoie un contenu différent selon qui la demande

Les dégâts sont bien réels, même invisibles. Le classement peut chuter, les visiteurs perdent confiance, et Google peut consacrer son budget d'exploration à des pages de spam plutôt qu'à vos vraies pages. Si vous hésitez encore sur la réalité du piratage, commencez par nos 12 signes qu'un site WordPress a été piraté.

Voir votre site comme Google le voit

Commencez par Google lui-même. Recherchez site:example.com, parcourez les résultats, puis affinez :

site:example.com casino
site:example.com viagra OR cialis
site:example.com 激安
site:example.com inurl:.html

Des résultats dans une langue que vous ne publiez pas, ou des motifs d'URL que votre site n'utilise pas, constituent de solides indices.

Un contrôle complémentaire utile : l'inspection d'URL dans Google Search Console. Collez une URL suspecte (ou votre page d'accueil), cliquez sur Tester l'URL en direct, puis sur Afficher la page testée. L'onglet HTML montre le balisage rendu que le robot de Google a reçu, et la capture d'écran ce qu'il a affiché. Cherchez dans ce HTML casino, href ou display:none. Le test en direct utilise le robot d'inspection de Google, que les attaquants peuvent traiter autrement que le robot d'indexation. Il peut révéler du cloaking, mais un résultat propre ne l'exclut pas.

Vous pouvez faire une comparaison approximative depuis votre propre machine avec curl :

curl -s https://example.com/ -o normal.html
curl -s -A "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)" https://example.com/ -o googlebot.html
diff normal.html googlebot.html
curl -sS -D - -o /dev/null -e "https://www.google.com/" https://example.com/

La dernière commande envoie une requête GET avec un référent Google et affiche les en-têtes de réponse. Un en-tête Location: peut trahir une redirection HTTP, mais cela ne détecte pas les redirections JavaScript et ne reproduit pas toutes les sessions de navigateur. Il y a une autre limite : si le code injecté teste les plages d'adresses IP de Google, curl lancé depuis votre portable verra une page propre. Un résultat curl propre ne signifie pas un site propre.

Enfin, ouvrez Indexation > Pages dans Search Console. Un bond soudain du nombre d'URL indexées ou détectées que vous n'avez pas publiées désigne en général des pages de spam générées.

Où se cache le spam SEO dans WordPress

Conservez une sauvegarde des fichiers et de la base avant d'investiguer. Protégez-la, car elle peut contenir des données personnelles et des secrets. Privilégiez une copie isolée, avec un accès réseau restreint, et lancez les commandes ci-dessous depuis sa racine WordPress : de nombreuses commandes WP-CLI chargent WordPress et peuvent donc exécuter du code compromis. Ajouter --skip-plugins --skip-themes réduit ce risque, mais les mu-plugins et un wp-config.php modifié s'exécutent quand même. Si vous ne pouvez pas isoler la copie en toute sécurité, demandez à votre hébergeur ou à un intervenant spécialisé en réponse à incident de mener l'investigation.

Dans la base de données

wp db search 'casino' --all-tables
wp db search 'viagra' --all-tables
wp post list --post_type=any --post_status=any --orderby=date --order=DESC --fields=ID,post_type,post_status,post_date,post_title
wp option list --search='widget_*'
wp option list --search='theme_mods_*'
wp user list --role=administrator --fields=ID,user_login,user_email,user_registered

Vérifiez les articles et les métadonnées d'articles à la recherche de liens que vous n'avez pas écrits, et repérez les articles ou pages récents au titre ou au statut étrange. Dans wp_options, examinez :

  • les widgets de texte et de HTML
  • les theme mods, où se loge souvent le code de pied de page personnalisé
  • les options chargées automatiquement (autoload) dont vous ne reconnaissez pas le nom

Les noms de tables en wp_ ci-dessus supposent le préfixe par défaut ; si le vôtre diffère, consultez $table_prefix dans wp-config.php. Un administrateur inconnu est à lui seul un constat grave.

Dans les fichiers

wp core verify-checksums
wp plugin verify-checksums --all
ls -la wp-content/mu-plugins
find wp-content/uploads -type f \( -name "*.php" -o -name "*.phtml" -o -name "*.phar" \)
find . -type f -name "*.php" -mtime -14
grep -rnE "base64_decode|gzinflate|str_rot13|eval\(" wp-content --include=*.php

wp core verify-checksums compare les fichiers du cœur avec ceux de WordPress.org. wp plugin verify-checksums --all ne fonctionne que pour les extensions hébergées sur WordPress.org. Pour les extensions premium, récupérez une copie neuve auprès de l'éditeur et comparez avec elle.

Le grep sur les marqueurs d'obfuscation produira des faux positifs, car des extensions légitimes utilisent aussi certaines de ces fonctions. Cherchez les longues chaînes encodées et le code qui n'a aucun sens dans son contexte.

Contrôlez aussi ces emplacements à la main :

  • functions.php, header.php et footer.php du thème
  • les dossiers d'extensions que vous n'avez pas installées (les attaquants aiment les noms plausibles)
  • wp-config.php et index.php, à la recherche de lignes include supplémentaires
  • .htaccess, à la recherche de règles RewriteCond sur HTTP_USER_AGENT ou HTTP_REFERER
  • la racine web, pour des fichiers XML de sitemap et des fichiers de vérification google*.html que vous n'avez pas créés
Forme de spamCachettes habituelles
Liens parasitesPied de page du thème, widgets, theme mods, contenu des articles
Piratage par mots-clés japonaisFichiers générés, faux sitemap, fausse extension, .htaccess
Cloaking et redirectionsfunctions.php, mu-plugins, .htaccess, index.php

Chercher les traces de l'attaquant dans Search Console

Les attaquants se déclarent souvent propriétaires de votre propriété dans Search Console. Ils y soumettent ensuite leurs propres sitemaps pour que Google indexe le spam plus vite. Tant qu'ils conservent cet accès, ils peuvent continuer à pousser des URL.

Ouvrez Paramètres > Utilisateurs et autorisations et supprimez tout propriétaire ou utilisateur que vous ne connaissez pas. Supprimez ensuite aussi sa méthode de validation : un fichier google*.html à la racine web, une balise meta dans votre thème ou vos réglages d'en-tête, ou un enregistrement DNS TXT. Si vous sautez cette étape, l'attaquant n'a qu'à se valider à nouveau.

Dans Indexation > Sitemaps, examinez les soumissions inconnues : des extensions légitimes ou d'autres gestionnaires du site autorisés ont pu les envoyer. Supprimez de Search Console les sitemaps soumis par l'attaquant, puis supprimez ou désactivez leur source sur le site. Ouvrez ensuite Sécurité et actions manuelles et lisez les deux rapports, Problèmes de sécurité et Actions manuelles. Les exemples d'URL qui y figurent indiquent quel spam Google a trouvé, ce qui fait une bonne liste de contrôle pour votre nettoyage.

Nettoyer le spam, puis fermer la porte d'entrée

Supprimer les liens visibles n'est que cosmétique. Si le point d'entrée reste ouvert, le spam revient généralement, souvent en quelques jours.

  1. Si ce n'est pas déjà fait, sauvegardez l'état infecté (fichiers et base) et conservez-le comme preuve.
  2. Supprimez de la base les articles, options, widgets et utilisateurs de spam.
  3. Remplacez les fichiers modifiés du cœur, des extensions et du thème par des copies neuves issues de sources sûres. Ne corrigez pas les fichiers infectés ligne par ligne.
  4. Trouvez le point d'entrée. Les plus courants : une extension vulnérable ou piratée (« nulled »), un mot de passe administrateur volé, ou des identifiants FTP ou d'hébergement divulgués.
  5. Corrigez-le, puis changez tous les mots de passe ainsi que les salts de wp-config.php.

Notre plan de nettoyage d'un malware WordPress détaille toute la procédure. Les extensions WordPress vulnérables traite de la voie d'entrée la plus fréquente.

La même faille a pu exposer des données clients, comme des saisies de formulaires ou des comptes utilisateurs. Les obligations du RGPD en cas de violation de données peuvent alors s'appliquer ; voir la notification de violation de données sous 72 heures.

Sortir le spam de Google : codes 410, suppressions et demande de réexamen

Une fois les pages de pur spam générées supprimées, leurs URL doivent renvoyer 404 (Not Found) ou 410 (Gone) ; l'un comme l'autre convient. Si des pages légitimes ont été modifiées, restaurez-les au lieu de supprimer leurs URL. Ne redirigez pas les URL de spam vers votre page d'accueil : Google peut y voir une soft 404 et continuer à les explorer.

Si les URL de spam suivent un motif qu'aucune de vos vraies pages n'utilise, vous pouvez répondre 410 au niveau du serveur :

RedirectMatch 410 "^/spam-pattern/"
location ~ ^/spam-pattern/ { return 410; }

Dans les cas urgents, par exemple du spam qui s'affiche sur le nom de votre marque, utilisez l'outil Suppressions de Search Console. Il ne masque les URL des résultats que temporairement et n'est pas une méthode de suppression définitive. Continuez à faire renvoyer 404/410 par les URL de pur spam et laissez Google explorer ces réponses ; ne les bloquez pas dans robots.txt, car Google doit voir leur statut de suppression. Voir les explications de Google sur l'outil Suppressions. Soumettez à nouveau votre vrai sitemap pour que Google réexplore les pages qui comptent.

La nécessité d'un réexamen dépend des rapports :

  • Si le rapport Problèmes de sécurité ou Actions manuelles signale un problème non résolu, utilisez son option de réexamen après avoir corrigé toutes les pages concernées. Rédigez une demande brève et factuelle : ce que vous avez trouvé, ce que vous avez supprimé, comment l'attaquant est entré et ce que vous avez changé pour fermer cette faille.
  • Si aucun des deux rapports ne signale de problème, il n'y a pas de réexamen à demander. Google doit simplement réexplorer le site nettoyé.

Gardez des attentes réalistes. Les réexamens prennent du temps, les URL de spam disparaissent progressivement, et le classement peut se rétablir lentement, voire incomplètement. Personne ne peut promettre de délai.

Détecter la prochaine injection à temps

Le spam SEO est conçu pour passer inaperçu ; il vous faut donc des contrôles qui ne reposent pas sur l'examen visuel de la page :

  • Conservez une référence d'intégrité des fichiers et examinez toute modification que vous n'avez pas faite.
  • Lancez une recherche site: sur votre domaine une fois par mois.
  • Activez les notifications par e-mail dans Search Console pour recevoir les problèmes de sécurité et les actions manuelles.
  • Analysez régulièrement la base à la recherche de motifs de liens comme ceux décrits plus haut.
  • Traitez chaque nouveau compte administrateur que vous n'avez pas créé comme un incident.

L'extension Security Audit & Compliance de secaudit.eu recherche le spam SEO caché et les liens parasites, le spam en base de données, les administrateurs cachés et d'autres indices de compromission. Elle compare aussi les fichiers à une référence. Elle détecte et signale. Elle ne nettoie pas votre site automatiquement, et le point d'entrée doit toujours être corrigé par une personne. → secaudit.eu

FAQ

Pourquoi ne vois-je pas le spam quand je visite mon propre site ?

Le code injecté décide qui voit quoi. Il exclut généralement les utilisateurs connectés et examine le user agent, l'adresse IP et le référent. Certaines attaques ciblent Googlebot ou les visiteurs venus d'un moteur de recherche ; d'autres montrent aussi le spam aux visiteurs ordinaires ou cachent des liens dans un balisage servi à tout le monde. Utilisez le test en direct de l'inspection d'URL comme un contrôle parmi d'autres, mais gardez à l'esprit que les attaquants peuvent servir à son robot d'inspection un contenu différent de celui du robot d'indexation.

Google va-t-il pénaliser mon site définitivement ?

Il n'y a aucune garantie, dans un sens comme dans l'autre. Nettoyez en profondeur, fermez le point d'entrée et retirez l'accès de l'attaquant dans Search Console. Demandez un réexamen si un rapport Problèmes de sécurité ou Actions manuelles l'exige. La suite dépend de la réexploration de votre site par Google, qui prend du temps.

Une extension de sécurité suffit-elle à supprimer le spam SEO ?

Une extension peut vous aider à trouver le spam et les fichiers modifiés. Supprimer proprement le spam et découvrir comment l'attaquant est entré demande un travail manuel ou l'aide d'un professionnel. Sinon, le spam a tendance à revenir.

Vérifiez votre propre site

Security Audit & Compliance est l’extension WordPress de secaudit.eu : elle recherche les logiciels malveillants, le spam caché, les fichiers du cœur modifiés et le code vulnérable, et rattache ses constats à l’article 32 du RGPD, à l’article 21 de NIS2 et à l’OWASP Top 10.

Voir ce que vérifie l’extension
Melike Görel

Melike Görel rédige les guides de secaudit.eu sur la sécurité WordPress et la conformité européenne pour AngelForce OÜ, l’éditeur de logiciels basé à Tallinn qui développe secaudit.eu.

Rédigé avec l’aide de l’IA et vérifié avant publication. Cet article est une information générale et non un conseil juridique.