Accueil SEO techniqueJavaScript peut rendre des pages invisibles aux crawlers IA

JavaScript peut rendre des pages invisibles aux crawlers IA

Crawlers
Illustration générée par IA — Position Zéro

Pendant 41 jours, une expérience a comparé des pages reliées en HTML à d’autres accessibles uniquement par des liens injectés en JavaScript. GPTBot, ClaudeBot et plusieurs autres crawlers IA n’ont découvert aucune page via ces liens, tandis que Googlebot n’en a atteint que 2 %.

Vinicius Stanula a mené cette expérience sur un annuaire professionnel brésilien d’environ 2 400 pages qu’il possède et exploite. Publiée dans Search Engine Land, elle cherchait à mesurer concrètement ce que différents crawlers peuvent découvrir lorsque l’architecture interne dépend de JavaScript.

Le sujet complète les travaux consacrés au fonctionnement du crawl de Google et aux différences désormais observées entre Googlebot et les agents utilisés par les moteurs IA. Cette URL figure dans la sitemap de Position Zéro.

1 062 pages réparties entre HTML et JavaScript

L’expérience porte sur 21 sections et 1 062 pages organisées en plusieurs niveaux hiérarchiques.

Onze sections utilisaient des liens inscrits directement dans le HTML. Dans les dix autres, les liens étaient injectés en JavaScript après le chargement de la page. Le HTML initial de ces sections ne contenait donc aucun lien vers les niveaux inférieurs.

Pour éviter qu’un crawler découvre les pages par une autre voie, les sitemaps ont été désactivés, les breadcrumbs supprimés et les autres panneaux de navigation interne retirés.

Un accès à une page située sous le premier niveau d’une section JavaScript signifiait donc que le crawler avait franchi cette barrière.

Les requêtes des robots ont été enregistrées pendant 41 jours avec leur user-agent, leur chemin, leur adresse IP, leur referrer et leur horodatage. Googlebot et Bingbot ont également été vérifiés par reverse DNS.

GPTBot et ClaudeBot n’ont suivi aucun lien JavaScript

Pendant les 27 premiers jours, les écarts entre les deux groupes sont très importants.

GPTBot a parcouru les 748 pages hiérarchiques accessibles en HTML, mais aucune des 293 pages situées derrière les liens JavaScript. ClaudeBot reproduit exactement le même comportement avec 748 pages HTML découvertes et zéro côté JavaScript.

Publicité

Meta-ExternalAgent atteint 537 pages HTML et aucune page liée par JavaScript. Amazonbot en découvre 735 contre zéro dans le groupe JavaScript.

OAI-SearchBot atteint dix pages HTML et aucune page JavaScript. ChatGPT-User, utilisé lorsqu’un utilisateur demande à ChatGPT de récupérer une page, en atteint 46 côté HTML et aucune derrière les liens injectés.

Les rôles différents de GPTBot, OAI-SearchBot et ChatGPT-User sont détaillés dans la documentation d’OpenAI et avaient déjà été présentés dans notre article consacré aux user-agents des crawlers d’OpenAI.

L’expérience montre ainsi un contraste avec le volume parfois important de visites de robots IA observé dans les logs, alors que ChatGPT peut crawler davantage que Googlebot sur certains sites. Le volume de crawl ne signifie pas que toutes les architectures sont accessibles aux mêmes robots.

Image
Source : Vinicius Stanula / Search Engine Land

Google exécute JavaScript, mais Googlebot atteint seulement 2 % des pages

Google est le seul ensemble de crawlers de l’expérience à avoir effectivement franchi les liens injectés en JavaScript.

GoogleOther atteint 142 des 293 pages JavaScript, soit 48 %. Sa couverture diminue toutefois avec la profondeur du site, de 67 % au niveau des divisions à 42 % au niveau des classes.

Googlebot présente un résultat très différent. Il n’atteint que 7 pages JavaScript sur 293, soit environ 2 %. Dans le groupe HTML, sa couverture reste également faible, avec 35 pages sur 748, soit 5 %.

Cette distinction compte dans les données de l’expérience puisque GoogleOther et Googlebot n’ont pas le même rôle. GoogleOther ne construit pas l’index Search, alors que Googlebot est le crawler concerné par l’indexation de Google.

L’auteur précise également que le domaine était neuf et ne recevait aucun lien externe vers les pages testées. Il estime donc que la faible activité de Googlebot peut être liée au budget de crawl accordé à ce site particulier.

Google affirme par ailleurs depuis plusieurs années pouvoir rendre JavaScript. Position Zéro avait déjà relayé une prise de parole expliquant que charger du contenu en JavaScript ne bloque pas nécessairement l’indexation. L’expérience de Stanula porte ici spécifiquement sur la découverte de liens injectés côté client, et sur plusieurs crawlers autres que Googlebot.

Publicité

Les crawlers reviennent après le passage des liens en HTML

Après 27 jours, Vinicius Stanula remplace tous les liens JavaScript par des liens HTML classiques. Les URL et leur contenu ne sont pas modifiés.

GPTBot réagit rapidement. Dans les deux jours suivants, il découvre 250 nouvelles pages auparavant inaccessibles, lors d’un passage de moins de trois heures.

Bingbot effectue ensuite un nouveau crawl des sections concernées et ajoute 212 nouvelles pages. Meta-ExternalAgent commence également à parcourir ces sections avant la fin de l’expérience.

Image
Source : Vinicius Stanula / Search Engine Land

ClaudeBot ne réagit pas de la même manière. Malgré plusieurs centaines de nouvelles requêtes après la modification, il continue à visiter uniquement les pages déjà connues et ne découvre aucune nouvelle page des anciennes sections JavaScript.

Google revient très peu sur ces sections. Au 41e jour, Googlebot n’a visité qu’une nouvelle page et GoogleOther aucune.

Ce type d’analyse repose directement sur les requêtes enregistrées côté serveur. Les évolutions récentes des outils permettant d’identifier les bots IA dans les logs SEO répondent précisément à ce besoin de distinguer les différents user-agents.

L’expérience mesure la découverte, pas l’indexation

Vinicius Stanula souligne deux limites importantes de l’expérience.

La première concerne son périmètre. Il s’agit d’un seul site, dans une seule thématique, observé pendant 41 jours. Le domaine était récent et les pages testées ne disposaient pas de liens externes. Les résultats de Googlebot pourraient donc être différents sur un site ancien bénéficiant de davantage de signaux.

La seconde concerne ce qui a réellement été mesuré. Les logs permettent de savoir si un crawler a demandé une page au serveur. Ils ne permettent pas d’établir si cette page a ensuite été indexée, utilisée dans une réponse ou citée.

L’expérience montre donc quelles pages les différents crawlers ont réussi à découvrir dans ces conditions précises, et non leur visibilité finale dans Google ou dans les assistants IA.

À découvrir également