Ce que l'IA ne voit pas de votre page : le piège du JavaScript

Ce que l'IA ne voit pas de votre page : le piège du JavaScript

Votre page s'affiche parfaitement dans le navigateur. Elle est bien classée sur Google, elle reçoit du trafic, la Search Console est au vert. Et pourtant elle n'apparaît jamais dans une réponse de ChatGPT, de Claude ou de Perplexity — pas parce qu'un robot la bloque, mais parce que, pour eux, elle est vide.

Dans mon article sur le grounding, j'ai posé qu'avant d'être sélectionnée, une page doit d'abord être récupérable, et j'y notais en passant une condition : que son contenu soit lisible sans JavaScript. Cette phrase d'une ligne recouvre l'un des pièges les plus contre-intuitifs de l'AI search. Elle mérite qu'on s'y arrête.

Une URL, deux lecteurs

Le cas typique est celui d'un site bâti comme une application : React, Vue ou Angular, où la page envoyée par le serveur n'est qu'une coquille — un conteneur vide et un script qui va chercher le contenu pour le construire dans le navigateur. Pour un visiteur humain, tout se passe bien : le script s'exécute, les données arrivent, la page s'affiche en une seconde. Pour Googlebot aussi, qui sait exécuter ce script et indexe le résultat. La page se positionne, elle reçoit des visites : tout dit qu'elle fonctionne.

Mais les robots qui alimentent ChatGPT, Claude et Perplexity ne procèdent pas ainsi. Ils demandent la page, lisent le HTML brut tel que le serveur le renvoie, et repartent. Ce qu'ils reçoivent, c'est la coquille — pas le contenu. Une seule et même URL, deux lecteurs, deux résultats opposés. Et le piège tient justement à là : aucun de vos indicateurs habituels ne le révèle, parce qu'ils mesurent tous le monde de Google, pas celui de l'IA.

Pourquoi : les robots IA n'exécutent pas le JavaScript

La raison est simple, et elle tient à la façon dont ces robots sont faits. Quand l'un d'eux visite une page, il envoie une requête, récupère le HTML que le serveur lui renvoie, en extrait le texte, et passe à la suivante. Il n'ouvre pas de navigateur, n'attend pas que les composants se montent, ne relance rien. Ce que le serveur envoie à la première seconde est tout ce qu'il verra.

L'observation est désormais documentée à grande échelle. Une étude conjointe de Vercel et MERJ, menée fin 2024, et que les analyses de 2026 confirment toujours a passé au crible des centaines de millions de requêtes : aucun des grands robots IA n'exécute le JavaScript. Ni GPTBot et OAI-SearchBot du côté d'OpenAI, ni ClaudeBot chez Anthropic, ni PerplexityBot. Le détail le plus parlant : ces robots téléchargent bien les fichiers JavaScript de vos pages, environ 11,5 % de leurs requêtes pour ChatGPT, 23,8 % pour Claude mais ne les exécutent pas. Ils les collectent comme du texte, sans jamais en tirer le contenu qu'ils sont censés produire.

C'est un problème de récupération, pas de génération. Pour reprendre le cadre des deux mécanismes : tout se joue en amont de la phase où l'IA recompose sa réponse, et même en amont de ce qu'elle retient d'une page. Si le contenu n'est pas dans le HTML brut, il n'entre jamais dans le périmètre. Il n'y a rien à sélectionner, rien à citer.

Une exception, et elle compte : Gemini. Parce qu'il s'appuie sur l'infrastructure de Googlebot, lui sait exécuter le JavaScript. Une même page peut donc être parfaitement lue par Google et par Gemini, et rester une coquille vide pour ChatGPT, Claude et Perplexity. La perte peut même venir de deux côtés à la fois : la grande majorité des réponses de ChatGPT en recherche web s'appuie sur l'index de Bing, dont le rendu JavaScript est lui aussi limité.

Ce n'est pas React, c'est l'endroit du rendu

Cette nuance est essentielle, car elle écarte une conclusion fausse , « il faut abandonner React » et désigne le vrai problème. Le coupable n'est pas le framework, c'est l'endroit où le contenu est produit.

Si votre page est rendue côté serveur, autrement dit si le serveur assemble le contenu et l'envoie déjà complet dans le HTML, les robots IA le voient sans difficulté, quel que soit l'outil employé. React, Vue ou Angular conviennent parfaitement dès lors qu'ils s'exécutent côté serveur (le rendu côté serveur, ou SSR) ou produisent des pages figées à la construction (la génération statique). Ce qui est invisible, ce n'est pas React : c'est tout ce qui n'apparaît qu'après l'exécution du JavaScript dans le navigateur du visiteur. Le critère n'est donc pas « quel framework », mais « où le contenu est-il assemblé : sur le serveur, ou dans le navigateur ? ».

Pendant des années, faire lire le JavaScript aux moteurs a été le problème du référencement technique et Google l'a résolu. Googlebot exécute le JavaScript, au point que Google a retiré de sa documentation, début 2026, l'avertissement qu'il maintenait depuis longtemps à ce sujet. Le réflexe est donc naturel : « le JavaScript, c'est réglé. » Sauf que ce constat ne vaut que pour Google. Les robots IA n'ont pas cette infrastructure de rendu, et ne l'auront pas demain. Un site qui « marche » pour Google peut très bien rester muet pour l'IA, précisément parce qu'on a cru le problème derrière soi.

Reste une question pratique : comment savoir si votre site est concerné, et quoi faire si c'est le cas ? La vérification est plus simple qu'on ne le croit.

Vérifier, puis corriger

Le test le plus rapide ne demande aucun outil. Affichez le code source de la page — un clic droit, « afficher le code source » ou désactivez le JavaScript dans votre navigateur, puis rechargez. Vous voyez alors la page telle qu'un robot IA la reçoit. Si le texte, les prix, les descriptions, les réponses de votre FAQ ou vos tableaux comparatifs disparaissent, c'est qu'ils dépendent du JavaScript : ces robots ne les verront pas. Les pages les plus exposées sont souvent les pages produit et les comparatifs, justement celles que l'IA cite le plus en e-commerce.

Une vérification plus fine passe par vos journaux serveur. Vous y verrez si GPTBot, ClaudeBot ou OAI-SearchBot repartent avec une vraie page, un code 200 et du HTML riche ou avec une coquille vide. C'est la confirmation directe de ce que ces robots emportent réellement.

Le correctif tient en un principe : le contenu qui compte doit être présent dans le HTML envoyé par le serveur. Concrètement, on bascule les pages importantes en rendu côté serveur ou en génération statique, ce que des outils comme Next.js ou Nuxt font nativement. Le rendu côté navigateur, lui, reste tout à fait valable pour ce qui n'est pas essentiel : un compteur de vues, un widget interactif, un fil de discussion. Et il n'est pas nécessaire de refondre tout le site : il suffit le plus souvent de traiter les quelques pages que vous voulez voir citées.

Voir avant d'être retenu

La visibilité dans l'AI search commence plus tôt qu'on ne l'imagine. Avant les facteurs de citation, avant même ce que l'IA retient d'une page, il y a une condition que rien ne signale dans vos tableaux de bord habituels : que le robot voie quelque chose. Une coquille vide n'est pas une page mal optimisée, c'est une page absente.

Ce n'est pas un nouveau levier réservé à l'AI search. C'est une exigence technique de base, du même ordre que rendre un site accessible aux moteurs. Une fois cette condition remplie, la page est visible, la vraie question redevient celle que je traitais dans l'article sur le grounding : non plus « l'IA voit-elle votre page ? », mais « qu'en retient-elle ? ».