Les crawlers IA n'exécutent pas JavaScript

Publié le 2026-08-099 min de lectureAI crawlers · JavaScript rendering · server-side rendering · GPTBot

En bref

Les crawlers IA comme GPTBot et ClaudeBot exécutent-ils JavaScript ?

Non. L'analyse conjointe menée par Vercel et MERJ, sur un réseau ayant servi 569 millions de requêtes GPTBot en un seul mois, n'a trouvé aucune preuve que GPTBot, ClaudeBot, PerplexityBot ou le crawler de Meta exécutent JavaScript : ils analysent le HTML brut renvoyé par le serveur et laissent les scripts de côté. Google fait exception, car Gemini hérite de l'infrastructure de rendu de Googlebot. Si votre catalogue paramétrique assemble les données produit côté client, un assistant IA ne voit qu'une coquille vide là où devraient figurer vos spécifications.

La réponse courte

Les crawlers IA n'exécutent pas JavaScript. Lorsque GPTBot, ClaudeBot ou PerplexityBot demande une page, il effectue un simple GET HTTP, récupère les octets renvoyés par le serveur et les analyse comme du texte. Pas de navigateur, pas de construction du DOM, pas d'hydratation, aucune attente de résolution des appels XHR. L'analyse conjointe de Vercel et MERJ, portant sur un réseau ayant servi 569 millions de requêtes GPTBot et 370 millions de requêtes ClaudeBot en un seul mois, n'a trouvé aucune preuve d'exécution de JavaScript par un quelconque crawler IA majeur. Ces crawlers téléchargent bien parfois des fichiers de script — GPTBot a récupéré du JavaScript dans 11,50 % de ses requêtes, ClaudeBot dans 23,84 % — sans jamais les exécuter.

The crawler is not served a worse page. It is served the same page, and cannot execute the step that fills it in.

Google fait exception, et c'est la raison pour laquelle tant d'équipes n'ont pas vu le problème. Googlebot exploite un service de rendu Chromium headless, et Gemini s'appuie sur cette même infrastructure. Un catalogue paramétrique rendu côté client peut donc très bien se positionner dans Google Search tout en étant totalement absent de ChatGPT, Claude et Perplexity. Or ce n'est plus la même audience : l'étude acheteurs 2026 de Forrester montre que 94 % des acheteurs professionnels utilisent désormais l'IA au cours de leur processus d'achat, et Adobe a mesuré une croissance du trafic référé par l'IA vers les sites marchands de 393 % en glissement annuel au T1 2026.

Ce que GPTBot reçoit réellement

Il est utile d'être précis sur les deux documents en jeu, car la plupart des équipes catalogue ne regardent jamais que le second.

Le HTML brut est le flux d'octets que le serveur d'origine écrit dans la réponse. C'est ce qu'affiche curl, ce que montre view-source:, et ce qu'analyse un client HTTP en mode texte seul.

Le DOM rendu est ce qui existe en mémoire une fois que le navigateur a analysé ce HTML, téléchargé et exécuté chaque script, résolu chaque appel fetch() et appliqué chaque mutation. C'est ce qu'affiche l'onglet Éléments des outils de développement de votre navigateur.

Dans un catalogue SPA moderne, ces deux documents n'ont presque rien en commun. Le HTML brut est une coquille : un <div id="root">, un manifeste de préchargement et une centaine de kilo-octets de références vers des bundles. Chaque chaîne de caractères qui compte — référence, boîtier, tolérance, plage de température de fonctionnement, statut RoHS, statut de cycle de vie, stock, palier de prix — arrive plus tard, via un appel API que le crawler n'effectuera jamais.

Un crawler IA voit votre HTML brut et rien d'autre. Si une spécification ne figure pas dans les octets renvoyés par le serveur, cette spécification n'existe pas du point de vue du modèle.

Quels clients effectuent le rendu, et lesquels ne le font pas

