Les robots d'IA peuvent-ils lire le contenu rendu par JavaScript ?

Publié le

Réponse courte

Souvent non. Googlebot exécute JavaScript dans une étape ultérieure, mais la plupart des robots d'IA ne documentent pas le faire, et Google note lui-même que tous les bots ne savent pas exécuter JavaScript. Si votre texte n'apparaît qu'après l'exécution de scripts, un robot d'IA peut recevoir une page vide. Servez le contenu principal dans le HTML initial grâce au rendu côté serveur ou à des pages statiques.

Les applications monopages et les frameworks côté client sont partout, et dans un navigateur ils s'affichent très bien. Un robot qui ne lit que le HTML envoyé par votre serveur voit autre chose : un <div id="root"></div>, quelques balises script et peu ou pas de texte. Pour les réponses d'IA, cette page n'a rien à citer.

Sur cette page
  1. Pourquoi les robots d'IA ratent le contenu JavaScript ?
  2. Comment vérifier ce que reçoit un robot ?
  3. Quelles pages sont les plus exposées ?
  4. Comment corriger un contenu qui n'existe qu'en JavaScript ?
  5. Les écrans de connexion, de consentement et de paywall bloquent-ils aussi les robots d'IA ?
  6. Comment AISeeWhy détecte les pages uniquement JavaScript ?

Pourquoi les robots d'IA ratent le contenu JavaScript ?

Exécuter JavaScript coûte cher. Un robot doit télécharger les scripts, les exécuter dans un moteur de navigateur et attendre le chargement des données. Google le fait pour Search : il explore, met les pages en file d'attente pour le rendu, puis les rend avec Chromium sans interface quand les ressources le permettent. Malgré cela, Google recommande le rendu côté serveur ou le prérendu, parce qu'ils sont plus rapides pour les utilisateurs comme pour les robots, et note que tous les bots ne savent pas exécuter JavaScript.

OpenAI, Anthropic et Perplexity n'indiquent pas dans leur documentation que leurs agents exécutent JavaScript. Apple dit qu'Applebot peut rendre les pages dans un navigateur. Sans déclaration claire, l'hypothèse prudente pour les robots d'IA est qu'ils ne lisent que le HTML initial.

Comment vérifier ce que reçoit un robot ?

Regardez le HTML brut, pas la page rendue. Les outils de développement du navigateur montrent le DOM après l'exécution des scripts, ce qui n'est pas ce que reçoit un robot. Utilisez l'affichage du code source, ou enregistrez le HTML brut en ligne de commande et cherchez dedans :

curl -s -o page.html \
  -A "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko); compatible; GPTBot/1.4; +https://openai.com/gptbot" \
  https://example.com/page

# Is a sentence from your main text in the raw HTML?
grep -c "a sentence from your main content" page.html

Un résultat de 0 signifie que la phrase ne figure pas dans le HTML envoyé par le serveur : les robots qui n'exécutent pas de scripts ne la trouveront donc pas. Un coup d'œil au fichier vous dit le reste : un article rendu côté serveur y a tout son texte ; une coquille côté client a un élément racine vide et une liste de scripts.

Quelles pages sont les plus exposées ?

Comment corriger un contenu qui n'existe qu'en JavaScript ?

La solution consiste à envoyer le contenu important dans la première réponse. Choisissez l'option la plus légère que permet votre stack :

Inutile de convertir toute une application d'un coup. Commencez par les pages que vous voulez voir citées : articles, documentation, pages produit et tarifs. Les espaces de compte et les tableaux de bord peuvent rester côté client, puisqu'ils sont de toute façon derrière une connexion.

Évitez de servir aux robots une page différente de celle des utilisateurs selon le user-agent. Rendre le même HTML pour tout le monde est plus simple à maintenir et écarte tout doute de cloaking.

Les écrans de connexion, de consentement et de paywall bloquent-ils aussi les robots d'IA ?

Oui. Un robot ne se connecte pas, ne clique pas sur une bannière de cookies et ne résout pas les défis. Anthropic indique que ses bots n'essaieront pas de contourner les CAPTCHA. Si un gestionnaire de consentement remplace la page par une surcouche plein écran dans le HTML, ou redirige les nouveaux visiteurs vers une page de consentement, le robot reçoit cela à la place de votre contenu.

Veillez à ce que les pages publiques rendent leur contenu dans le HTML quel que soit l'état du consentement, avec la bannière en surcouche plutôt qu'en remplacement. Gardez les pages que vous voulez voir citées hors des murs de connexion, et vérifiez qu'un robot n'est pas redirigé vers une page d'identification.

Comment AISeeWhy détecte les pages uniquement JavaScript ?

AISeeWhy lit le HTML initial tel que le reçoit chaque robot, sans exécuter de scripts. Lorsqu'une page n'a presque aucun texte visible mais un élément racine de framework et des scripts, il signale un constat P1 indiquant que le contenu dépend de JavaScript. Il signale aussi les redirections qui envoient les robots ailleurs que sur la page reçue par un navigateur.

Questions fréquentes

Googlebot exécute-t-il JavaScript ?

Oui. Google explore le HTML, met les pages en file d'attente pour le rendu et les rend avec Chromium sans interface quand les ressources le permettent. Google recommande tout de même le rendu côté serveur ou le prérendu.

Les robots de ChatGPT, Claude et Perplexity exécutent-ils JavaScript ?

La documentation de leurs éditeurs ne le dit pas. Tant qu'un éditeur n'affirme pas le contraire, partez du principe que le robot lit le HTML initial et assurez-vous que votre contenu y figure.

Le rendu dynamique pour les bots est-il une bonne idée ?

Cela fonctionne comme solution provisoire, mais ajoute un second chemin de rendu à maintenir. Le rendu côté serveur ou le HTML statique servent le même contenu à tout le monde et constituent la solution durable la plus simple.

Le JSON-LD ajouté par JavaScript compte-t-il ?

Google peut le lire après le rendu, mais les robots qui n'exécutent pas de scripts ne le verront pas. Mettez le JSON-LD dans le HTML initial.

Sources

Autres articles