Il y a 1 mois jour pour jour, je me faisais hacker l’un de mes sites perso.

1 mois après, je vous propose un retour d’expérience complet sur ce qu’il s’est passé, ce que j’ai mis en place et les résultats obtenus.

Cyberattaque et SEO

Contexte

Cette histoire concerne donc un side project, un site que je travaille avec ma petite sœur depuis 2019.
Je ne communiquerai pas sur l’identité réelle de ce site web, même si certains le connaissent déjà !

Voici toutefois quelques infos pour comprendre le contexte de ce site web :

  • Lancé tout doucement en 2019
  • Grosse accélération pendant le 1er confinement
  • Thématique Voyage
  • Un site sous WordPress
  • Un hébergement mutualisé sur OVH (qui héberge 2 sites dont celui-ci)
  • Environ 1 100 pages à ce jour
  • Environ 250 domaines référents
  • 1 000 000 sessions en 2021
  • 170 000 sessions en octobre 2022
  • 90% de trafic SEO Google (le reste est réparti entre Accès direct (5%) et les autres moteurs (Bing, Ecosia, Qwant, Yahoo, DuckduckGo…)
  • Moyenne de 3k€ de revenus par mois

Le déroulé des évènements

Voici les différentes étapes que ce site a vécu dernièrement :

L’intrusion du hacker

Le 5 novembre dernier en fin de journée, ce site s’est donc fait hacker.
L’intrusion s’est vraisemblablement faite par l’intermédiaire de l’autre site hébergé sur ce même hébergement.

Le hacker est donc entré…a infesté le FTP en y ajoutant tout plein de fichiers PHP aux noms exotiques (exemple dans le screenshot ci-dessous).
Des injections ont également été faites dans la base de données SQL.

Voici en tout cas le premier enseignement que j’ai retenu de cette histoire.
Il est vital de bien tout avoir à jour (version WP, thème, extension)…et de bien cloisonner les différents sites d’un serveur.

fichiers PHP exotiques

Création et indexation de millions de pages

Au delà de l’infection des fichiers, c’est surtout la création de milliers… ou plutôt de millions de pages !
Voici l’exemple d’une page gentiment créée à cette occasion !

Screen page hackée

 

Muni de Google Translate, je cherche à identifier les thématiques des pages créées…Je découvre un florilège de joyeusetés :

  • Contrefaçons
  • Porn
  • Rencontre
  • Viagra/Cialis
  • Gambling…

Le dimanche 6 novembre, le site effectue un pic incroyable d’impressions au Japon !
Habitué à faire environ 120 000 impressions par jour, le site réalise 727 000 impressions ce jour là !

pic d'impression

On peut donc déjà s’étonner de voir que ces pages à la qualité médiocre (on parle de pages en japonais sur des sujets qui n’ont rien à voir avec la thématique d’origine du site) s’indexent et rankent en quelques heures seulement (rankent suffisamment pour générer 700 000 impressions et 600 clics sur 1 journée !). Quelques jours après le déploiement d’une nouvelle Spam Update et quelques semaines après la Helpful Content Update…ca fait un peu tâche !

Base de données qui lâche

Le lundi 7 novembre, le site tombe en raison d’une surcharge de la base de données.
Il est intéressant de savoir que lorsqu’une base de données arrive à saturation, OVH bloque littéralement l’accès, et passe la BDD en lecture seule.
Seule une intervention du support technique peut aider au déblocage !

Je n’ai pu joindre le support technique qu’en fin de journée qui m’a aussitôt débloqué l’accès.

Le nettoyage de printemps

Le soir même, toujours ce lundi 7 novembre, je passe ma soirée à regarder l’Amour est dans le pré…non, j’aurais limite préféré ! 😉
Je passe donc ma soirée à TOUT nettoyer. J’ai cleané intégralement tout ce dont j’étais en capacité de faire (je rappelle que je ne suis pas développeur).
Voici donc le programme réjouissant de ma soirée :

  • Nettoyer le WordPress (ouf, la restauration du plus vieux back-up était clean)
  • Nettoyer la base de données (ouf, la restauration du plus vieux back-up était clean)
  • Mettre à jour les extensions
  • Mettre à jour les thèmes
  • Changer tous les mots de passe FTP/BDD/OVH
  • Délocaliser l’URL de login
  • Mettre une double authentification en place
  • Mise en place de code 410 sur toutes les pages hackées (à ce moment là, une commande « site: » dans Google remonte 2 990 000 résultats…)

Indexation

 

J’en profite également pour relancer mon abonnement SEOlyzer que j’avais mis en stand by.
Le 7 novembre…je suis donc à 614 000 hits…et seulement 0,1% sur des pages en code 200 ! Le lendemain ne sera pas beaucoup mieux…380 000 hits avec seulement 0,5% de hits 200 (et donc 99% de hits en 4xx !! + 0,5% de hits en 3xx). Pour comparaison, mon site faisait environ 1 700 hits par jour (et 94,1% de hits 200 pour seulement 0,02% de hits 4xx).

Voici 2 screenshots qui montrent l’état des logs en octobre (où tout était bien vert) et en novembre (où est passé le vert… ??) !! La différence d’échelle est intéressante à observer…

Logs avant

Logs Novembre

La sanction « finale »

Une fois le site cleané, je me dis que le pire est derrière moi.
Les jours qui suivent sont un peu moins bons au niveau visibilité et trafic. J’ai perdu un peu, mais rien de catastrophique.
Mes pages « business » restent encore très bien positionnées et continuent de rapporter (nous sommes dans la pleine saison !).

Il y a ensuite le 11 novembre, où j’effectue une bonne journée (5 400 sessions sur la journée).

Sauf que voila…la sanction « finale » tombe le 12 novembre à 1h du matin ! Google applique un filtre algorithmique à mon site !
Je perds (presque) toute visibilité !

Chute Sistrix

Exemple avec un des mots-clés phares de ce site

filtre Google qui fait mal

 

Je perds donc (presque) toute visibilité. J’insiste sur le « presque » car certains irréductibles mots-clés continuent d’apparaitre en 1ère page (alors même qu’ils étaient indéboulonnables en 1ère position avant le hack). Le trafic chute alors à 1 800 sessions sur la journée du samedi 12 novembre. Les jours qui suivront ne seront pas mieux. Je tombe même à 469 sessions le 24 novembre…Ce jour là, Bing est sur les talons de Google !

Sessions du 24 novembre

Il est intéressant de noter que je n’ai strictement AUCUNE information (pas d’email, pas d’alerte dans la Search Console, pas de désindexation de pages, pas de données anormales dans les logs) pour m’informer de ce filtre algorithmique.

La seule façon de le visualiser…c’est d’essayer de copier/coller un paragraphe d’une page dans Google.
Plus rien ne ressort !

Google continue donc d’indexer et crawler les pages…mais il n’accorde plus aucune valeur au contenu textuel, à l’exception de la balise title et meta description (qui servent pour le snippet). C’est donc « rigolo » de voir que certaines pages ont continué à ranker en 1ère page…sans prise en compte du contenu. Bon, OK…la concurrence n’était pas folle sur ces mots-clés !

Les actions réalisées depuis

Une fois le site cleané, voici les quelques actions que j’ai mises en place pour essayer de revenir au plus vite !

On continue de publier !

La première chose que j’ai dis à ma petite sœur…c’est :

« On ne change rien sur les publications ! On continue d’alimenter régulièrement le site avec des nouveaux contenus ».

Le site a subi un hack…mais nous n’avons rien à nous reprocher ! Google finira par comprendre que nous ne méritons pas ce sort !

On continue de linker !

Même chose pour l’acquisition de backlinks. Nous continuons sur le même rythme (un rythme tout doux avec quelques nouveaux liens chaque mois).
La période du Black Friday se prête même à tester de nouvelles plateformes (Linkuma par exemple).

On adapte le statut des pages hackées

Le gros changement va donc concerner le statut qu’on accorde aux pages hackées.
Ma volonté est simple : CLEANER AU PLUS VITE L’INDEX DE GOOGLE

Au 7 novembre, nous sommes à 2 990 000 pages indexées (via commande site:), je veux revenir au plus vite à un volume « normal » (1 200 résultats environ).

Pour cleaner l’index, il faut que Google vienne crawler le plus possible les pages merdiques !
Alors, 410, 404, 301 ? Quelle est la meilleure solution. En discutant avec de nombreux confrères (merci à vous), j’ai entendu plusieurs façons de faire !
Le statut 410 me semblait naturellement le plus « convenable », j’ai donc commencé par celui là.

Quand j’ai vu que les robots de Google commençaient à se désintéresser progressivement des pages « merdiques » (chute de crawl), j’ai switché pour essayer l’erreur 404.
Ca a provoqué un gros coup de boost sur le crawl de Google. On le voit d’ailleurs dans le screen plus haut. Dès que je passe de 410 (en bleu) à 404 (en rouge), le volume de hits remonte direct !

Pour autant, je n’ai laissé la 404 que quelques jours. Malgré des hits plus nombreux, je me suis rendu compte que la désindexation était beaucoup plus lente. Je suis donc repassé sur la 410.

J’ai également testé de mettre en place le 25 novembre, une redirection 301 vers une page de délestage (une page « désolé, nous nous sommes fait hackés » avec quelques liens internes vers mes pages les plus stratégiques). Encore une fois, ce changement de statut a provoqué un boost des hits (moins puissant que la fois d’avant). Et comme pour la 404, j’ai senti un coup de moins bien dans la désindexation des pages.. Cela m’a convaincu de repasser à nouveau sur la 410.

A partir de là, j’ai enregistré une accélération de la désindexation (hasard ou coïncidence, je ne sais pas) ! De 85 000 pages indexées lors du passage 301/410, je suis revenu à seulement 3 100 URL indexées depuis (les 4 jours qui ont suivi)

Et finalement…la lumière est revenue le 1 décembre autour de 16h avec une sortie de filtre bien méritée je pense !

A ce jour (5 décembre), la visibilité SEO n’est pas revenue à son sommet (seulement 5 200 sessions hier), mais on est quand même bien sur la bonne voie !
J’ai retrouvé plus de 90% des positionnements que j’avais. Les « 10% manquants » concernent surtout les mots-clés les plus concurrentiels (mais pas nécessairement les plus stratégiques)

Les apprentissages de cette histoire

Voici maintenant quelques apprentissages que j’ai pu faire grâce à cette histoire de Hack

La patience

Dans les histoires de hack…c’est souvent plus rapide à tomber qu’à revenir !
Il faut donc savoir être patient. Dans mon histoire, l’issue est revenue assez rapidement puisque le filtre a été levé 21 jours après son activation…je m’estime très chanceux !

Des pages « merdiques » peuvent déclencher du Discover

Je ne l’ai pas précisé précédemment…mais les pages pourries de ce hacker ont déclenché du Google Discover au Japon (environ 250 visites sur la journée du dimanche 6 novembre en provenance de plusieurs pages différentes).

Google Discover avec pages hackées

Comment suivre l’indexation avec précision ?

Comment suivre avec précision l’évolution de son indexation ?
Est-ce que la commande site: est-t-elle plus fiable que le rapport « Pages » de la Search Console ?

Dans mon cas, la commande « site: » a remonté quasiment 3 millions de pages indexées, alors que le rapport « Pages » s’est arrêté à seulement 500 000…
Et dans le même temps, le rapport de « suivi des microdonnées Fil d’ariane » dans la Search Console m’a comptabilisé jusqu’à 1 000 000 de pages.

Ce rapport « Fil d’ariane » dont le screenshot est juste au dessous, est revenu « à la normale », le jour même où le filtre a été levé (le 1er décembre) !

suivi indexation fil d'ariane

Le rapport « Pages » me semble vraiment le moins fiable de tous, car à ce jour, il me remonte encore 120 000 pages indexées (contre 3 000 pour un « site: » et 1 380 pour le rapport « fil d’ariane ».

rapport Pages

Finalement, je ne sais toujours pas quelle source est réellement la plus fiable.

Le comportement de Google avec un cas de duplicate

Au passage, je me suis rendu compte que le contenu d’une de mes pages « business » avait été presque intégralement dupliqué.
L’indexation de cette page dupliquée est bien antérieure à cette histoire de hack. Pour autant, c’est assez « rigolo » de voir le comportement de ranking de ces 2 pages (la mienne + celle dupliquée)

Dès que mon site a été filtré, Google a valorisé la page dupliquée en la positionnant en 2ème page. Les quelques fois où ma page très autoritaire refaisait surface, c’est la page dupliquée qui sautait.

Duplicate

Depuis la sortie de filtre, ma page est repassée 2ème, pendant que la page « dupliquée » est elle complètement sortie du top 100 !

Conclusion

Je n’avais jamais été aussi exposé à un hack et une problématique de filtres SEO de ce type… J’ai donc énormément appris durant cette période qui heureusement pour nous, était finalement très courte ! La conclusion à retenir est donc : SECURISEZ VOS SITES POUR EVITER D’AVOIR A SUBIR CES HACKS !

L’infection a beau être corrigée en quelques heures seulement, le retour à la normale de la visibilité SEO prendra bien plus de temps ! Dans mon cas, moins de 48h pour cleaner, 21 jours pour revenir.

Depuis quelques mois, on assiste à une grosse augmentation des cyberattaques. Les e-commerçants de la métropole lilloise ne diront pas le contraire !
Jules, Pimkie, Rouge-Gorge, Bizzbee, Conforama pour les plus récents, mais aussi Camaïeu l’année dernière avant sa liquidation judiciaire.

Lorem ipsum dolor

Sea summo mazim ex, ea errem eleifend definitionem vim. Ut nec hinc dolor possim mei ludus efficiendi ei sea summo mazim ex.

img

Sed ut Perspiciatis Unde Omnis Iste Sed ut perspiciatis unde omnis iste natu error sit voluptatem accu tium neque fermentum veposu miten a tempor nise. Duis autem vel eum iriure dolor in hendrerit in vulputate velit consequat reprehender in voluptate velit esse cillum duis dolor fugiat nulla pariatur.

Ipsum dolor - Ligula Eget