Les robots d'exploration IA n'exécutent pas votre JavaScript. Vérifiez ce qu'ils voient vraiment.
Si vos pages s'affichent dans le navigateur, ChatGPT, Claude et Perplexity lisent peut-être une coquille vide. Comment le savoir, et comment corriger le problème avec Next.js, React et d'autres frameworks.
La plupart des robots d'exploration IA lisent le HTML envoyé par votre serveur, et rien de plus. Si votre page produit construit son contenu en JavaScript après le chargement, un robot comme GPTBot ou ClaudeBot peut recevoir une page avec un en-tête, un pied de page et une icône de chargement. Il ne peut pas recommander un produit qu'il ne peut pas lire.
Qui exécute le JavaScript, et qui ne le fait pas
Googlebot exécute le JavaScript. Il met les pages en file d'attente pour le rendu et indexe ce qu'afficherait le navigateur : c'est pourquoi les sites rendus côté client peuvent quand même se positionner dans Google. Gemini et Google AI Overviews s'appuient sur l'index de Google et en héritent.
Les robots derrière ChatGPT, Claude et Perplexity fonctionnent autrement. Une analyse du trafic des robots menée en 2024 par Vercel et MERJ a montré que les robots d'OpenAI et d'Anthropic téléchargeaient les fichiers JavaScript sans les exécuter. Tant qu'un éditeur ne documente pas le contraire, partez du principe que ces robots ne voient que votre HTML brut.
Cet écart explique une énigme fréquente : un site bien positionné dans Google qui n'apparaît jamais dans les réponses de ChatGPT sur sa propre catégorie.
Comment vérifier vos propres pages
Ouvrez une page produit et utilisez « Afficher le code source de la page », pas l'inspecteur d'éléments. L'inspecteur montre la page après l'exécution du JavaScript. Le code source montre ce que reçoit un robot qui n'effectue pas de rendu.
Cherchez dans le code source une phrase visible sur la page, comme votre titre ou un prix. Si elle s'y trouve, les robots peuvent la lire. Si le code source ne contient qu'une <div> racine et des balises script, votre contenu est rendu dans le navigateur.
Vous pouvez aussi récupérer la page depuis un terminal :
curl -s https://yourdomain.com/pricing | grep -i "per month"Aucun résultat signifie que le texte de vos tarifs n'atteint jamais un robot qui ignore le JavaScript.
L'audit gratuit de préparation à l'IA de Promptvane fait ce test pour votre page d'accueil et un échantillon de pages de votre sitemap, et signale toute page dont le HTML ne contient presque pas de texte.
Correctifs par framework
L'objectif est partout le même : envoyer le contenu dès la première réponse HTML.
Avec Next.js et l'App Router, les pages sont par défaut des Server Components rendus sur le serveur. Les problèmes commencent quand une page entière est marquée 'use client' et charge ses données dans useEffect. Déplacez le chargement des données dans le Server Component (ou dans generateStaticParams pour les pages statiques) et réservez 'use client' aux éléments interactifs.
Avec le Pages Router de Next.js, utilisez getStaticProps ou getServerSideProps pour les pages de contenu au lieu de charger les données côté client.
Pour une application monopage React ou Vue construite avec Vite, ajoutez le prérendu des pages publiques, ou déplacez les pages marketing vers un framework qui rend côté serveur, comme Next.js, Nuxt, Astro ou Remix.
WordPress, Webflow et la plupart des créateurs de sites hébergés rendent déjà côté serveur. Vérifiez les constructeurs de pages et les plugins qui chargent du contenu via des widgets JavaScript, comme les carrousels d'avis et les tableaux de prix.
Le contenu qui se cache autrement
Le rendu serveur n'est pas le seul piège. Le contenu placé dans des onglets et des accordéons ne pose pas de problème tant qu'il figure dans le HTML ; le contenu chargé uniquement au clic sur l'onglet, si. Le texte contenu dans des images est invisible pour les robots qui ne font pas d'OCR. Les prix injectés par un script de paiement tiers n'apparaissent souvent jamais dans votre code source.
FAQ
Si Googlebot exécute le JavaScript, suis-je tranquille ?
Pour la recherche Google, en grande partie. Pour ChatGPT, Claude et Perplexity, non. Rien n'a montré que leurs robots exécutent le JavaScript : le contenu qui n'existe qu'après le rendu leur est probablement invisible.
Suffit-il de rendre la page d'accueil côté serveur ?
Non. Les assistants citent généralement la page qui répond à la question : une page de tarifs, un comparatif, une page de fonctionnalité. Chaque page que vous voulez voir citée doit avoir son contenu dans le HTML.
Le rendu côté serveur va-t-il dégrader les performances ?
En général, c'est l'inverse. Les pages rendues côté serveur et les pages statiques affichent le contenu plus tôt, ce qui améliore aussi les Core Web Vitals.