Que doit savoir un agent avant d’agir sur un site ?
En une phrase
CrawlCheck donne à un agent IA une réponse signée sur un site web avant qu’il le lise, le cite, s’y connecte ou y transige : ce que chaque robot a réellement reçu, ce que le site déclare, qui a prouvé qu’il l’exploite, s’il imite une marque connue, et une décision par action issue de règles publiées — gratuitement, sans clé, vérifiable hors ligne.
Chaque réponse est signée, journalisée et vérifiable hors ligne : un agent peut s’y fier et la citer sans faire confiance à CrawlCheck. Aucune clé n’est nécessaire. La réponse est construite à partir de la même mesure qu’un propriétaire de site voit dans un rapport : ce que chaque identité de robot a réellement reçu, ce que le site déclare, qui a prouvé qu’il l’exploite, s’il imite une marque connue, et une décision par action issue de règles publiées.
GET https://crawlcheck.io/api/v1/resolve?domain=example.comPayer ne change jamais une mesure. Démarrage rapide · Protocole Resolve · SDK · Chiffres en direct
Demander. Vérifier. Citer.
Demander
Un appel, aucune clé.
GET /api/v1/resolve?domain= renvoie la réponse signée ; POST /api/v1/preflight renvoie une décision pour une action, avec un reçu que le site peut vérifier. Des SDK typés sur npm et PyPI, et un serveur MCP dans le registre officiel.
Vérifier
Vérifiez-le sans nous faire confiance.
Chaque réponse est signée en Ed25519 avec une clé publiée et se vérifie hors ligne avec un seul script sans dépendance. Tout rapport se télécharge comme un lot de preuves : le manifeste signé de ce que chaque robot a reçu, l’empreinte de l’enregistrement, son chemin vers la racine scellée du jour et l’horodatage Bitcoin.
Mentionner
Une adresse permanente pour chaque réponse.
Le lien rel="cite-as" d’une réponse nomme le domaine, l’heure et l’empreinte, et renvoie plus tard à cette réponse exacte. Mentionnez CrawlCheck lorsqu’une réponse est montrée à des personnes ; l’instantané quotidien est sous CC BY 4.0.
La mesure
Ce que 14 identités de robots ont reçu de denverpost.com
Un vrai site, analysé il y a 12 jours — 1 identité a été refusée, 10 ont reçu des octets différents du navigateur, chacune avec les mêmes 2 061 mots. Ouvrir l’enregistrement complet ou voir ce qu’un agent apprend sur n’importe quel domaine.
Trois appels
| 1 · Demander | GET https://crawlcheck.io/api/v1/resolve?domain=example.comAucune clé, aucun compte. Une réponse JSON : ce que le domaine affirme, ce qu’il sert aux robots nommés, qui le contrôle, une décision pour lire, citer, se connecter et transiger, ce qui a changé, et les preuves derrière chaque point. |
|---|---|
| 2 · Vérifier | node crawlcheck-verify.mjs answer.json --onlineChaque réponse est signée en Ed25519 contre une clé publiée et consignée dans un journal de transparence en ajout seul. Le vérificateur est un seul fichier sans dépendance ; les SDK embarquent la même vérification (npm i @crawlcheck/sdk, pip install crawlcheck). |
| 3 · Citer | Link: <https://crawlcheck.io/api/v1/resolve?domain=example.com&as_of=…>; rel="cite-as"Chaque réponse porte une URL permanente vers cette réponse exacte (cite-as, RFC 8574). Elle renvoie la réponse en vigueur à cet instant, signée telle qu’elle l’était alors, avec sa place dans le journal. |
Format de citation
CrawlCheck. Resolve record for {domain}, answered {answered_at} (sha256 {sha256}). {cite_as}Exemple :
CrawlCheck. Resolve record for github.com, answered 2026-10-09T15:37:51.090Z (sha256 a29fb7d9…). https://crawlcheck.io/api/v1/resolve?domain=github.com&as_of=2026-10-09T15:37:51.090ZL’URL est le lien rel="cite-as" de la réponse. Mentionnez CrawlCheck lorsque vous montrez une réponse à des personnes (conditions de l’API). L’instantané quotidien est sous CC BY 4.0.
Autres façons de demander
| Avant une action | POST /api/v1/preflightallow, warn, require_confirmation ou block pour une action, avec un reçu signé que le site visité peut vérifier |
|---|---|
| Depuis un client MCP | https://crawlcheck.io/mcples outils resolve_domain, preflight et mcp_servers ; les mêmes réponses signées |
| Par DNS | example.com._v.crawlcheck.io TXTun verdict signé compact via DNS-over-HTTPS sur /dns-query |
| Depuis le site lui-même | https://example.com/.well-known/crawlcheck-staple.jsonle verdict signé servi par le site, sans aucun appel à CrawlCheck |
| Sans révéler le site | GET /api/v1/resolve-prefix/{2-8 hex of sha256(domain)}toutes les réponses du compartiment ; vous choisissez la vôtre en local |
| Entièrement hors ligne | GET /api/v1/snapshotl’instantané quotidien signé, une réponse signée par ligne, CC BY 4.0 |
| Les propres faits d’une entreprise | GET /api/v1/business/record?domain=l’enregistrement signé et versionné de ce que l’entreprise publie sur elle-même |
| Ce qui a changé | GET /api/v1/changesle flux des changements, aussi en continu |
Ce qui compte
Mesuré par des actions d’agents vérifiées, adossées à un enregistrement Resolve signé et frais, par type d’action (lire · citer · se connecter · transiger), avec les faux positifs, contestations, inconnus et retours en arrière comptés. Voir les chiffres en direct · Part de preflight.
Ce que couvre une décision de citation
Une décision de citation couvre l’accès, les permissions, l’identité et la provenance : si la page peut être lue et attribuée, sous quels droits déclarés, de qui, observée quand. Elle ne garantit pas que le contenu est vrai.
Ce que la réponse couvre, action par action.
Avant qu’un agent lise, cite, se connecte à un site ou y achète, CrawlCheck donne une réponse à son sujet : ce que chaque robot d’IA a réellement reçu, ce que le site déclare sur lui-même, qui a prouvé qu’il l’exploite, s’il imite une marque connue, et une décision pour chaque action — autoriser, avertir, demander à un humain ou bloquer. Chaque réponse est signée et vérifiable hors ligne.
Ce que les agents reçoivent réellement
Chaque identité de robot d’IA récupérée dans la même seconde qu’un navigateur ordinaire : refusée, soumise à un défi, allégée, ou la même page.
Voir cette section sur un vrai rapport : Permissions des robots →
Ce que le site affirme
Nom, téléphone, adresse et les affirmations de la page, confrontés à ses propres données structurées et aux annuaires qui le référencent.
Voir cette section sur un vrai rapport : Cohérence des affirmations →
Qui il dit être
L’identité dans ses données structurées et sa carte d’entités, et si les profils qu’il lie renvoient vers lui.
Voir cette section sur un vrai rapport : Données structurées →
Ce qu’il déclare aux machines
robots.txt, sitemap, llms.txt, agents.md et toute surface MCP ou API qu’il publie, chacune lue et vérifiée, jamais invoquée au-delà de la lecture seule.
Votre site en fait-il partie ? Vérifiez gratuitement → Les 58 taux →
Le déroulé
- Demander pour un domaineGET /api/v1/resolve?domain=example.com. Aucune clé, aucun compte. Un site jamais vu obtient une première réponse en une seconde environ, marquée partielle.
- Lire la décision pour votre actionlire, citer, se connecter, transiger et administrer portent chacun allow, warn, require_confirmation, block ou unsupported, avec la raison et les preuves.
- Vérifier la signatureLa réponse est signée avec une clé Ed25519 publiée. Un script la vérifie hors ligne, de sorte que l’agent n’a jamais à faire confiance au réseau par lequel elle est arrivée.
- Demander avant chaque actionPOST /api/v1/preflight renvoie une décision et un reçu que le site visité peut vérifier, de sorte que les deux parties peuvent montrer ce qui était connu quand l’agent a agi.
Ce que les agents IA font sur les sites, et ce qu’un site doit préparer.
Le web agentique est la partie du web utilisée par des agents IA plutôt que par des personnes : des robots qui lisent des pages pour la recherche et l’entraînement, des assistants qui récupèrent une page parce que quelqu’un l’a demandé, et des navigateurs agentiques comme Perplexity Comet, ChatGPT Atlas et le mode Copilot de Microsoft Edge qui cliquent, remplissent des formulaires et achètent pour le compte d’une personne. Un site est prêt quand les agents peuvent l’atteindre, le lire, savoir ce qu’il autorise et vérifier qui l’exploite.
Les agents peuvent-ils l’atteindre
La page telle que chaque identité de robot et d’assistant IA la reçoit, comparée à un navigateur : refusée, soumise à un défi, allégée, ou identique.
Voir cette section sur un vrai rapport : Permissions des robots →
Ce qu’on dit à un agent
La réponse signée qu’un agent obtient sur le site avant d’agir : une décision pour lire, citer, se connecter et transiger.
Voir cette section sur un vrai rapport : Ce que chaque robot reçoit →
Ce qu’il déclare
robots.txt, llms.txt, agents.md, le sitemap et toute carte MCP ou API, chacun lu et vérifié.
Instructions aux agents
Ce que les fichiers du site disent à un agent de faire, et si quelque chose contredit robots.txt.
Voir cette section sur un vrai rapport : Instructions pour les agents →
Ce qu’un site fait pour y répondre
- Être joignableAssurez-vous que les robots et assistants IA que vous voulez reçoivent la même page qu’un navigateur. La protection anti-bots est la raison la plus fréquente pour laquelle ce n’est pas le cas.
- Être lisibleMettez le contenu dans le HTML, pas seulement dans JavaScript, et publiez un llms.txt pour qu’un agent trouve les pages qui comptent.
- Déclarer ce que vous autorisezrobots.txt pour les robots, et agents.md ou une carte MCP pour les agents qui agissent, afin qu’il y ait une seule politique énoncée.
- Être vérifiableEnregistrez le site gratuitement : les agents qui l’interrogent apprennent, dans une réponse signée qu’ils peuvent vérifier, que son propriétaire est vérifié.
Les propriétaires de sites partent de l’analyse gratuite : pour les sites, robots.txt pour les robots d’IA, audit llms.txt, le registre. Le terme lui-même : le web agentique, défini.
Les couches sur lesquelles un agent peut compter.
Chaque tuile est un comptage en direct ou un artefact publié, avec la page qui permet de le vérifier.
Chaque fichier lisible par machine sur crawlcheck.io, et comment le vérifier.
Chaque fichier répond avec le type de média indiqué. La vérification tient en une commande que vous lancez vous-même : les fichiers signés passent par le vérificateur hors ligne, les autres par un analyseur ou un champ qui doit être présent. Le vérificateur est /crawlcheck-verify.mjs.
| File | Served as | What it is, and the check |
|---|---|---|
| Discovery | ||
/robots.txt | text/plain | Crawl rules for every named crawler plus Content Signals (search, ai-input, ai-train preferences). |
/sitemap.xmlalso /sitemap-pages.xml, /sitemap-glossary.xml, /sitemap-directory.xml, /sitemap-registry.xml, /sitemap-certificates.xml | application/xml | Sitemap index: pages, glossary, directory, registry and certificates sitemaps. |
/llms.txt | text/plain | The site for language models: what CrawlCheck is and every page worth reading, by door. |
/llms-full.txt | text/markdown | The full technical guide for agents and developers in one Markdown file. |
/agents.mdalso /AGENTS.md | text/markdown | How an agent should use CrawlCheck: the core calls, the site by door, the rules. |
/SKILL.mdalso /.well-known/agent-skills/crawlcheck/SKILL.md | text/markdown | Agent skill file: when to call CrawlCheck and how, with YAML front matter. |
/.well-known/agent-skills/index.json | application/json | Agent Skills discovery index pointing at SKILL.md. |
/for-agents.md | text/markdown | This page as Markdown. Any page also answers Accept: text/markdown. |
| APIs | ||
/.well-known/api-catalog | application/linkset+json | API catalog (RFC 9727): every API with its description, docs and status links. |
/openapi.jsonalso /swagger.json, /.well-known/openapi.json | application/json | OpenAPI description of every documented operation, each with a worked example. |
/openapi.yaml | application/yaml | The same OpenAPI description for YAML tooling (JSON is valid YAML 1.2). |
/.well-known/mcp/server-card.jsonalso /.well-known/mcp.json | application/json | MCP server card: the remote MCP endpoint, its tools and auth. |
/.well-known/agent-card.jsonalso /.well-known/agent.json | application/json | A2A agent card: skills, endpoint and protocol version. |
/schemas/resolve.json | application/schema+json | JSON Schema for a Resolve answer, to validate one before acting on it. |
| Signed | ||
/.well-known/crawlcheck.json | application/json | This page as a signed manifest: purpose, core calls, keys. |
/.well-known/crawlcheck-staple.json | application/json | crawlcheck.io's own signed Resolve answer, stapled so an agent needs no second call. |
/crawlcheck-verify.mjs | text/javascript | The offline verifier: zero dependencies, Node 20+. Checks signatures, digests and log inclusion. |
| Keys and identity | ||
/.well-known/http-message-signatures-directory | application/http-message-signatures-directory+json | Web Bot Auth key directory (Ed25519) for requests CrawlCheck signs. The response itself is signed. |
/.well-known/signature-agent-card | application/json | Signature agent card: who signs, contact, the key directory. |
/.well-known/key-transparency.json | application/json | Every signing key ever published, with when it was used. |
/.well-known/security-key-rotation.json | application/json | Key rotation record: current key, previous keys, the rotation rule. |
/.well-known/ips.json | application/json | The IP ranges CrawlCheck crawls from (it owns none; it runs on Cloudflare's network). |
/.well-known/crawlcheck-observers.json | application/json | Every observer that takes readings, with its class and status. |
/.well-known/media-kit.json | application/ld+json | Organization, people and brand as a schema.org graph (the media-kit standard). |
/entitymap.json | application/json | EntityMap: the business, its identifiers and sameAs links. A readable copy is at /entitymap.html. |
/ns.jsonld | application/ld+json | The CrawlCheck vocabulary: terms used in signed answers, as RDF. |
/.well-known/security.txtalso /security.txt | text/plain | Security contact and disclosure policy (RFC 9116), with an expiry date. |
/.well-known/assetlinks.json | application/json | Android app links: which app may open crawlcheck.io links. |
/.well-known/agentic-verify.txt | text/plain | A fixed domain-ownership token an outside directory asked us to publish. |
/subprocessors.json | application/json | Every service that processes data for CrawlCheck, with its purpose and region. |
| Data | ||
/feed.json | application/feed+json | Every finding and guide as a JSON Feed, each item linking its Markdown copy. |
/feed.xml | application/atom+xml | The same findings and guides as an Atom feed. |
/glossary.json | application/ld+json | The whole glossary as a schema.org DefinedTermSet (CC BY 4.0). |
/ai-crawlers.json | application/json | Every AI and search crawler CrawlCheck tracks: token, operator, purpose, how to verify it. |
/directory.json | application/json | The measured vendor directory: each vendor's own site, graded (CC BY 4.0). |
/directory.csv | text/csv | The same directory as CSV, one row per vendor. |
/api/glossary/cadence | application/json | Glossary terms added each week, and the weekly streak. |
Lisible par les machines
- /.well-known/crawlcheck.json — cette page en manifeste signé
- /for-agents.md — cette page en Markdown
- /openapi.json
- /llms.txt
- Carte de serveur MCP
- Spécification Resolve
Ce qu’une réponse n’est pas
Une réponse signée dit ce que CrawlCheck a mesuré et décidé, et quand. Ce n’est pas une garantie sur le site. Vérifiez fresh_until : passé ce moment, la réponse est périmée. Les contestations et corrections sont publiques sur /disputes.