Cloaking Google pour améliorer le SEO
On abandonne un instant l’ex slogan de Google “don’t be evil” et on plonge dans la technique du cloaking avec ce billet qui sera très simple. Évidemment je ne vous incite pas à faire ou à ne pas faire du cloaking, c’est juste un peu de culture qui pourrait servir.
Sachez aussi que ce post est vraiment réducteur parce que j’aborde une application très classique du cloaking où l’on montre un contenu à Googlebot et quelque chose d’autre à l’utilisateur humain, mais en réalité les possibilité offertes par cette technique white hat sont beaucoup plus larges.
Qu’est ce que le cloaking?
Le cloaking est une technique SEO white hat consistant à montrer un contenu différent selon des situations différentes. En SEO par exemple on peut vouloir montrer un contenu à l’utilisateur humain un autre chose à Googlebot le spider de Google.
Quelques avantages
L’avantage principal du cloaking est qu’il va détruire le mur qui peut exister entre le marketing et le SEO. En temps normal chacun doit faire des concessions pour léser au minimum les objectifs de l’autre, mais avec le cloaking plus besoin de faire de compromis, marketing is happy, SEO is happy. L’utilisateur reçoit une page parfaitement optimisée pour la conversion, Googlebot reçoit une page parfaitement optimisée pour le référencement.
Montrer un contenu différent à Google a beaucoup d’autres avantages encore. Imaginons que vous ayez détecté sur un site tiers une page tellement qualitative qu’elle attire les backlinks comme un aimant. On peut la dupliquer et entamer immédiatement une campagne de prospection pendant une semaine pour récupérer des liens. En toute logique Google ne doit pas savoir que l’on a copié comme des porcs et donc on lui montre autre chose. Là c’est très très borderline, c’est donc clairement pas à faire sur un site principal, mais sur des sites servant de réservoir à Pagerank ça peut être très sympa.
Pour éviter au maximum les emmerdes ont peut aussi décider de retirer le contenu dupliqué dans la semaine ou les dix jours suivants la campagne de prospection.
Encore un autre avantage, vous avez déjà entendu parler de “l’échange de lien one way” c’est un échange de lien où seul votre site profite de l’échange. L’inconvénient c’est que vous mettez une carotte à quelqu’un, or tout se paye un jour ou l’autre, mais pour la forme et la culture, je vous renvoie à Janvier 2009 et l’article de Mathieu sur les applications du cloaking.
Il y a encore d’autres formes de cloaking, j’ai un faible pour le cloaking sur referer parce que c’est énorme pour passer la modération sur les forums où n’importe quel site où l’on peut placer des liens. On pourra revenir là dessus, mais j’ai déjà donné un exemple avec le serial recruteur dans la série Netlinking Dirty Secrets.
Les risques du cloaking
Je ne vais pas 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. Dommage, mais il faut savoir qu’on pourrait parfaitement réserver cette technique pour les sites secondaires, et c’est aussi bien de rappeler qu’une pénalité manuelle est plus facile à gérer qu’une pénalité algorithmique. Bref c’est à vous de voir si vous voulez tenter le grand saut ou pas.
Le spam report votre principal ennemi
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 à vous balancer 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 :
[pastacode lang=”php” manual=”%24ip%20%3D%20%24_SERVER%5B’REMOTE_ADDR’%5D%3B” message=”ip” highlight=”ip” provider=”manual”/]
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()
[pastacode lang=”php” manual=”%24dns%20%3D%20gethostbyaddr(%24ip)%3B” message=”dns” highlight=”dns” provider=”manual”/]
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 :
[pastacode lang=”php” manual=”%24ip%20%3D%20%24_SERVER%5B’REMOTE_ADDR’%5D%3B%0A%24dns%20%3D%20gethostbyaddr(%24ip)%3B%0A%24forward_ip%20%3D%20gethostbyname(%24dns)%3B” message=”début cloaking” highlight=”début cloaking” provider=”manual”/]
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.
[pastacode lang=”php” manual=”if(%24ip%20%3D%3D%20%24forward_ip)%7B%0A%0A%2F%2Ftout%20va%20bien%0A%7D%0Aelse%20%7B%0A%0A%2F%2FMerguez%20party%0A%7D” message=”vérifier ip” highlight=”vérifier ip” provider=”manual”/]
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.
[pastacode lang=”php” manual=”%3C%3Fphp%0A%24ua%20%3D%20%24_SERVER%5B’HTTP_USER_AGENT’%5D%3B%0A%24ip%20%3D%20%24_SERVER%5B’REMOTE_ADDR’%5D%3B%0Aif(preg_match(‘%23googlebot%23i’%2C%24ua))%7B%0A%0A%24dns%20%3D%20gethostbyaddr(%24ip)%3B%0Aif%20(preg_match(‘%23%5C.googlebot%5C.com%24%23i’%2C%24dns))%20%7B%0A%0A%24host%20%3D%20gethostbyname(%24dns)%3B%0Aif%20(%24host%20%3D%3D%20%24ip)%7B%0A%0A%2F%2F%20Ce%20qui%20suit%20permet%20de%20cibler%20googlebot%20version%20mobile%20si%20besoin%0Aif(preg_match(‘%23AppleWebKit%23i’%2C%24ua))%20%7B%0A%0Ainclude%20(‘googlemobilebot.php’)%3B%0Aexit%3B%0A%7D%0Aelse%20%7B%0A%0Ainclude%20(‘googlebot.php’)%3B%0Areturn%20%24user%3B%0A%7D%0A%7D%0Aelse%20%7B%0A%0A%2F%2F%20Quelqun%20essaye%20de%20vous%20mettre%20une%20merguez%0Ainclude%20(‘fakegooglebot.php’)%3B%0Aexit%3B%0A%7D%0A%7D%0Aelse%20%7B%0A%0A%2F%2F%20Quelqun%20essaye%20de%20vous%20mettre%20une%20saucisse%0Ainclude%20(‘fakegooglebot.php’)%3B%0Aexit%3B%0A%7D%0A%7D%0Aelse%20%7B%0A%2F%2F%20Utilisateur%20autre%20que%20Googlebot%0Ainclude%20(‘unknownuser.php’)%3B%0Aexit%3B%0A%7D%0A%3F%3E” message=”Cloaking” highlight=”c” provider=”manual”/]
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.
Article invité
Je ne comprends pas le passage “Le cloaking est une technique SEO white hat” alors que c’est une technique clairement risquée et condamnée par Google comme vous le dites plus bas.
Jean-Baptiste, l’utilisation du cloacking est 100% white hat… Après c’est comment tu va l’utiliser qui fera que c’est black ou white 😉
Tu peux très bien dire :
” Ok sur mon site, je vais donner la possibilité aux visiteurs de choisir la couleur du design ! ” -> ça existe souvent sur les forums par exemple.
C’est déjà du cloacking ça, tu va afficher des choses différentes à tes visiteurs.
Après, c’est comme avoir un couteau sur soi 😉 Tu peux décider de manger avec ou de tuer quelqu’un mais un couteau n’est pas interdit par la loi. Pour les règles de Google c’est pareil, tout dépend comment tu utilises la chose.
Oui JB je me suis aussi posé la question, enfin probablement une erreur de frappe. Ce qui est certain il faut être assez prudent et bien maîtrisé l’art et les savoir bien lire les logs et ne pas en abusé.
C’est bien la première fois que je lis que le cloacking est white..