Si de plus en plus de personnes s’intéressent au cloaking, c’est une technique SEO qui a longtemps été vue comme le mal absolu, comme quoi le black hat SEO est devenu à la mode. Dans cet article je vous propose de découvrir ce qu’est le cloaking, ses risques et sa mise en oeuvre.
Ici nous abordons la facette la plus populaire du cloaking, le cloaking contre Google, mais sachez que les possibilité offertes par cette technique de référencement black hat vont bien au delà de Google.
Qu’est ce que le cloaking ?
Le cloaking est une technique SEO black hat consistant à montrer un contenu différent selon des situations différentes. Le cas d’utilisation le plus classique est le SEO où la méthode consiste à montrer à l’utilisateur et à Googlebot (le spider de Google) deux contenus très différents. Le cloaking n’est pas autorisé par Google évidemment et est passible de pénalisation pour spam agressif.
Objectif du cloaking
Les objectifs marketing et les besoins SEO ne vont pas toujours de pair. Il est fréquent qu’une implémentation utile au référencement soit bloquée pour des raisons marketing. C’est d’ailleurs la raison pour laquelle on parle d’optimisation pour les moteurs de recherche. La présence du mot optimisation dans SEO en dit long. Ce qui est idéal pour le référencement, ne l’est pas forcément pour le marketing alors on cherche la solution “optimale”.
Le cloaking permet de passer de la solution optimale à la solution idéale, sans la moindre friction négative, ni avec les objectifs de conversions, ni avec les intérets marketing de l’entreprise.
Le cloaking est donc une solution pour qui ne souhaite pas faire de compromis. L’utilisateur arrive sur une page parfaitement optimisée pour la conversion, Googlebot arrive sur une page parfaitement adaptée au référencement.
Avantages et cas d’utilisation du cloaking
Disclaimer : Cet article n’a pour aucun cas l’objectif de vous inciter à certains cas d’utilisation notez que si le cloaking n’est pas interdit par la loi, le vol de contenus lui est séverement puni.
Dupplication temporaire
Un éditeur découvre sur le web une page tellement qualitative qu’elle attire des backlinks par centaines. En la duppliquant ce contenu sur son site il peut entamer immédiatement une campagne de prospection pour attirer des liens. Le cloaking permet ici d’éviter que Google détecte le duplicate content.
Après quelques temps, la version duppliquée peut etre supprimée et remplacée par la version unique vue par Googlebot.
L’échange de liens, one way link
L’échange de liens est une méthode utile pour gagner en popularité sans dépenser d’argent. Les échanges bilatéraux ont leur limites. Si vous faites trop d’échanges, votre profil de liens devient moins naturel. C’est la raison pour laquelle on préfère les one way links, obtenir un lien sans rien donner en retour.
Ici le cloaking consiste à créer deux versions de votre page, une version avec le lien retour vers votre partenaire d’échange et une version sans lien retour pour Googlebot. C’est très efficace mais c’est mal, et cela pourrait se retourner contre vous, Karma is a bitch.
Autres applications et méthodes de cloaking
Le cloaking ne s’arrete pas à la détection de Googlebot, ou des spiders des outils SEO. Vous pouvez cloaker en fonction de la provenance de l’utilisateur, on parle de cloaking sur referer.
Les cas d’utilisation sont très nombreux. Un classique, passer la modération sur les forums où n’importe quel site où l’on peut placer un lien. J’ai déjà montré un exemple concret avec le recruteur en série lors des Netlinking Dirty Secrets.
Pour plus d’information et de culture je vous renvoie à Janvier 2009 et à l’article de Mathieu sur les applications du cloaking. Ces techniques n’ont pas pris une ride.
Les risques du cloaking
Inutile de tourner autour du pot, les conséquences peuvent être lourdes. Peu importe par quel biais, mais si Google s’en rend compte vous sortez purement et simplement de l’index après une belle pénalité pour spam agressif.
Le niveau de risque dépend aussi de ce que vous faites précisement en cloaking, si c’est tape à l’oeil ou non. Le cloaking est à proscrire sur un site vital.
Spam report
Le plus gros risque reste le spam report. Il est effectivement plus probable que ce soit un concurrent à découvrir le pot aux roses et à signaler votre site que Google lui même. Autant dire que votre cloaking doit donc être le plus sécurisé possible, tout en sachant qu’une sécurisation à 100% à mon avis ça n’existe pas. Au minimum il faut s’assurer que n’importe quel pèlerin ne puisse pas découvrir votre cloaking en 2 minutes et pour ça il y a des précautions à prendre et des erreurs à éviter.
Cloaker dans les règles de l’art… ou enfin du mieux possible
Cloaking Google sur User Agent
Notre script de cloaking doit vérifier que l’utilisateur est Googlebot. On a différents moyens de le faire, controler le user agent est rapide mais ce n’est pas fiable. Par exemple Googlebot utilise toujours un User Agent qui l’identifie. Voici un exemple de UA utilisé par le crawler de Google : Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)
On pourrait très bien cloaker en vérifiant uniquement le UA, le souci est que n’importe qui peut visiter votre site avec ce user agent et se faire ainsi passer par Googlebot. Vous connaissez la suite de l’histoire. Y a des cas bidons ou vous pouvez vous permettre une simple dérif de l’UA, mais voilà c’est encore plus dangereux car vous ne savez pas formellement si Googlebot est vraiment Googlebot.
Cloaking Google sur IP
On peut aussi cloaker sur les IP Googlebot, mais on a au moins deux problèmes :
- Il faut connaître tous les range, il faut être au courant si Google ajoute de nouvelles IPs
- Il existe d’autres services de Google qui utilisent parfois les mêmes IPs que Googlebot, dans certains cas le même User Agent.
Identifier Googlebot de manière plus fiable
Une fois n’est pas coutume, pourquoi ne pas faire confiance aux conseils de Google ? Lui même nous explique comment faire, n’est-ce pas la source la plus fiable ? https://support.google.com/webmasters/answer/80553?hl=en
Si cela vous semble complexe ne vous inquiettez pas, ce qui suit est très simple à comprendre en réalité. Google nous propose en première étape de faire un rDNS (reverse DNS). Cela consiste après avoir récupéré l’IP de l’utilisateur, à demander quel est le serveur de noms associé à cette IP.
En php, on récupère l’IP de l’utilisateur ainsi :
$ip = $_SERVER['REMOTE_ADDR'];
Ensuite nous avons une fonction toute faite pour récupérer le DNS auquel est associée à l’IP que l’on vient de récupérer : Ce reverse DNS est effectué avec la fonction gethostbyaddr()
$dns = gethostbyaddr($ip);
Une fois que l’on a récupéré le DNS on vérifie avec une expression régulière qu’il correspond bien à ceux de Googlebot. Les DNS de Googlebot ressemblent à ça : crawl-66-249-66-1.googlebot.com
Sauf erreur il n’y a que l’IP qui change et ils se terminent tous de la même manière.
Mais est ce qu’on doit s’arrêter là ? Non. Je n’ai aucune idée de comment ça marche mais certains arrivent à faker les DNS (DNS Spoofing). Aurélien Lavorel (agence LavoWeb, un spécialiste Magento) a essayé de m’expliquer le principe, j’ai fait semblant d’avoir capté, mais en réalité j’ai rien capté à comment fonctionne le spoofing de DNS. Aucune importance cela dit, voilà juste ce qu’il faut retenir.
Une IP est associée à un DNS et un DNS à une IP, du moins c’est le cas pour Googlebot. Nous avons déjà récupéré le DNS à partir de l’IP, mais on va devoir maintenant faire l’inverse, récupérer une IP à partir du DNS (forward DNS) avec la fonction gethostbyname(); Si tout est normal, l’IP que nous allons récupérer doit être exactement la même que celle que nous avions déjà récupéré au début. Si jamais l’IP est différente, c’est qu’il y a une merguez dans l’histoire.
Je récapitule les quelques lignes de code :
$ip = $_SERVER['REMOTE_ADDR']; $dns = gethostbyaddr($ip); $forward_ip = gethostbyname($dns);
Rappelez-vous qu’après ces trois lignes vous devez vérifier que les valeurs de $ip et $forward_ip sont les mêmes, si elles sont différentes, y a une couille.
if($ip == $forward_ip){ //tout va bien } else { //Merguez party }
Dans le script de coaking que je balance ici il y a des petites choses en plus. La vérification de Googlebot prend quand même du temps, pour éviter à l’utilisateur humain de se manger le script à chaque fois on peut par exemple vérifier en premier le User Agent. La très grande majorité des visiteurs normaux n’utilise pas l’UA de Googlebot ça sert à rien d’aller plus loin dans la vérification si dès le controle de l’UA on voit que c’est pas Googlebot. Attention ce ne veut pas dire qu’on cloake sur l’UA, c’est juste une vérif préalable pour gagner du temps.
Il y a aussi une verif de Googlebot mobile, c’est utile à savoir pour certaines problématiques.
Note importante : Je ne prétends pas que mon script est plus secure qu’un autre, je le balance comme ça mais je ne garantis rien. Mais c’est gratuit n’hésitez pas à vous faire plaisir.
<?php $ua = $_SERVER['HTTP_USER_AGENT']; $ip = $_SERVER['REMOTE_ADDR']; if(preg_match('#googlebot#i',$ua)){ $dns = gethostbyaddr($ip); if (preg_match('#\.googlebot\.com$#i',$dns)) { $host = gethostbyname($dns); if ($host == $ip){ // Ce qui suit permet de cibler googlebot version mobile si besoin if(preg_match('#AppleWebKit#i',$ua)) { include ('googlemobilebot.php'); exit; } else { include ('googlebot.php'); return $user; } } else { // Quelqun essaye de vous mettre une merguez include ('fakegooglebot.php'); exit; } } else { // Quelqun essaye de vous mettre une saucisse include ('fakegooglebot.php'); exit; } } else { // Utilisateur autre que Googlebot include ('unknownuser.php'); exit; } ?>
Il y a d’autres choses à savoir sur le cloaking et si l’initiation concrète au cloaking de Kevin (512) va fêter son huitième anniversaire il y a des dangers dont il parle et que je n’ai pas abordé ici, je pense notamment à la version en cache… mais pas que.
Euh, ce serait pas plutôt “Le cloaking est une technique SEO black hat”
Ça me parait pas trop white hat toutes ces conneries xD
oui complètement black hat cette technique
Faux, ce n’est pas la technique qui est black hat, mais l’utilisation qu’on en fait.
Si par exemple vous cloakez des liens, et que vous laissez le contenu en place (mais que vous transformez un lien pour les utilisateurs en du simple contenu pour Google), cela reste white hat puisque conforme aux guidelines de Google : le contenu reste le même.