Aller au contenu

GEO

JavaScript SEO, les IA arrivent-elles à lire votre site ?

Pas toutes. Googlebot exécute le JavaScript, mais les robots d'OpenAI, d'Anthropic ou de Perplexity lisent surtout le HTML que renvoie votre serveur. Si votre texte n'apparaît qu'une fois le JavaScript exécuté, il y a de bonnes chances que ChatGPT ne le voie jamais.

Par Shahin Gharbi, consultant SEO et GEO à Chambéry Mis à jour le 5/11/2026 6 min de lecture

Le JavaScript SEO, c’était jusqu’ici une affaire entre votre site et Googlebot. Avec ChatGPT, Claude et Perplexity, la question revient par la fenêtre, et cette fois avec des robots beaucoup moins patients que celui de Google. Je suis développeur de formation, et c’est un des premiers points que je vérifie dans un audit GEO.

Le principe est simple. Une IA ne peut citer que ce qu’elle a pu lire. Si votre page affiche un beau texte dans le navigateur mais envoie un fichier presque vide aux robots, vous êtes invisible pour une partie des assistants, sans le savoir.

Comment les robots IA lisent-ils une page web ?

Ils demandent la page à votre serveur et lisent le HTML qu’il renvoie. La grande différence avec Googlebot, c’est que la plupart d’entre eux ne lancent pas de navigateur pour exécuter le JavaScript.

Google traite les pages en trois temps, exploration, rendu, puis indexation. Entre la première et la dernière étape, un Chromium sans interface exécute le JavaScript, dès que les ressources de Google le permettent. Tout est décrit dans sa documentation sur les bases du JavaScript SEO, qui précise qu’une page peut rester quelques secondes dans la file d’attente du rendu, parfois plus.

Chez les éditeurs d’IA, chaque maison a plusieurs robots. OpenAI distingue OAI-SearchBot, GPTBot et ChatGPT-User, et c’est OAI-SearchBot qui sert à faire apparaître des sites dans la recherche de ChatGPT. Anthropic fait la même chose avec ClaudeBot, Claude-SearchBot et Claude-User, et Perplexity avec PerplexityBot et Perplexity-User.

Leurs documentations, à ma connaissance, ne disent pas si ces robots exécutent le JavaScript. C’est justement le souci. Sans information officielle, il faut partir de l’hypothèse la plus prudente, et Google lui-même l’écrit sans détour.

« Tous les robots ne savent pas exécuter le JavaScript. » Google, documentation sur les bases du JavaScript SEO

Pourquoi un contenu chargé en JavaScript peut-il être invisible pour ChatGPT ?

Parce que le robot d’OpenAI reçoit le fichier HTML, pas la page telle que vous la voyez dans Chrome. Si votre texte est injecté par le JavaScript après le chargement, ce fichier est presque vide.

Prenez une application React classique, construite avec Vite. Le HTML envoyé par le serveur tient souvent en quelques lignes, avec une balise <div id="root"></div> et un lien vers un gros fichier JavaScript. Tout le reste, titres, textes, prix, avis, est fabriqué ensuite dans le navigateur. Un humain ne voit aucune différence. Un robot qui n’exécute rien voit une page blanche avec un titre.

La meilleure donnée publique sur le sujet reste l’analyse publiée par Vercel en décembre 2024, menée avec MERJ sur le trafic de son réseau. Elle concluait qu’aucun des grands robots IA ne rendait le JavaScript à ce moment-là. Les robots d’OpenAI et d’Anthropic téléchargeaient bien les fichiers JavaScript, mais sans les exécuter. Les exceptions notables étaient Gemini, qui profite de l’infrastructure de Googlebot, et AppleBot.

Les choses ont pu bouger depuis, et je n’ai pas trouvé de mise à jour officielle des éditeurs concernés. Je construis donc comme si c’était toujours vrai. Si un robot sait exécuter le JavaScript, tant mieux, un HTML complet ne le gênera pas.

Le problème ne touche pas que les sites entièrement en JavaScript. Un onglet qui charge son contenu au clic, une FAQ remplie par une API, un widget d’avis tiers, tout ça peut manquer à l’appel. Un responsable produit de Bing le rappelait d’ailleurs dans un article d’octobre 2025 sur l’inclusion dans les réponses IA, en expliquant que les systèmes d’IA peuvent ne pas rendre le contenu caché dans des onglets ou des menus dépliants.

Rendu serveur, site statique ou rendu navigateur, que choisir ?

Pour un site vitrine, un blog ou une boutique, choisissez un site statique ou du rendu côté serveur. Gardez le rendu dans le navigateur pour les parties interactives qui n’ont pas vocation à être citées par une IA.

Mode de renduCe que reçoit un robotExemples d’outilsPour quel site
Site statique (SSG)Une page HTML complète, générée à l’avanceHugo, Astro, Next.js en export statiqueVitrine, blog, documentation
Rendu serveur (SSR)Une page HTML complète, générée à chaque visiteNext.js, Nuxt, SvelteKit, WordPressBoutique, catalogue, contenu qui change souvent
Rendu navigateur (CSR)Un HTML presque vide et des scriptsReact ou Vue en application monopageEspace client, outil, tableau de bord

Le statique est le plus confortable pour les robots. Chaque page existe déjà sous forme de fichier HTML, le serveur n’a qu’à l’envoyer, et le chargement est rapide pour tout le monde. Le revers, c’est qu’il faut reconstruire le site quand le contenu change, ce qui prend quelques secondes avec un bon outil.

