Courant 2009, on pouvait lire sur plusieurs sites d’actualité SEO que les robots de Google étaient sur le point d’arriver à lire , crawler, et indexer certains liens javascript (source Abondance).
Pour me faire ma propre opinion, j’avais mis en place un test Mars 2011 sur un sous-domaine avec une page index.html et plusieurs déclinaisons possibles de liens Javascript vers d’autres pages qui ne contiennent que leur anchor text. Le lien vers ce sous-domaine a été fait d’une page avec un PR 5 pour qu’il soit plus rapidement visité par GoogleBot et ses copains (j’ai utilisé des mots inexistants que j’ai remplacé ci dessous pour une meilleure lisibilité).
Il y a deux semaines, en lisant cet article de @jambonbuzz Googlebot change de méthode, je me suis dit: « tiens, mon test de liens Javascript au fait, ça donne quoi depuis le temps? » 🙂
Bots et liens javascript (ou non)
Alors j’ai ressorti tous mes logs archivés, et je suis allé regarder de plus près si mes pages avaient été visitées et étaient indexées. On va voir que l’un ne va pas toujours avec l’autre forcément d’ailleurs. Etant donné que les mots utilisés n’existaient pas, ça a peut-être influencé certains crawlers pour ne pas visiter des pages donc ces informations sont à prendre avec du recul.
[table id =2 /]
Légende: V = visitée, I = indexée, – = rien, ? = rien, mais c’est étrange…
Googlebot/2.1
Il a indexé toutes les pages qu’il a visitées et n’a pas visité deux pages:
[sourcecode language= »html »]
<a href="#" onclick="window.open=’page8.html’;">page8</a>
<a href="javascript:void(0)" onclick="window.open(‘page10.html’)">page10</a>
[/sourcecode]
Les deux pages non crawlés étaient linkées avec des liens relatifs dans des popup.
Exabot/3.0
Il a indexé toutes les pages qu’il a visitées et n’a pas visité deux pages:
[sourcecode language= »html »]
<script type="text/javascript">document.write(‘<a href="http://test.js.com/page11.html">page11</a>’);</script>
<script type="text/javascript">document.write(‘<a href="page12.html">page12</a>’);</script>
[/sourcecode]
Les deux pages non visitées avaient des liens <a href> standards dans un document.write
Bingbot
Il est bizarre bingbot, il a d’abord indexé ma page index.html uniquement, ensuite il est allé visiter cette page :
[sourcecode language= »html »]
<a href="http://test.js.com/page3.html" onclick="window.open(this.href)">page3</a>
[/sourcecode]
Après, il s’est tapé le nez à plusieurs reprises en cherchant absolument un robots.txt. J’en ai créé un avec la directive
User-agent: *
Disallow: /p/
(à savoir un répertoire qui n’existe pas). Et il a désindexé mon index.html. Il a dû trouver mes liens étrange avec juste une page contenant un mot, ça ne l’a pas branché. Il a senti le traquenard…
Yahoo! Slurp
Il n’a su visiter que les liens standard dont le href était correctement renseigné ainsi que ce lien un peu exotique (document.location.href dans un onclick):
[sourcecode language= »html »]
<a href="#" onclick="document.location.href=
‘http://test.js.com/page4.html’;">page4</a>
[/sourcecode]
Il est timide Yahoo’s Slurp.
Baiduspider+
Il n’a visité que trois pages dont une n’étant pas la plus accessible nécessairement:
[sourcecode language= »html »]
<script type="text/javascript">
document.write(‘<a href="http://test.js.com/page11.html">page11</a>’);
</script>
[/sourcecode]
Baiduspider aime les liens simples, et il les lit quand ils sont coincés dans des balises <script> en absolu, pourquoi s’embêter à lire d’autres formes de liens Javascript ? Il aurait peut être préféré que mon test soit fait avec des caractères chinois.
YandexBot/3.0
Il a visité les pages dont le lien était sous la forme d’un <a href=lien>, relatifs et absolus, qu’il y ait un onclick ou non dans le tag.
Bilan
• Pas de conclusion ni d’affirmations possibles par rapport à ce test si ce n’est que Google et Exalead lisent de nombreuses formes de liens que les pages aient une extension ou non. Bing, Baidu et Yandex quant à eux ne préfèrent pas encombrer leur index avec des pages trop vides, inutiles pour l’internaute. Le crawl de Baidu et Bing est assez étrange d’ailleurs, ça me laisse perplexe. Leurs robots étaient peut-être fatigués en fin de journée, allez savoir…
• Le fait que les chemins de ces URL soient relatifs ou absolus a eu un impact au niveau de Google et des popup, c’est bon à savoir.
• J’ai aussi placé une URL texte ce matin (comme l’avait déjà fait @jambonbuzz dans son test) sous cette forme http://www.yapasdequoi.com/blog/unepage.html (text only sans balise) et la page a été crawlée par GoogleBot dans l’heure qui a suivi la dernière visite de la page qui contenait le texte de l’URL, par contre elle n’est pas encore indexée, affaire à suivre…
J’ai par ailleurs un deuxième test en cours avec ces mêmes liens mais un texte différent entre le contenu des pages (moins vides) et les ancres afin d’en savoir plus sur la transmission de linkjuice. On verra bien ce que ça donne! En tout cas, vu la tête de mes pages, Google met vraiment n’importe quoi dans son index.