ClientOpérateurExécute JavaScriptÀ quoi il sert
GPTBotOpenAINonCollecte de données d'entraînement
OAI-SearchBotOpenAINonIndexation de recherche pour ChatGPT
ChatGPT-UserOpenAINonRécupération en direct pour la question d'un utilisateur
ClaudeBotAnthropicNonCollecte de données d'entraînement
PerplexityBotPerplexityNonIndexation de recherche
Meta-ExternalAgentMetaNonEntraînement et indexation
BytespiderByteDanceNonCollecte de données d'entraînement
GooglebotGoogleOui, Chromium headlessRecherche, et ancrage pour Gemini
ApplebotAppleOui, peut effectuer le rendu dans un navigateurSiri, Spotlight, Safari

Chaque « Non » de ce tableau correspond à un comportement mesuré dans le jeu de données Vercel et MERJ, non à une déduction. Chaque « Oui » est documenté par l'opérateur : Google publie le détail de son pipeline de rendu, et la documentation d'Apple sur son propre crawler indique qu'Applebot « peut effectuer le rendu du contenu de votre site web dans un navigateur ». Les agents plus récents d'Anthropic, Claude-SearchBot et Claude-User, sont postérieurs à l'étude et n'ont pas été mesurés séparément ; aucun opérateur n'a annoncé de pipeline de rendu pour eux depuis.

La conséquence pratique est asymétrique, et pas dans le bon sens. Le rendu est la partie coûteuse du crawl, et les opérateurs qui s'en sont dispensés sont précisément ceux qui se trouvent aujourd'hui entre votre produit et votre acheteur.

Pourquoi les catalogues paramétriques échouent plus lourdement que tout le reste

L'analyse d'Adobe d'avril 2026 a noté la lisibilité machine des pages marchandes et situe les fiches produit à 66 % — le score le plus bas de tous les types de page, derrière les pages d'accueil (75 %), les pages catégorie (74 %) et même les pages FAQ (80 %). Ce classement n'a rien d'un hasard. Les pages qui portent les données les plus structurées, les plus précieuses et les plus déterminantes pour la décision sont celles qui sont construites avec le plus de JavaScript.

Cinq schémas expliquent l'essentiel des dégâts :

  1. 01L'état des filtres vit côté client. Votre sélecteur paramétrique est un composant React qui lit dans un store local. Il n'existe aucune URL rendue côté serveur pour « 0603, 100nF, X7R, 50V » : le crawler n'a donc rien à récupérer, et rien à citer.
  2. 02Le tableau de spécifications est une réponse API. La coquille de la page s'affiche, puis une requête vers /api/product/attributes remplit le tableau. Le crawler s'arrête à la coquille.
  3. 03Le prix et la disponibilité sont délibérément côté client. Cohérent pour la mise en cache. Fatal pour la visibilité machine, car un modèle qui ne voit pas le stock ne recommandera pas la référence.
  4. 04Les onglets et les accordéons diffèrent leur contenu. Fiches techniques, notes d'application, certificats de conformité et liens CAO sont couramment chargés au clic. Or un crawler ne clique jamais.
  5. 05Le défilement infini remplace la pagination. À partir du 51e produit, il n'existe plus aucune URL explorable.

Partsgraph a audité 984 domaines de distributeurs et de fabricants dans le monde — Amérique du Nord, Europe et Asie — en août 2026. Le score médian de visibilité IA s'établit à 50 sur 100, et 70 % de la cohorte obtient la note D ou F. Près de la moitié n'ont pas su servir une seule page de catalogue lisible à un client non-navigateur standard. La distribution de composants électroniques est le segment le plus faible, avec une médiane de 34.

Comment savoir si les crawlers IA peuvent lire mon catalogue ?

Faites le test sur votre propre origine. Tester le site d'un concurrent en usurpant le user-agent d'un crawler produit des faux négatifs, car les solutions anti-bots d'entreprise vérifient les crawlers par IP source et non par la chaîne user-agent — un en-tête usurpé provenant d'une adresse non reconnue déclenche une vérification, quoi que dise le robots.txt.

  1. 01Récupérez le HTML brut. Choisissez votre page produit la plus stratégique.
