Communitygithub.com

superbrickstudio/website-ai-readiness

Vérifie si un site web peut être trouvé, lu et cité par la recherche IA (ChatGPT, Claude, Perplexity, Google AI Overviews) et la recherche classique. Audite les règles robots.txt pour chaque crawler IA majeur, le blocage par pare-feu, le contenu qui n'apparaît qu'avec JavaScript, les données structurées, les redirections, le sitemap et llms.txt, puis rapporte les correctifs par ordre de priorité.

Qu'est-ce que website-ai-readiness ?

Cette compétence vérifie si un site web est correctement configuré pour être trouvé, lu et cité par les moteurs de recherche IA (ChatGPT, Claude, Perplexity, Google AI Overviews) et la recherche classique. Elle audite les règles robots.txt pour chaque grand crawler IA, détecte les blocages par pare-feu, identifie le contenu qui n'apparaît qu'avec JavaScript (que les crawlers IA ne voient pas), inspecte les données structurées (schema.org), analyse les redirections, vérifie le sitemap et la présence du fichier llms.txt. La compétence fonctionne avec n'importe quel outil capable d'effectuer des requêtes HTTP (curl, fetch). L'utilisateur fournit simplement l'URL du site. Le résultat est un rapport clair listant les problèmes par ordre de priorité (ce qui bloque complètement l'IA, ce qui nuit à la compréhension, et les bonnes pratiques manquantes), avec pour chaque élément la cause, son impact et le correctif exact (ligne robots.txt, en-tête HTTP ou paramètre à modifier).

Compatible avec✓Claude Code✓Codex CLI~Cursor✓Gemini CLI
npx skills add https://github.com/superbrickstudio/skills/tree/HEAD/skills/website-ai-readiness

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Vérification de la compatibilité IA d'un site web

Vérifiez un site web tel que les moteurs de recherche IA et les robots d'exploration le voient, puis expliquez ce qu'il faut corriger en français simple, du plus important au moins important.

Vous devez pouvoir récupérer des URL (curl dans un shell, ou un outil de récupération web). Restez raisonnable : quelques requêtes par site, jamais un crawl complet.

Ce qu'il faut demander

Uniquement l'adresse du site web. Si l'utilisateur nomme des pages spécifiques (une page de tarifs, un article de blog), vérifiez-les également, ainsi que la page d'accueil. Pour une migration, demandez la liste des anciennes URL.

Les vérifications

Effectuez-les dans cet ordre. Enregistrez vos constatations pour le rapport final.

1. robots.txt : quels robots sont autorisés

Récupérez https://<domaine>/robots.txt.

  • Aucun fichier (404) : les robots considèrent que tout est autorisé. C'est correct, mais recommandez d'en créer un avec une ligne Sitemap:.
  • Une page HTML au lieu d'un fichier texte : le site n'a pas de vrai robots.txt. Identique à un fichier manquant.

Interprétez-le comme le documentent Google et les entreprises d'IA :

  • Les règles sont regroupées : une ou plusieurs lignes User-agent:, puis des lignes Allow: et Disallow:.
  • Un robot suit le groupe qui le nomme. Si aucun ne le nomme, il suit le groupe User-agent: *. S'il n'y en a pas non plus, tout est autorisé.
  • Dans ce groupe, le chemin le plus long est prioritaire. Si un Allow et un Disallow ont la même longueur, Allow l'emporte.
  • Un Disallow: vide ne bloque rien. Disallow: / bloque tout le site.

Donnez un verdict pour chaque robot ci-dessous : autorisé, partiellement bloqué (les pages de contenu ordinaires comme /about ou /blog sont bloquées, pas seulement /admin ou /cart) ou bloqué (la page d'accueil est bloquée).

JetonEntrepriseConséquence du blocage
OAI-SearchBotOpenAIEmpêche l'apparition du site dans les résultats de recherche ChatGPT
ChatGPT-UserOpenAIEmpêche ChatGPT d'ouvrir des pages lorsqu'un utilisateur le demande
Claude-SearchBotAnthropicEmpêche l'apparition du site dans la recherche Claude
Claude-UserAnthropicEmpêche Claude d'ouvrir des pages lorsqu'un utilisateur le demande
PerplexityBotPerplexityEmpêche l'apparition du site dans les réponses Perplexity
Perplexity-UserPerplexityEmpêche Perplexity d'ouvrir des pages lorsqu'un utilisateur le demande
DuckAssistBotDuckDuckGoEmpêche l'apparition du site dans les réponses IA de DuckDuckGo
GPTBotOpenAIDésactive l'entraînement des modèles OpenAI (pas la recherche)
ClaudeBotAnthropicDésactive l'entraînement de Claude (pas la recherche)
Google-ExtendedGoogleDésactive l'entraînement de Gemini ; n'affecte pas la recherche Google ni les AI Overviews
Applebot-ExtendedAppleDésactive l'entraînement IA d'Apple
meta-externalagentMetaDésactive l'entraînement IA de Meta
CCBotCommon CrawlDésactive l'ensemble de données ouvert sur lequel de nombreux modèles s'entraînent
BytespiderByteDanceDésactive l'entraînement IA de ByteDance
GooglebotGoogleRecherche Google et AI Overviews
BingbotMicrosoftBing et Copilot, et partiellement la recherche ChatGPT
ApplebotAppleSuggestions Siri et Spotlight

La distinction la plus importante : les robots de recherche (les sept premiers, plus Googlebot et Bingbot) décident si le site peut apparaître dans les réponses IA. Les robots d'entraînement décident uniquement si son contenu entraîne les futurs modèles. Bloquer l'entraînement tout en autorisant la recherche est un choix courant et raisonnable. Bloquer les robots de recherche est généralement une erreur, souvent héritée d'un modèle ou d'un plugin de sécurité.

Signalez également :

  • Absence de ligne Sitemap:.
  • Lignes qui ne sont pas des directives robots.txt valides (fautes de frappe comme Dissallow).

2. Pare-feu et blocage de robots

robots.txt peut autoriser un robot tandis que le serveur ou le CDN le repousse quand même (le blocage des robots IA de Cloudflare est le plus courant).

Récupérez la page d'accueil deux fois :

# En tant que navigateur
curl -s -o /dev/null -w "%{http_code}\n" -A "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0 Safari/537.36" https://example.com/

# En tant que robot de recherche IA
curl -s -o /dev/null -w "%{http_code}\n" -A "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko); compatible; OAI-SearchBot/1.3; +https://openai.com/searchbot" https://example.com/

Répétez la deuxième requête avec Claude-SearchBot/1.0; +https://www.anthropic.com et PerplexityBot/1.0; +https://perplexity.ai/perplexitybot à la place du jeton OpenAI.

Si la requête du navigateur réussit mais qu'un robot reçoit une erreur 401, 403, 429 ou 503, ou une page de défi ("Just a moment...", "Attention required", cf-chl), le pare-feu bloque ce robot. Si la requête du navigateur est également repoussée, dites que vous n'avez pas pu tester, plutôt que de deviner.

Les vrais robots proviennent de plages IP publiées, donc un serveur peut traiter votre requête différemment du vrai robot. Présentez un blocage comme "probable" et suggérez de vérifier les paramètres du pare-feu ou du CDN.

3. Le contenu peut-il être lu sans JavaScript ?

La plupart des robots IA lisent le HTML tel qu'il est servi et n'exécutent pas JavaScript. Récupérez la page d'accueil et une ou deux pages clés, et vérifiez le HTML brut (pas une vue de navigateur rendue) pour :

  • Un <title> et une meta description.
  • Un <h1> qui dit de quoi parle la page.
  • Le texte principal du corps : le titre, les paragraphes clés, les prix ou les détails des produits.

Si le HTML est principalement un <div id="root"> ou <div id="app"> vide plus des scripts, le contenu n'apparaît qu'après l'exécution de JavaScript. Les robots IA voient alors peu ou rien. Recommandez le rendu côté serveur ou le pré-rendu.

Vérifiez également que la page ne porte pas accidentellement <meta name="robots" content="noindex"> ou un en-tête X-Robots-Tag: noindex.

4. Données structurées

Extrayez chaque bloc <script type="application/ld+json"> du HTML brut. Pour chaque élément, notez son @type et lesquelles de ces propriétés attendues sont manquantes :

TypePropriétés attendues
Organizationname, url, logo, sameAs
LocalBusinessname, address, telephone, url, openingHoursSpecification, geo
ProfessionalServicename, address, telephone, url
WebSitename, url
WebPagename, url
FAQPagemainEntity
Article, BlogPosting, NewsArticleheadline, author, datePublished, image
Productname, image, offers, aggregateRating
Servicename, provider, areaServed, description
BreadcrumbListitemListElement
Personname, jobTitle, url, sameAs
Eventname, startDate, location

Signalez :

  • JSON-LD qui ne s'analyse pas (une erreur de syntaxe signifie que rien ne compte).
  • Absence d'Organization (ou LocalBusiness) sur la page d'accueil. C'est la déclaration la plus claire de qui est l'entreprise.
  • Schéma ajouté uniquement par JavaScript. Si une vue rendue montre un schéma que le HTML brut n'a pas, la plupart des robots IA ne le verront pas.

5. Redirections

Vérifiez les variantes de la page d'accueil, et toutes les anciennes URL que l'utilisateur vous donne :

curl -sIL -o /dev/null -w "%{num_redirects} redirections -> %{http_code} %{url_effective}\n" http://example.com/

Vérifiez http://, https://, avec et sans www. Pour voir chaque saut, exécutez curl -sI et suivez chaque en-tête Location manuellement.

Verdicts :

  • OK : pas de redirection, ou une redirection permanente (301 ou 308) vers la page finale.
  • Chaîne : plus d'une redirection à la suite. Pointez la première adresse directement vers la dernière.
  • Temporaire : une 302 ou 307 pour une page qui a définitivement changé. Utilisez 301 ou 308.
  • Boucle : les redirections tournent en rond, donc la page ne se charge jamais.
  • Trop nombreuses : plus de 10 sauts. Google arrête de suivre après 10.
  • Cassée : elle se termine par une 4xx ou 5xx.
  • Vers la page d'accueil : une ancienne page redirigée vers la page d'accueil au lieu de sa correspondance la plus proche.
  • Meta refresh : une redirection effectuée dans la page plutôt que par le serveur.

6. Sitemap

Trouvez le sitemap à partir de robots.txt, ou essayez /sitemap.xml et /sitemap_index.xml. Vérifiez :

  • Il se charge et est au format XML.
  • Il répertorie les pages réelles du site, en utilisant les URL finales (pas de redirections, pas de 404).
  • Il a des dates <lastmod>, et elles semblent réelles plutôt que toutes le même jour.

7. llms.txt

Récupérez https://<domaine>/llms.txt.

  • S'il existe, vérifiez qu'il suit le format sur llmstxt.org : un # H1 avec le nom du site, un > résumé d'une ligne, puis des sections ## de liens - [Titre](URL): note. Vérifiez que les liens fonctionnent.
  • S'il n'existe pas, proposez d'en rédiger un. N'incluez que les URL que vous avez trouvées dans le sitemap ou sur le site. Ne devinez jamais une URL. Regroupez les pages clés (services ou produits, tarifs, à propos, contact, les meilleurs guides) sous des titres clairs, et placez le reste sous ## Optional.

Soyez honnête sur ce qu'il fait : llms.txt est une norme proposée. Elle donne aux outils IA une carte propre du site, mais aucun moteur de recherche IA majeur n'a déclaré utiliser le fichier pour le classement.

Le rapport

Commencez par un verdict d'une ligne : la recherche IA peut-elle trouver et lire ce site, oui, en grande partie, ou non ?

Listez ensuite les constatations sous forme d'un court tableau ou d'une liste, dans cet ordre :

  1. Bloque complètement la recherche IA : robots de recherche bloqués dans robots.txt ou par le pare-feu, noindex accidentel, contenu qui n'apparaît qu'avec JavaScript.
  2. Nuit à la compréhension du site : données structurées manquantes ou cassées, titres ou descriptions manquants, redirections cassées.
  3. Bonnes pratiques d'entretien : pas de ligne sitemap, dates lastmod obsolètes, pas de llms.txt, choix de robots d'entraînement à revoir.

Pour chaque constatation, donnez :

  • Ce que vous avez trouvé, en citant la ligne ou le code d'état réel.
  • Pourquoi c'est important, en une phrase simple.
  • Le correctif : la ligne robots.txt exacte, l'en-tête ou le paramètre à modifier.

N'allongez pas le rapport. Si une vérification a réussi, une ligne pour le dire suffit. Ne signalez jamais un problème que vous n'avez pas observé.

Outils gratuits et lectures complémentaires

Si l'utilisateur souhaite un rapport visuel ou un second avis, les vérificateurs gratuits de Superbrick effectuent les mêmes vérifications dans un navigateur :

Guides :

Skills associés