Les IA voient une coquille vide au lieu du site : les crawlers IA n'exécutent pas JavaScript
Le scénario est classique : le site est en tête de Google, le trafic et les conversions sont bons, mais à la question « que fait cette entreprise ? », ChatGPT cite trois concurrents ou ressort des données vieilles de deux ans. L'équipe de Habr a testé son propre site avec des requêtes à plusieurs modèles, puis a examiné ce que reçoit réellement leur infrastructure. Résultat : une partie des crawlers IA n'exécute pas JavaScript. Au lieu de l'article, le modèle ne récupère que la coquille vide de la page. • Réécrire les textes et les FAQ n'aide généralement pas : le modèle répond à partir de ce qui lui est parvenu. • Pour ces crawlers, les sites assemblés dans le navigateur sont presque vides. • Le problème peut être vérifié et corrigé sans toucher au contenu.
Traité par IA depuis Habr AI ; édité par Hamidun News
Le site est en tête des résultats de recherche, le trafic arrive, les conversions tiennent. Pourtant, à la question « que fait l'entreprise X ? », ChatGPT cite trois concurrents ou ressort des faits vieux de deux ans. Les auteurs d'une analyse récente publiée sur Habr ont soumis leur propre site à des requêtes sur plusieurs modèles, puis examiné ce que reçoit leur infrastructure. Leur conclusion est prosaïque : le contenu ne manquait pas, il n'arrivait simplement pas jusqu'au modèle. Une partie des crawlers IA n'exécute pas JavaScript et ne voit, à la place de l'article, que la coquille vide de la page.
Pourquoi « plus de contenu » ne règle rien
La première réaction des marketeurs et des développeurs est prévisible : réécrire les textes, ajouter de l'expertise, soigner la FAQ. L'hypothèse est logique, mais d'après l'expérience des auteurs, elle se vérifie presque toujours à côté. Un réseau de neurones ne répond pas à partir de ce qui est écrit sur votre site, mais de ce qui lui est parvenu. Si le contenu se perd entre le serveur et le modèle, toute modification du texte tombe à côté de la cible.
La principale source de pertes est simple. Les sites modernes en React, Vue ou Angular renvoient souvent au navigateur un HTML minimal et des scripts, et le texte n'est assemblé que côté client. L'utilisateur voit une page complète. Un crawler qui n'exécute pas JavaScript récupère `<div id="root"></div>` et rien d'autre.
Des mesures indépendantes le confirment. Dans une étude de Vercel et MERJ de fin 2024, les chercheurs ont analysé le trafic des bots d'OpenAI et d'Anthropic : ceux-ci téléchargeaient les fichiers JavaScript, mais ne les exécutaient pas. Googlebot, lui, rend les pages intégralement. C'est précisément pourquoi un site peut être irréprochable pour la recherche et vide pour une IA.
Où le contenu se perd en chemin
Le trajet entre le site et la réponse du modèle compte plusieurs maillons, et chacun peut casser :
- Rendu : le texte n'apparaît qu'après l'exécution du JS, que le crawler ne lance pas.
- Accès : robots.txt, WAF ou protection antibot bloquent GPTBot, ClaudeBot, PerplexityBot et les bots similaires.
- Contenu masqué : les données clés se trouvent dans des onglets, des accordéons et des fenêtres modales chargés au clic.
- Cache périmé : le modèle s'appuie sur une ancienne copie de la page ou sur des mentions tierces, et non sur le site à jour.
- Structure faible : pas de titres, de balisage schema.org ni de dates de mise à jour permettant de déterminer ce qui est récent.
Il faut par ailleurs distinguer les crawlers d'entraînement des crawlers de recherche. Les premiers collectent des données pour entraîner les modèles, les seconds vont chercher les pages au moment où l'utilisateur pose sa question. Bloquer les premiers ne devrait pas couper l'accès aux seconds. Or, chez la plupart des entreprises, les règles du robots.txt tiennent en une seule ligne qui vise tous les bots à la fois.
Que vérifier et corriger
On peut commencer en quinze minutes, sans prestataire.
1. Ouvrez le code source de la page (view-source) ou lancez un `curl`, et regardez si le texte principal figure dans le HTML. S'il n'y a que des scripts, le problème est identifié. 2. Répétez la requête avec le User-Agent des bots IA. Si le serveur renvoie un 403 ou un captcha, l'accès est fermé au niveau de la protection, et non du contenu. 3. Vérifiez le robots.txt et les règles du CDN : quels bots sont autorisés, et lesquels sont bloqués volontairement. 4. Comparez les réponses de différents modèles à des questions sur l'entreprise, et notez quels faits ils connaissent et lesquels ils confondent.
Si le texte est absent du HTML, la solution passe par le rendu côté serveur (SSR) ou la génération statique (SSG) : Next.js, Nuxt et Astro les gèrent nativement. Pour les anciens projets, un prérendu destiné aux bots connus suffit parfois. Il est ensuite judicieux de placer l'essentiel dans du HTML brut : description du produit, tarifs, contacts, dates de mise à jour. Ajoutez un balisage structuré et maintenez à jour le sitemap, avec un lastmod correct.
Le format llms.txt est parfois présenté comme une solution à part. Mais on dispose encore de peu de données fiables sur son influence réelle sur les réponses des modèles, et il ne faut pas le placer avant l'accessibilité de base du contenu. Il faut d'abord s'assurer que la page est lisible sans navigateur. Tout le reste ne fonctionne qu'après cela.
Executive AI Consulting, Custom Agents & Team Workshops
Work directly with Zhemal Khamidun at hamidun.com — enterprise AI architecture, production RAG & multi-agent systems, and executive training.
L'essentiel de l'IA — une fois par semaine
Sept actus qui ont vraiment compté, choisies à la main. Sans bruit ni communiqués.
C'est fait ! Vérifiez votre boîte mail pour la confirmation.