curl -sS --compressed -o page.html -w "status=%{http_code} bytes=%{size_download}" "https://example.com/products/part-number"
  1. 01Cherchez la référence dans les octets. Pas dans le navigateur — dans le fichier.
grep -c "MPN-12345" page.html

Si la commande renvoie 0, aucun crawler IA ne peut identifier que la page traite de cette référence.

  1. 01Cherchez trois valeurs paramétriques sur lesquelles un ingénieur filtrerait naturellement.
grep -oiE "operating temperature|tolerance|package|rohs|lifecycle" page.html | sort | uniq -c
  1. 01Comptez les blocs de données structurées.
grep -c "application/ld+json" page.html

Zéro signifie qu'il n'existe aucun enregistrement produit lisible par machine. Un ou plus signifie qu'il faut l'extraire et vérifier qu'il porte réellement sku, mpn, gtin, brand, offers et vos entrées additionalProperty essentielles, et pas seulement un fil d'Ariane.

  1. 01Comparez avec la page rendue. Ouvrez la même URL dans un navigateur avec JavaScript désactivé. Ce qui subsiste correspond à peu près à ce qu'obtient un crawler. L'écart entre cela et la page normale, c'est votre part d'invisibilité.
  1. 01Vérifiez tout le parcours, pas une seule page. Répétez l'opération sur une page catégorie, une page de résultats de recherche, un lien vers une fiche technique et un téléchargement CAO. Un crawler capable de lire une page produit mais incapable d'y accéder depuis une liste de catégorie explorable reste bloqué.

Une page conforme fera apparaître la référence des dizaines de fois, affichera les libellés paramétriques sous forme de texte et comportera au moins un bloc JSON-LD. À titre de repère, une page produit bien construite renvoie généralement de 60 à 200 Ko de HTML contenant le tableau de spécifications complet ; une coquille SPA défaillante renvoie de 4 à 15 Ko ne contenant rien d'autre que des références vers des bundles.

Comment corriger cela sans réécrire le site ?

Vous n'avez pas besoin de changer de plateforme. Vous avez besoin que les octets servis par l'origine contiennent les faits. Il existe quatre voies, et elles ne s'excluent pas mutuellement.

ApprocheEffortCe que cela corrigeRisque principal
Rendu côté serveur des routes produitÉlevéTout, durablementCoût du changement de plateforme et risque de régression
Prérendu / rendu dynamiqueMoyenLe contenu du HTML brutObsolescence du cache sur les prix et les stocks
JSON-LD rendu côté serveurFaibleLes faits lisibles par machineIgnoré si le corps de texte reste vide
Miroir Markdown et couche overlayFaibleContenu, documents et accès pour les agentsImpose de maintenir les liens canoniques

Le rendu côté serveur des routes produit et catégorie est la réponse durable. Si vous êtes déjà sur un framework qui le prend en charge, basculer les routes catalogue vers des composants serveur ou vers une génération statique avec revalidation incrémentale se compte généralement en semaines, pas en trimestres, car la couche de données existe déjà — elle est simplement appelée du mauvais côté.

Le prérendu est la solution transitoire honnête. Générez chaque page produit une fois au build ou selon une planification, mettez le HTML en cache en périphérie et servez-le à tout le monde. Servez le même document aux humains et aux machines : présenter aux crawlers une page différente relève à la fois du risque vis-à-vis des politiques en vigueur et, en pratique, de l'échec assuré, puisque le modèle citera la version qu'il aura reçue.