Le rendu serveur donne le même résultat aux yeux d’un robot, avec une page calculée à la demande. C’est le bon choix quand vos prix ou vos stocks bougent sans arrêt. Les frameworks modernes savent d’ailleurs mélanger les deux approches, page par page.

Quand je crée un site aujourd’hui, mon choix par défaut est le HTML généré à l’avance, avec du JavaScript ajouté ensuite pour l’interactivité. Le site que vous lisez est construit avec Hugo, qui produit des pages HTML complètes. N’importe quel robot peut le lire sans rien exécuter, et c’est exactement ce que je cherche.

Comment tester ce qu’un robot IA voit de votre page ?

Regardez le HTML brut de la page, sans JavaScript. Si une phrase de votre contenu principal n’y figure pas, partez du principe que les robots IA ne la voient pas.

Trois tests suffisent, du plus rapide au plus parlant.

  • Le code source. Dans Chrome, faites Ctrl+U (Cmd+Option+U sur Mac), puis Ctrl+F pour chercher une phrase de votre page. Attention, l’onglet Éléments des outils de développement montre la page après JavaScript, ce n’est pas le même test.
  • Le navigateur sans JavaScript. Ouvrez les outils de développement, tapez Ctrl+Shift+P, cherchez « Disable JavaScript » et rechargez. Ce qui reste à l’écran ressemble à ce que lit un robot qui n’exécute rien.
  • La ligne de commande. La commande curl -s https://www.votresite.fr/page/ | grep -c "une phrase de la page" renvoie 0 si la phrase est absente du HTML.

Pour comparer avec Google, utilisez l’outil d’inspection d’URL de la Search Console. Le test en direct affiche une capture de la page rendue, le HTML, les ressources chargées et les messages de la console JavaScript. Si la capture montre votre texte alors que le code source brut ne le contient pas, vous tenez votre explication.

Un dernier contrôle, souvent oublié, consiste à ouvrir votre fichier robots.txt. Un site parfaitement lisible ne sert à rien si OAI-SearchBot ou PerplexityBot y sont bloqués. J’en parle en détail dans mon article sur GPTBot, ClaudeBot et les autres robots IA.

Quels frameworks posent problème en JavaScript SEO, et comment les corriger ?

Les plus exposés sont les applications monopages en React, Vue ou Angular servies sans rendu serveur. La correction passe par le rendu serveur ou le pré-rendu, avec l’outil prévu par chaque écosystème.

Côté React, la voie la plus courante est Next.js, qui génère chaque page côté serveur ou à l’avance. Astro est une bonne option pour un site de contenu, puisqu’il n’envoie du JavaScript que là où c’est utile. Côté Vue, l’équivalent s’appelle Nuxt, Angular propose son propre rendu serveur, et SvelteKit fait du rendu serveur par défaut.

Une migration complète n’est pas toujours nécessaire. Sur un site existant, on peut souvent pré-rendre les pages publiques, accueil, services, articles, et laisser le reste tourner dans le navigateur. C’est moins élégant, mais ça règle le problème là où il compte.

Quelques détails méritent aussi votre attention, car Google les a précisés fin 2025 dans son journal des mises à jour. La balise canonique doit être dans le HTML d’origine, pas réécrite par le JavaScript. Une balise noindex ne doit pas être retirée par script, car Google peut sauter le rendu dès qu’il la voit. Et une page qui renvoie une erreur 404 peut ne pas passer au rendu du tout.

Même logique pour vos données structurées. Un JSON-LD injecté par Google Tag Manager peut être lu par Google après rendu, mais il a toutes les chances d’échapper aux robots qui n’exécutent rien. Mettez-le directement dans le HTML, comme je l’explique dans l’article sur les données structurées et les IA.

Si vous ne savez pas dans quelle catégorie tombe votre site, envoyez-moi son adresse. Je compare ce que voient Google et les robots IA dans le cadre de l’audit offert, et je vous dis honnêtement si le sujet mérite d’être traité. Pour les autres chantiers, mon guide pour optimiser un site pour les IA fait le tour des priorités.

Questions fréquentes

Google arrive-t-il à lire un site en JavaScript ?

Oui. Googlebot passe les pages dans un Chromium sans interface qui exécute le JavaScript, après un passage dans une file d'attente. Google recommande malgré tout le rendu côté serveur ou le pré-rendu, plus rapide et lisible par tous les robots.

ChatGPT voit-il le contenu chargé en JavaScript ?

Probablement pas. Une analyse publiée par Vercel fin 2024 montrait que les robots d'OpenAI téléchargeaient les fichiers JavaScript sans les exécuter. Le plus sûr est de placer tout le texte important dans le HTML envoyé par le serveur.

Un site WordPress pose-t-il problème aux robots IA ?

En général non, car WordPress génère ses pages côté serveur. Les soucis viennent plutôt des extensions qui chargent du contenu en JavaScript, comme certains widgets d'avis, de FAQ ou de prix.

Comment vérifier rapidement ce que voit un robot IA ?

Affichez le code source de la page avec Ctrl+U et cherchez une phrase de votre texte. Si elle n'y figure pas, elle est ajoutée par le JavaScript et les robots IA risquent de ne jamais la lire.

À lire ensuite

Une question ? Écrivez-moi