Si vous avez été récemment piraté, vous avez remarqué de nombreuse urls en trop dans google pour spammer en masse l’index du moteur de recherche.
Préalable : Nettoyer son wordpress
Ce n’est clairement pas l’objet de ce post mais il est important de commencer par nettoyer le FTP ainsi que la base de données.
Dans l’idéal repartez d’une base fichier et données saine datant d’avant le piratage (d’où l’importance de faire des backups) et assurez vous de bien patcher la faille qui avait permis au pirate de rentrer. Profitez au passage pour changer les mots de passe, (back office utilisateurs + mysql à minima).
L’idée ici est d’éviter que l’incident ne puisse se reproduire quelques jours plus tard.
Identifier le format du « pattern » des urls piratées
Le point commun de nombreux systèmes de spam auto est de générer des urls qui se ressemblent toutes plus ou moins. Il faut comprendre par là que le contenu du slug répond à une règle que l’on peut reproduire avec une expression régulière, je vois ceux du fond qui commencent à avoir des sueurs : et oui on va faire des regex, mais on va rester simple.
Pour trouver ce pattern, commençons par faire un site: dans google. pour rappel, la commande site:nom-de-domaine donne toutes les urls du site qui sont indexées. exemple : site:swan.tools

Sur l’exemple de ce site, on trouve par exemple ces urls :
- https://nom-de-domaine.fr/conmrixzp741732
- https://nom-de-domaine.fr/ctuuc961439
- http://nom-de-domaine.fr/haxfwcowv6881
- http://nom-de-domaine.fr/chlwfzkle658271
- http://nom-de-domaine.fr/fjsxt794539
- http://nom-de-domaine.fr/ngogtvudqw9573192
La liste n’est bien sûr pas exhaustive et j’ai volontairement changé quelques lettres pour que vous n’identifiez pas trop facilement le malheureux propriétaire qui a bien voulu me prêter son cas pour ce tutoriel.
On remarque ici que l’url (slug) de chaque page piraté commence par une suite de lettre puis une suite de chiffre. Voilà c’est ça un pattern (tout simplement)
À partir de là on va essayer d’identifier les variations en trouvant une règle qui ne couvrira pas les URL légitimes de notre site Internet, mais ici il ne devrait pas y avoir de problème.
Dans notre cas on identifie que l’url commence par de 5 à 10 lettres puis par une suite de 4 à 7 chiffres selon les urls.
Notre expression regulière sera donc celle-ci :
^[a-z]{5,10}\d{4,7}$
À noter que vous pouvez élargir les plages de quantités de caractères tant que ça ne risque pas de matcher une url légitime de votre site.
Préparer la règle de redirection pour apache
Nous allons ici préparer une règle qui aura deux effets :
- Indiquer à google que la page à disparue
- Demander à google de ne pas conserver cette page dans son index
RewriteRule ^[a-z]{5,8}\d{5,8}$ - [E=NOINDEXNOFOLLOW,G]
Header always set X-Robots-Tag "noindex, nofollow" env=noindexnofollow
Si ces lignes ne marchent pas (comme par exemple sur un cpanel d’un hébergeur français bien connu) c’est qu’il faut rajouter la définition du document en 410 en début de fichier, ce qui donnera ceci :
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
ErrorDocument 410 default
RewriteRule ^[a-z]{4,10}\d{4,10}$ – [E=NOINDEXNOFOLLOW,G,END]
Header always set X-Robots-Tag "noindex, nofollow" env=noindexnofollow
</IfModule>
Dans la première ligne nous retrouvons notre regex pour identifier les URLs concernées, puis vous le voyez nous n’indiquons pas d’url de redirection mais un simple « -« , celui ci couplé à la lettre G dans la partie flag à droite permet de dire que l’url est Gone. C’est le fameux code 410 pour dire que l’url ne reviendra jamais et n’est pas redirigée. le flag E= sert ici à définir une variable d’environnement que l’on appele (le label est arbitraire ici) NOINDEXNOFOLLOW, on aurait pu l’appeler toto, ça marcherait aussi bien.
Dans la seconde ligne on indique que l’on envoie quand même une en-tête http X-robots-tag « noindex, nofollow » qui va agir comme une meta robots dans le header du html. Sauf qu’ici nous n’avons pas besoin de faire modifier le code source du site.
Vous devrez donc placer dans l’idéal ces 2 lignes au début de votre fichier htaccess juste après la ligne RewriteEngine On
Si vous souhaitez aller plus loin par exemple en accélérant la prise en charge, vous pouvez créer un sitemap complet de ces urls ou un plan de site HTML en suivant par exemple ce tutoriel sur l’accélération de prise en charge d’un plan de redirection.
Patrick Valibus est le fondateur de l'agence E-commerce 410 Gone. Il est également président de la FePSeM (ex SEO CAMP) depuis 2021. Il a créé Swan tools pour sécuriser les migrations SEO dans le monde entier.