Le JSON-LD rendu côté serveur est le changement au plus fort effet de levier pour le moindre effort. Placez-le dans le HTML émis par le serveur, pas dans un gestionnaire de balises.

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Product",
  "sku": "MPN-12345",
  "mpn": "MPN-12345",
  "name": "100 nF 50 V X7R 0603 ceramic capacitor",
  "brand": { "@type": "Brand", "name": "Example Components" },
  "additionalProperty": [
    { "@type": "PropertyValue", "name": "Capacitance", "value": "100 nF" },
    { "@type": "PropertyValue", "name": "Voltage rating", "value": "50 V" },
    { "@type": "PropertyValue", "name": "Dielectric", "value": "X7R" },
    { "@type": "PropertyValue", "name": "Operating temperature", "value": "-55 to +125 C" }
  ],
  "offers": {
    "@type": "Offer",
    "priceCurrency": "USD",
    "price": "0.042",
    "availability": "https://schema.org/InStock"
  }
}
</script>

Un miroir Markdown est le moyen le moins coûteux de rendre une page non ambiguë. Servez un équivalent en texte brut de chaque page produit à une URL stable et liée depuis le site, avec le tableau de spécifications rendu sous forme de tableau Markdown. Les clients en mode texte seul l'analysent parfaitement, sa génération à partir de la même source de données ne coûte presque rien, et il vous donne une surface machine canonique qui ne dérive pas lorsque le front-end est refondu. À noter : llms.txt n'est pas cela — à ce jour, en 2026, aucun opérateur IA majeur ne s'est engagé à le lire, et l'équipe Search Relations de Google a explicitement refusé de le cautionner. Les miroirs fonctionnent parce que ce sont des pages ordinaires, accessibles par un lien.

Une couche overlay place tout ce qui précède devant le site existant plutôt qu'à l'intérieur. Un service sidecar ou un worker en périphérie sert, sur votre propre domaine, des pages rendues côté serveur et lisibles par les agents, du JSON-LD, des miroirs Markdown et un endpoint MCP hébergé, en lisant dans votre PIM existant. Rien ne change sur le site destiné aux clients. C'est l'approche retenue par Partsgraph, et c'est aussi ce qu'un nombre croissant de fabricants développent en interne : Microchip a mis en ligne en novembre 2025 un serveur MCP public et gratuit pour ses données produit, et TrustedParts, de l'ECIA, a lancé un service d'agent IA d'inventaire en juin 2026.

Par où commencer, dans l'ordre

  1. 01Appliquez le test en six étapes ci-dessus à vos dix meilleurs produits et relevez le nombre d'octets.
  2. 02Faites générer le JSON-LD côté serveur sur les pages produit. C'est le plus petit changement au plus grand effet mesurable.
  3. 03Faites en sorte que chaque spécification, chaque lien de fiche technique et chaque lien CAO soit présent dans le HTML initial, même si la version interactive reste côté client.
  4. 04Donnez à chaque combinaison de filtres paramétriques qui compte une véritable URL explorable et rendue côté serveur.
  5. 05Publiez un miroir Markdown par produit et liez-le depuis la page.
  6. 06Ensuite seulement, préoccupez-vous du positionnement, des prompts et de la part de citations. La récupération précède la citation : il n'y a rien à optimiser tant que le contenu n'existe pas dans le corps de la réponse.

Le mécanisme n'a ici rien de subtil et ne fait pas débat. Un modèle ne peut citer que ce qu'il a reçu, et ce qu'il a reçu, c'est votre HTML brut. Tout le reste est une étape de rendu qui n'a jamais eu lieu.

Vous voulez savoir où en est votre catalogue ? L'outil gratuit d'évaluation de la visibilité IA de Partsgraph applique les vérifications de cet article à votre propre domaine, sur [/audit](/audit).

Questions fréquentes

GPTBot effectue-t-il le rendu du JavaScript ?

Non. Vercel et MERJ ont constaté que GPTBot télécharge des fichiers JavaScript dans environ 11,5 % de ses requêtes, mais ne les exécute jamais. Il extrait le contenu du HTML que le serveur renvoie dans la réponse initiale. Tout ce que votre bundle injecte dans le DOM après le chargement lui est invisible.

