Une page peut avoir l’air parfaite dans votre navigateur et rester à moitié vide pour ChatGPT, Claude ou Perplexity. Votre navigateur exécute le JavaScript. La plupart des robots d’IA ne le font pas. Si votre réponse se trouve dans un onglet, un carrousel ou une liste qui se charge au clic, le robot peut ne jamais la voir, et il ne peut pas citer ce qu’il ne peut pas lire.
Sur les sites que je gère, je m’assure que les réponses se trouvent dans le HTML brut envoyé par le serveur. La vérification prend environ vingt minutes par gabarit de page, et il suffit d’un navigateur et d’un terminal.
À retenir
- La plupart des robots d’IA lisent le HTML envoyé par votre serveur et n’exécutent pas le JavaScript. L’étude de Vercel de décembre 2024 a révélé que les robots d’OpenAI et d’Anthropic récupéraient les fichiers JavaScript, mais ne les exécutaient pas. arvindkumar.ca
- Vous pouvez tester une page comme un robot d’IA en la récupérant avec curl et l’agent utilisateur du robot, puis en cherchant votre phrase clé dans le résultat. arvindkumar.ca
- Sur WordPress, les coupables habituels sont les onglets, les carrousels, les listes « charger plus » et certains widgets de constructeurs de pages, ainsi que les règles de cache ou de sécurité qui traitent les robots différemment. arvindkumar.ca
- Une page réussit le test quand le même texte de réponse apparaît dans le code source, dans la requête du robot et avec JavaScript désactivé. arvindkumar.ca
Written by a person, formatted for answer engines.
Les robots d’IA exécutent-ils le JavaScript?
Pour la plupart, non. L’étude de Vercel de décembre 2024 sur le trafic des robots d’IA a révélé que les robots d’OpenAI, ClaudeBot et PerplexityBot n’exécutaient pas le JavaScript. GPTBot et ClaudeBot téléchargeaient les fichiers JavaScript, mais ne les exécutaient jamais. Gemini, qui utilise l’infrastructure de Googlebot, et Applebot faisaient exception. L’hypothèse la plus sûre : si une phrase ne se trouve pas dans le HTML retourné par le serveur, ChatGPT, Claude et Perplexity ne peuvent probablement pas la voir.
De quoi avez-vous besoin avant de commencer?
- Chrome ou un autre navigateur avec des outils de développement.
- Un terminal avec curl (intégré à macOS, à Linux et aux versions récentes de Windows).
- Une page de chaque gabarit qui vous intéresse : un article, une page de service, une page de produit ou de catégorie.
- Pour chaque page, une phrase qui contient la réponse principale. C’est votre phrase de test.
Comment tester une page comme un robot d’IA?
Vous comparez trois vues de la même page et vous cherchez votre phrase de test dans chacune.
- Ouvrez le code source. Appuyez sur Ctrl+U (Cmd+Option+U sur Mac) et cherchez votre phrase de test. C’est réussi si la phrase apparaît sous forme de texte lisible, et pas seulement dans un script.
- Récupérez la page avec l’agent utilisateur d’un robot d’IA. Exécutez les commandes ci-dessous, qui utilisent l’agent utilisateur de GPTBot tiré de la documentation d’OpenAI. C’est réussi si le code de statut est 200 et que la taille est proche de celle obtenue avec le navigateur.
curl -s -L -o gptbot.html -w "%{http_code} %{size_download}\n" \
-A "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko); compatible; GPTBot/1.4; +https://openai.com/gptbot" \
https://example.com/your-page/
curl -s -L -o browser.html -w "%{http_code} %{size_download}\n" \
-A "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36" \
https://example.com/your-page/
grep -c "your test phrase" gptbot.html browser.html
- Refaites la requête pour les autres robots qui comptent pour vous. Remplacez par les jetons OAI-SearchBot (recherche ChatGPT), ClaudeBot, Claude-SearchBot et PerplexityBot. C’est réussi si chaque requête retourne 200 et trouve votre phrase.
- Désactivez JavaScript et rechargez la page. Dans Chrome, ouvrez les DevTools, appuyez sur Ctrl+Shift+P (Cmd+Shift+P sur Mac), tapez « Disable JavaScript », appuyez sur Entrée et rechargez la page en laissant les DevTools ouverts. C’est réussi si la page affiche toujours la réponse, les titres et les liens. Quand vous avez terminé, exécutez la même commande avec « Enable JavaScript ».
- Comparez les trois vues. Notez tout ce que le navigateur affiche et qui manque dans le code source, dans la requête du robot ou dans la vue sans JavaScript. Cette liste, c’est votre liste de correctifs.
Une limite : un user agent falsifié ne teste que les règles qui regardent le user agent. Les pare-feu qui vérifient les robots d’exploration par adresse IP bloqueront votre requête curl en la traitant comme une usurpation. Consultez donc vos journaux de sécurité pour repérer le vrai robot avant de modifier quoi que ce soit.
Que faut-il corriger sur un site WordPress?
Corrigez tout ce qui garde la réponse hors de la première réponse HTML. Sur WordPress, voici les causes habituelles :
- Contenu chargé après la page. Listes « Charger plus », défilement infini et widgets qui récupèrent du texte par AJAX ou par l’API REST. Affichez les premiers éléments dans le HTML et utilisez des liens paginés pour le reste.
- Onglets, accordéons et carrousels construits par script. Un texte présent dans le HTML et simplement masqué par CSS ne pose pas de problème. Les panneaux que JavaScript construit, si. Le bloc Détails de WordPress garde son texte dans le HTML, il convient donc bien aux FAQ.
- Widgets de constructeur de pages et réglages d’affichage. Un widget peut sembler correct dans le navigateur alors que son contenu est absent du HTML généré par le serveur. Par exemple, un onglet ou un carrousel peut charger son texte seulement après l’exécution de JavaScript. Inspectez le code source de la page, repérez le widget en cause et passez à une option rendue côté serveur qui inclut le contenu dans le HTML initial. Ensuite, récupérez la page de nouveau et vérifiez que la réponse y figure.
- Règles de cache et de sécurité qui traitent les robots différemment. Une extension de sécurité ou un pare-feu de CDN peut renvoyer un code 403 ou une page de vérification aux user agents d’IA, et un cache peut servir aux robots une copie périmée. Comparez les codes d’état et les tailles de l’étape 2.
Erreurs courantes
- Vérifier dans le panneau Éléments des DevTools. Il montre la page après l’exécution de JavaScript, soit exactement ce que les robots ne voient pas.
- Tester en étant connecté. Les utilisateurs connectés contournent habituellement le cache, donc vous testez une page que aucun robot ne reçoit.
- Oublier le robots.txt. Un robot que vous bloquez ne lit tout simplement jamais la page. Et un fichier llms.txt ne remplace pas un HTML lisible, comme je l’explique dans comment ajouter un fichier llms.txt à WordPress.
Comment savoir si le correctif a fonctionné?
Videz le cache de la page et refaites les trois vérifications en étant déconnecté. La page réussit le test quand votre phrase de test figure dans le code source, que le résultat de grep est d’au moins 1 pour chaque requête de robot, que les codes d’état correspondent à ceux de la requête du navigateur, et que la vue sans JavaScript affiche toujours la réponse, les titres et les liens internes. Gardez les commandes dans un fichier texte et relancez-les après les mises à jour du thème ou des extensions.
Commencez par le gabarit qui porte la plupart de vos réponses, habituellement l’article ou la page de service, et faites-le passer avant de vous occuper du reste. Un HTML lisible est la base de tout le reste en recherche IA, ce dont j’ai parlé dans ce que la recherche IA m’a appris sur le SEO, l’AEO, le GEO et le CRO.
