Notre propre recherche
Que ratent les robots d’IA quand ils sautent le JavaScript ?
Nous avons chargé deux fois chaque page d’accueil qui a servi du HTML à notre robot : en HTML brut et avec JavaScript. Le 20 octobre 2026, les données structurées ne dépendaient presque jamais du JavaScript : seulement 1,3 % de ces pages d’accueil, parmi les 10 000 sites les plus populaires, recevaient leur JSON-LD par JavaScript. Pour le texte, c’est une autre histoire. Sur 26,4 % d’entre elles, moins de la moitié des mots se trouvent dans le HTML que reçoit un robot sans JavaScript.
Mesuré le 20 octobre 2026
- des pages d’accueil du top 10 000 n’ont du JSON-LD qu’après JavaScript
- 1,3 %
- n’ont l’essentiel de leur texte qu’après JavaScript
- 26,4 %
- n’affichent leur titre principal (h1) qu’après JavaScript
- 6,5 %
Ce que nous avons testé
Une page web arrive en deux étapes. D’abord, le serveur envoie du HTML. Ensuite, le navigateur exécute le JavaScript de la page, qui peut ajouter du texte, des titres et des données structurées.
Tous les robots ne font pas cette deuxième étape. Selon une étude de logs de Vercel de 2024, les grands robots d’IA récupèrent les fichiers JavaScript sans les exécuter. L’outil web fetch d’Anthropic pour les développeurs ne prend pas en charge, selon sa documentation, les pages construites en JavaScript. Google fait autrement : il exécute le JavaScript des pages.
Nous avons donc chargé chaque page d’accueil deux fois, à quelques secondes d’écart et avec le même nom de robot : une fois en HTML brut, comme la voit un robot sans JavaScript, et une fois dans un vrai navigateur Chrome qui exécute le JavaScript. Puis nous avons comparé les deux.
Des données structurées qui n’apparaissent qu’avec JavaScript
51,2 % des pages d’accueil du top 10 000 ont du JSON-LD dans le HTML brut. Seulement 1,3 % l’obtiennent uniquement par JavaScript, et sur 1,3 % le JavaScript ajoute d’autres types. Pour les données structurées, le HTML brut dit donc presque toujours tout.
| Mesure | Top 10 000 | 10 001–100 000 | 100 001–1 million | En néerlandais | En allemand |
|---|---|---|---|---|---|
| A du JSON-LD dans le HTML brut | 51,2 %46,1 %–56,3 % | 51 %45,9 %–56 % | 49 %43,8 %–54,2 % | 43,2 %38,2 %–48,3 % | 33 %28,2 %–38 % |
| A du JSON-LD après JavaScript | 52,3 %47,2 %–57,3 % | 52,6 %47,5 %–57,6 % | 49,9 %44,6 %–55,1 % | 43,2 %38,2 %–48,3 % | 33,5 %28,8 %–38,6 % |
| JSON-LD seulement après JavaScript | 1,3 %0,6 %–3,1 % | 1,6 %0,8 %–3,5 % | 0,9 %0,3 %–2,5 % | 0,3 %0 %–1,5 % | 0,6 %0,2 %–2,1 % |
| JavaScript ajoute d’autres types | 1,3 %0,6 %–3,1 % | 0,3 %0 %–1,5 % | 0,6 %0,2 %–2,1 % | 0,5 %0,1 %–2 % | 0,6 %0,2 %–2,1 % |
| JavaScript le retire | 0,3 %0 %–1,5 % | 0 %0 %–1 % | 0 %0 %–1,1 % | 0,3 %0 %–1,5 % | 0 %0 %–1,1 % |
| Pages d’accueil comparées (n) | 371 | 367 | 349 | 368 | 349 |
Le JSON-LD cassé est rare lui aussi : 0,5 % des pages d’accueil avec du JSON-LD dans le HTML brut ont un bloc qui n’est pas du JSON valide. Un tel bloc ne peut pas du tout être lu comme données structurées. Notre validateur de schéma lit le HTML brut de la même manière et indique la ligne exacte.
| Mesure | Top 10 000 | 10 001–100 000 | 100 001–1 million | En néerlandais | En allemand |
|---|---|---|---|---|---|
| Au moins un bloc n’est pas du JSON valide | 0,5 %0,1 %–2,9 % | 1,6 %0,5 %–4,6 % | 2,9 %1,3 %–6,7 % | 1,3 %0,3 %–4,5 % | 0,9 %0,2 %–4,8 % |
| Pages d’accueil avec JSON-LD dans le HTML brut (n) | 190 | 187 | 171 | 159 | 115 |
Sous chaque part figure sa fourchette : avec 95 % de confiance, la vraie part se situe entre ces deux nombres. Les colonnes 1 à 3 sont des sites populaires selon leur rang dans la liste Tranco, les colonnes 4 et 5 des sites en néerlandais et en allemand de l’annuaire Curlie.
Titre, description et titre principal
Le titre de la page est presque toujours dans le HTML brut : seulement 1,1 % des pages d’accueil du top 10 000 l’ajoutent par JavaScript. Le titre principal, c’est autre chose : sur 6,5 %, le h1 n’apparaît qu’après JavaScript.
| Mesure | Top 10 000 | 10 001–100 000 | 100 001–1 million | En néerlandais | En allemand |
|---|---|---|---|---|---|
| Titre de la page | 1,1 %0,4 %–2,7 % | 1,6 %0,8 %–3,5 % | 0,9 %0,3 %–2,5 % | 0,5 %0,1 %–2 % | 0,3 %0,1 %–1,6 % |
| Meta description | 1,1 %0,4 %–2,7 % | 1,6 %0,8 %–3,5 % | 0,9 %0,3 %–2,5 % | 1,1 %0,4 %–2,8 % | 0,6 %0,2 %–2,1 % |
| Titre principal (h1) | 6,5 %4,4 %–9,4 % | 8,4 %6 %–11,7 % | 5,7 %3,7 %–8,7 % | 1,1 %0,4 %–2,8 % | 0,9 %0,3 %–2,5 % |
| Pages d’accueil comparées (n) | 371 | 367 | 349 | 368 | 349 |
Le texte lui-même
Sur la page d’accueil type du top 10 000, 87,5 % des mots qu’affiche un navigateur figurent aussi dans le HTML brut. Mais sur 26,4 % des pages d’accueil, moins de la moitié du texte est là sans JavaScript. Un robot qui saute le JavaScript ne voit qu’une partie de ces pages.
| Mesure | Top 10 000 | 10 001–100 000 | 100 001–1 million | En néerlandais | En allemand |
|---|---|---|---|---|---|
| Moins de la moitié des mots sont dans le HTML brut | 26,4 %22,1 %–31,1 % | 23,9 %19,8 %–28,6 % | 16,3 %12,8 %–20,5 % | 13,2 %10,1 %–17,1 % | 8 %5,6 %–11,4 % |
| Pages d’accueil comparées (n) | 368 | 360 | 344 | 363 | 348 |
| Mesure | Top 10 000 | 10 001–100 000 | 100 001–1 million | En néerlandais | En allemand |
|---|---|---|---|---|---|
| Mots dans le HTML brut | 948 | 710 | 830 | 453 | 505 |
| Mots après JavaScript | 1 409 | 1 058 | 1 044 | 523 | 552 |
Vous voulez voir ce qu’un robot sans JavaScript reçoit de votre page ? Ouvrez le code source de la page (Ctrl+U, ou Cmd+Option+U sur Mac) au lieu de la page elle-même. Ou laissez notre analyse GEO gratuite vérifier la page.
Ce que cela ne prouve pas
- Cela ne montre pas que les outils d’IA utilisent les données structurées pour choisir leurs sources, ni qu’en ajouter vous fait citer plus souvent.
- Nous ne sommes pas un robot d’IA. Un site peut envoyer aux robots d’IA un autre HTML qu’à nous, selon le nom du robot ou son adresse IP.
- Pages d’accueil seulement. Les fiches produits et les articles peuvent se comporter autrement.
- Nous comptons tout le texte du HTML, y compris le texte masqué à l’écran, des deux côtés. Nous ne vérifions pas ce qu’un visiteur voit vraiment.
- Nous n’avons cliqué sur rien. Quand une bannière de cookies ou de consentement s’affiche, la page après JavaScript peut contenir le texte de cette bannière, ou moins de la page elle-même.
- Le texte dans le shadow DOM (utilisé par certains composants web) ne fait pas partie du HTML de la page que nous lisons. Nous ne l’avons donc pas compté après JavaScript non plus.
- Cela ne dit rien sur Google : Google exécute le JavaScript avant d’indexer une page.
Notre méthode
Nous avons tiré au hasard 1 500 sites dans chacun de cinq groupes : trois tranches de rang de la liste Tranco 467YX des sites populaires (rangs 1 à 10 000, 10 001 à 100 000 et 100 001 à 1 000 000), plus les sections en néerlandais et en allemand de l’annuaire Curlie (47 502 et 309 045 sites inscrits avec leur page d’accueil). Grâce à une graine aléatoire fixe, toute personne disposant des deux mêmes fichiers tire exactement les mêmes sites.
Parmi les sites dont la page d’accueil s’était ouverte normalement lors de notre test robots.txt, nous avons pris les 400 premiers de chaque groupe, dans un ordre aléatoire. Avant de charger une page, nous avons récupéré à nouveau le robots.txt et ne sommes allés plus loin que s’il autorisait toujours notre robot.
Le navigateur était Chrome/141.0.7390.76 (sans interface), avec le même nom de robot que la requête brute : GEOScoreBot/1.0 (+https://geo-score.online). Il attendait la fin du chargement de la page plus jusqu’à 10 secondes de calme réseau, puis lisait la page. Il ignorait images, vidéos et polices, qui ne changent pas le texte, et respectait le robots.txt pour les fichiers du site lui-même. L’exécution a duré environ 32 minutes.
Les deux versions passaient par le même code : le JSON-LD via l’analyseur de notre validateur de schéma, le titre de la page, la meta description et le h1 quand ils ne sont pas vides, et les mots du corps de la page sans scripts, styles ni commentaires. Une page compte comme « la plupart du texte a besoin de JavaScript » quand moins de la moitié des mots après JavaScript figurent aussi dans le HTML brut.
Nous avons écrit les questions, l’échantillon et chaque mesure avant le début du crawl, et enregistré ce plan. Tout ce que nous avons décidé après avoir vu les données est signalé comme exploratoire.
| Étape | Top 10 000 | 10 001–100 000 | 100 001–1 million | En néerlandais | En allemand |
|---|---|---|---|---|---|
| Pages d’accueil essayées | 400 | 400 | 400 | 400 | 400 |
| Le robots.txt disait désormais non à notre robot | 2 | 2 | 2 | 1 | 0 |
| La requête HTML brute a échoué | 0 | 2 | 0 | 0 | 0 |
| Le navigateur n’a pas pu charger la page | 6 | 11 | 24 | 24 | 47 |
| Le JavaScript a envoyé le navigateur vers une autre page | 21 | 18 | 25 | 7 | 4 |
| Comparées : comptées dans les parts | 371 | 367 | 349 | 368 | 349 |
| … dont encore en chargement quand nous avons cessé d’attendre | 46 | 37 | 24 | 12 | 22 |
Quand le JavaScript envoie un navigateur vers une autre page (une page de langue, un mur de cookies, une vérification anti-robots), les deux versions ne sont plus la même page : nous les laissons de côté. Un robot sans JavaScript reste sur la première page.
D’autres études sur la même question
Vercel (données d’un éditeur, décembre 2024) a étudié le trafic des robots d’IA sur son propre réseau. À l’époque, aucun des grands robots d’IA n’exécutait le JavaScript : ils récupéraient les fichiers JavaScript sans voir le contenu que le JavaScript ajoute. Gemini faisait exception, parce qu’il utilise le robot de Google, qui exécute le JavaScript des pages.
La documentation d’Anthropic sur son outil web fetch, que les développeurs utilisent pour que Claude ouvre une page, indique que les sites construits en JavaScript ne sont pas pris en charge. Cela concerne l’outil pour développeurs ; la documentation ne dit rien de l’application Claude.
Vérifiez votre propre site
Ce sont des moyennes. Votre site, lui, est dedans ou dehors. Nos outils gratuits le vérifient en quelques secondes.
Télécharger les données
Chaque nombre de cette page figure dans le fichier CSV, une ligne par nombre, avec son effectif, sa base et sa fourchette à 95 %. Il ne contient que des totaux, aucun nom de site.
Télécharger les chiffres (CSV)Vous pouvez réutiliser les chiffres sous licence CC BY 4.0. Merci de citer GEO-Score et de mettre un lien vers cette page.
Sources des listes de sites
Sites populaires : la liste Tranco 467YX (Le Pochat et al., NDSS 2019).
Sites en néerlandais et en allemand : avec du contenu de Curlie.org – le plus grand annuaire du Web édité par des humains. Contribuez en proposant un site ou en devenant éditeur. Les données Curlie sont sous licence CC BY 3.0.
20 octobre 2026 : première mesure publiée.