Beaucoup de personnes - développeurs compris - se posent de nombreuses questions sur la validité des liens hypertexte - et donc des backlinks potentiels - créés grâce au langage Javascript. En effet, ce dernier n'était au départ pas compris par les moteurs de recherche. Mais la donne a bien sûr grandement changé depuis. Martin Splitt (Google) vient de proposer une FAQ en ligne à ce sujet. La voici, traduite en français...
Dans la famille des porte-paroles SEO chez Google, si on retrouve depuis longtemps John Mueller, Gary Illyes, Danny Sullivan ou Vincent Courson (aujourd'hui plutôt spécialisé dans le domaine de la sécurité), un nouveau venu fait son trou depuis quelques mois sur les questions plus techniques de développement, notamment pour tout ce qui touche au Javascript, soit le dénommé Martin Splitt, qui diffuse de nombreuses informations de qualité sur les langages de programmation appliqués au SEO.
Il a notamment publié il y a quelques jour une FAQ sur le thème "Javascript et SEO" et plus précisément "Javascript et les liens hypertexte" que nous avons traduit et reproduit ci-dessous. Une vidéo pour préciser tout cela est également proposée à la fin de cet article (sous-titres disponibles en plusieurs langues mais pas en français).
Voici donc la FAQ proposée à cette occasion sur le sujet "Javascript et liens hypertexte" :
🔗 Quels types de liens Googlebot peut-il découvrir ?
Googlebot analyse le code HTML d'une page, à la recherche de liens permettant de découvrir les URL de pages à explorer. Pour découvrir ces pages, vous devez faire de vos liens de véritables liens HTML, comme décrit dans les directives à l'intention des webmasters sur les liens.
🔗 Quels sont les types d'URL acceptables pour Googlebot ?
Googlebot extrait les URL de l'attribut href de vos liens et les met ensuite en file d'attente pour le crawl. Cela signifie que l'URL doit être résolvable ou, en d'autres termes, l'URL doit fonctionner lorsqu'elle est mise dans la barre d'adresse d'un navigateur. Là aussi, les directives à l'intention des webmasters sur les liens vous en diront plus.
🔗 Est-il possible d'utiliser JavaScript pour créer et injecter des liens ?
Tant que ces liens remplissent les critères définis et décrits ci-dessus, oui. Lorsque Googlebot effectue la phase de « rendering » d'une page, il exécute JavaScript et découvre ainsi les liens générés par JavaScript. Il convient de mentionner que la découverte des liens peut se faire deux fois : avant et après l'exécution de JavaScript. Ainsi, le fait que vos liens soient dans la réponse initiale du serveur permet à Googlebot de les découvrir un peu plus rapidement.
🔗 Googlebot comprend-il les URL fragmentées (ancres) ?
Les fragments d'URL, également appelés "hash URL" (signe #), sont techniquement corrects, mais peuvent ne pas fonctionner comme vous l'attendez de la part de Googlebot. Les fragments sont censés être utilisés pour adresser un élément de contenu dans la page et lorsqu'ils sont utilisés à cette fin, les fragments sont absolument parfaits. Parfois, les développeurs décident d'utiliser des fragments avec JavaScript pour charger un contenu différent de celui de la page sans le fragment. Les fragments ne sont pas conçus pour cela et ne fonctionneront pas avec Googlebot. Consultez le guide de référencement JavaScript pour savoir comment utiliser l'« History API » à la place.
🔗 Est-ce que Googlebot utilise toujours la technologie Ajax ?
La technologie AJAX pour le crawl est obsolète depuis longtemps. Ne vous y fiez pas pour vos pages. Il est recommandé d'utiliser l'API History et de migrer vos applications web vers des URL qui ne reposent pas sur des fragments pour charger des contenus différents.
Merci Martin Splitt pour cette FAQ sur "liens et SEO" ! Et voici la vidéo complémentaire sur le sujet :
Vidéo de Martin Splitt "Links & JavaScript". Source : YouTube
Pour votre information, « Does Googlebot still use the AJAX crawling scheme? » ne se traduit pas par « Est-ce que Googlebot utilise toujours la technologie Ajax ? » mais plutôt par « Est-ce que Googlebot supporte toujours la recommandation ‘Ajax crawling scheme’ ? », ce qui n’est pas vraiment la même question…