Pourquoi Google voit-il mon application monopage alors que ChatGPT en est incapable ?

Googlebot exploite un service de rendu Chromium headless : il exécute donc votre JavaScript et indexe le DOM obtenu. Gemini s'appuie sur cette même infrastructure. OpenAI, Anthropic et Perplexity, eux, utilisent de simples clients HTTP dépourvus de moteur de navigateur : une même page peut donc être bien positionnée sur Google et totalement absente d'une réponse IA.

Le prérendu ou le rendu dynamique règlent-ils le problème ?

C'est possible, et il s'agit d'une solution transitoire légitime pour un catalogue que vous ne pouvez pas migrer rapidement. Les risques sont l'obsolescence du cache sur les prix et les stocks, et le fait de servir aux crawlers une page sensiblement différente de celle que reçoivent les utilisateurs. Gardez le HTML prérendu sémantiquement identique à la page rendue et fixez une fenêtre de revalidation courte sur les champs volatils.

Le JSON-LD suffit-il à lui seul ?

Uniquement s'il figure dans le HTML renvoyé par le serveur. Un JSON-LD injecté par un gestionnaire de balises ou par un script côté client arrive après que le crawler a terminé. Faites générer la balise script côté serveur, et considérez le JSON-LD comme un complément au corps de texte lisible, non comme un substitut.

Comment tester cela moi-même en moins d'une minute ?

Lancez curl sur une URL produit avec la compression activée, enregistrez la réponse, puis faites un grep sur les octets bruts pour y chercher votre référence et deux ou trois valeurs paramétriques. Si elles sont absentes du fichier mais visibles dans le navigateur, c'est JavaScript qui les construit et aucun crawler IA ne les verra jamais.

Les crawlers IA respectent-ils mon sitemap ?

Ils l'utilisent de façon inconstante. Vercel et MERJ ont mesuré que 34,82 % des requêtes de ChatGPT aboutissaient à des 404, contre 8,22 % pour Googlebot, ce qui suggère une découverte de liens à partir de sources obsolètes plutôt qu'un parcours discipliné du sitemap. Un sitemap exact, avec des valeurs lastmod correctes, aide, mais il ne compensera pas des pages qui ne renvoient aucun contenu.

Cela vaut-il aussi pour les téléchargements CAO, BIM et de fiches techniques ?

Oui, et de façon encore plus marquée. Si un lien de téléchargement est généré par JavaScript, se cache derrière une page intermédiaire ou passe par une URL signée à durée de vie courte, un client non-navigateur ne peut tout simplement pas le suivre. Autant dire que le document n'existe pas.

Sources

  1. 01Vercel and MERJ, The rise of the AI crawler, December 2024
  2. 02Adobe Digital Insights, AI traffic and retail machine-readability, April 2026
  3. 03eCommerceNews, Adobe machine-readability scores by page type, April 2026
  4. 04TechCrunch, AI traffic to US retailers rose 393% in Q1, April 2026
  5. 05Forrester, The State Of Business Buying, 2026 (January 2026)
  6. 06Google Search Central, Google crawlers and user agents
  7. 07OpenAI, Overview of OpenAI crawlers
  8. 08Anthropic, Does Anthropic crawl data from the web?
  9. 09Apple Support, About Applebot
  10. 10Microchip Technology, MCP Server press release, November 2025
  11. 11ECIA, TrustedParts.com launches Inventory AI Agent Service, June 2026
  12. 12Search Engine Journal, Google says llms.txt is speculative for now
Lancez-le sur votre propre catalogue

Voyez exactement ce que les assistants IA peuvent lire — ou non — de vos produits aujourd'hui : politique d'accès des crawlers, couverture du catalogue, accès aux fiches techniques. Le tout noté et comparé à 984 distributeurs et fabricants dans le monde.

Évaluer mon catalogue

Notes de terrain associées