# AgenticWebScore > AgenticWebScore measures how well a website serves AI agents. Its 61 checks in 5 dimensions give a score you can recompute and a fix for every failure. AgenticWebScore measures public websites from the outside and scores how well they serve agents. Rubric v0.7 defines 61 checks across 5 dimensions. It refuses to score what it cannot measure: a site that blocks every automated client receives a null score and an explanation, never a low number. Read this site as one document: https://agenticwebscore.com/llms-full.txt Machine-readable rubric: https://agenticwebscore.com/rubric.json Scoring contract for people: https://agenticwebscore.com/methodology Skill packs: https://agenticwebscore.com/.well-known/agent-skills/index.json Typed page index: https://agenticwebscore.com/index.json ## Core - [Methodology](https://agenticwebscore.com/methodology): the full scoring contract — dimensions, tier pools, the formula, grades, levels, the rule for a site that is not measured, and verification. - [The 61 checks](https://agenticwebscore.com/checks): every check with its measurement, a reproduction command and the fix to ship. - [Scan a site](https://agenticwebscore.com/aws/vercel.com): a stored record for vercel.com, live now. Every scan has one address, the template `/aws/{domain}` — replace `{domain}` with a host name; that string is a template, not a URL. A GET there shows the stored report, the progress screen while a scan runs, or a form that asks before it scans. `status.md`, `agent-brief.md`, `bundle.md`, `prompt.md`, and `report.json` are under `/aws/{domain}/{file}`. The legacy `/report/{domain}` answers 308 to it. - [Scan API](https://agenticwebscore.com/openapi.json): the endpoint an agent should call, described in OpenAPI at that link. Call `GET /api/scan?target={host}`, or `POST /api/scan` with `{"target": "{host}"}` as JSON. It answers inline with the full record as JSON, once the record is ready. A stored record younger than 6 hours, measured with the same `profile`, is returned without a new scan. Add `fresh=1` to the GET, or `"fresh": true` to the POST body, to scan again. A running scan of the same origin with the same `profile` is joined, not repeated. Any other scan of that site gets 429 until it finishes. The API is unauthenticated. New scans are limited to 10 per client per minute and 3 running at once; a reused record or a joined scan does not count. Over a limit it answers 429 with a `Retry-After` header. - [For agents](https://agenticwebscore.com/bot): how this site identifies itself as a client, and what agents may read here. - [AI usage policy](https://agenticwebscore.com/ai-policy): crawling, training, commercial use and attribution. - [Learn](https://agenticwebscore.com/learn): 8 source-cited articles on agent readiness. ## Learn - [AI crawler blocking: how to refuse scrapers without locking out agents](https://agenticwebscore.com/learn/ai-crawler-blocking): Blocking AI crawlers by IP locks out the agents you want. Named user-agent rules and Content Signals let you refuse training without refusing retrieval. - [One rubric, 8 site profiles: why a publisher should not be asked for a product feed](https://agenticwebscore.com/learn/site-profiles-methodology): Since rubric v0.4, sites are scored through 8 site profiles, so a check that only applies to a shop is never handed to a publisher as a task. - [Tools, not pages: MCP server cards, agent skills and WebMCP](https://agenticwebscore.com/learn/agent-tools-not-pages): Reading a page is inference; calling a tool is an API. What MCP server cards, agent skills and WebMCP let an agent call, and where each one breaks. - [What agent readiness actually means](https://agenticwebscore.com/learn/what-is-agent-readiness): Agent readiness is whether a non-browser client can reach, read and act on a site: what it measures, what it does not, and when to report nothing. - [Agentic commerce protocols compared: AP2, ACP, x402 and UCP](https://agenticwebscore.com/learn/agentic-commerce-protocols): What AP2, ACP, x402 and UCP each do, which layer of a transaction each occupies, who governs it, and when the honest answer is to implement none of them. - [llms.txt: what it is, what it is not, and when it actually helps](https://agenticwebscore.com/learn/llms-txt-guide): llms.txt is a proposal, not a standard. What the format specifies, how files fail, and how it relates to llms-full.txt and sitemap.md. - [Serving agents markdown: content negotiation without a second codebase](https://agenticwebscore.com/learn/markdown-content-negotiation): Serve markdown on a page's own URL with Accept and Vary, so agents get token-efficient text and readers still get HTML from one content source. - [Signed agents: how Web Bot Auth works and what it does not prove](https://agenticwebscore.com/learn/web-bot-auth-explained): Web Bot Auth verifies which key signed an HTTP request. It proves who sent the traffic — not what that agent is allowed to do on your site. ## Checks ### Protocol Discovery (25%) - [mcp-card — MCP server card](https://agenticwebscore.com/checks/mcp-card): Since MCP 2026-07-28, agents discover tool servers through a published declaration. - [openapi — OpenAPI definition](https://agenticwebscore.com/checks/openapi): A machine-readable contract so an agent can discover your API and generate correct calls. - [oauth-discovery — OAuth discovery documents](https://agenticwebscore.com/checks/oauth-discovery): Required for agents to connect to your authenticated API on their own (RFC 8414 / RFC 9728). - [api-catalog — API catalog](https://agenticwebscore.com/checks/api-catalog): Lets an agent see which capabilities are callable in a single document (RFC 9727). - [agent-skills — Agent Skills declaration](https://agenticwebscore.com/checks/agent-skills): Offers ready-made capability packages to agent runtimes. - [a2a-card — A2A agent card](https://agenticwebscore.com/checks/a2a-card): A2A v1.0 (Linux Foundation) is the emerging standard for agent-to-agent discovery. Almost no site publishes a card yet, which makes this one of the cheapest places to be early. - [a2a-signed — Cryptographically signed agent card](https://agenticwebscore.com/checks/a2a-signed): A2A v1.0 makes identity verifiable through JWS (RFC 7515). - [auth-md — /auth.md agent authentication guide](https://agenticwebscore.com/checks/auth-md): A guide telling an agent which authentication flow to use. - [webmcp — WebMCP browser tool declaration](https://agenticwebscore.com/checks/webmcp): WebMCP lets sites expose tools to in-browser agents. It is the only normative deliverable of the W3C Agentic Web WG. - [ard-manifest — ARD resource discovery manifest](https://agenticwebscore.com/checks/ard-manifest): Cisco/Outshift's Agentic Resource Discovery specification; Lighthouse audits it too. - [docs — Documentation reachable](https://agenticwebscore.com/checks/docs): An agent needs documentation to complete an integration on its own. - [pricing-structured — Structured pricing information](https://agenticwebscore.com/checks/pricing-structured): An offer without a price cannot be compared by an agent — you drop out of consideration. - [service-schema — Service/product scope machine-readable](https://agenticwebscore.com/checks/service-schema): An agent must be able to answer "what does this site offer, and to whom". - [contact — Structured contact information](https://agenticwebscore.com/checks/contact): An agent must know where to reach you before starting a transaction, or when something fails. - [status-page — Service status and changelog feed](https://agenticwebscore.com/checks/status-page): An agent should be able to learn about outages and API changes in a machine-readable way. - [sandbox-environment — Sandbox or test environment documented](https://agenticwebscore.com/checks/sandbox-environment): An agent cannot safely integrate against a production endpoint; a documented sandbox is the difference between a working trial and a support ticket. - [rate-limits-declared — Rate limits and quotas documented](https://agenticwebscore.com/checks/rate-limits-declared): An agent that does not know the quota discovers it by being throttled, halfway through a task it cannot resume. ### Content Accessibility (22%) - [markdown-negotiation — Markdown content negotiation](https://agenticwebscore.com/checks/markdown-negotiation): Agents can request a markup-free version with "Accept: text/markdown", which cuts token cost. - [headings — Semantic heading structure](https://agenticwebscore.com/checks/headings): A single H1 and a consistent H2 structure let the content be split correctly. - [meta — Title and summary metadata](https://agenticwebscore.com/checks/meta): This is how an agent learns what a page is about without opening it. - [jsonld — JSON-LD structured data](https://agenticwebscore.com/checks/jsonld): The entity type becomes unambiguous to a machine. Without authoritative data, an agent answers from whatever it can scrape. - [faq-schema — FAQ / question-answer schema](https://agenticwebscore.com/checks/faq-schema): Question-and-answer content is the type agents quote most. - [breadcrumb — Breadcrumb / navigation schema](https://agenticwebscore.com/checks/breadcrumb): Helps an agent make sense of where a page sits in your site. - [summary — Prominent summary block](https://agenticwebscore.com/checks/summary): The llms.txt contract recommends a short summary at the top of every page; agents quote it directly. - [lang — Language declaration and multilingual access](https://agenticwebscore.com/checks/lang): A wrong language tag makes an agent misread the content. - [no-js-fallback — Content that needs no JavaScript](https://agenticwebscore.com/checks/no-js-fallback): If content is only produced client-side, the page is empty for agents that do not run JavaScript. - [spa-fallback — Per-page content separation (no SPA fallback)](https://agenticwebscore.com/checks/spa-fallback): A catch-all route returning the same skeleton for every URL makes pages indistinguishable to an agent. - [token-efficiency — Token efficiency (content-to-markup ratio)](https://agenticwebscore.com/checks/token-efficiency): A bloated DOM wastes an agent's context window. - [viewport — Responsive markup](https://agenticwebscore.com/checks/viewport): Agent browsers mostly run at mobile scale. - [licensing-terms — Reuse and licensing terms declared](https://agenticwebscore.com/checks/licensing-terms): Declaring ai-train=no without stating a licensing path leaves both the publisher and the agent without an answer they can act on. - [provenance-declared — Content provenance declared](https://agenticwebscore.com/checks/provenance-declared): Author, publication date and update date are what let an agent judge whether a source is current and attributable before it quotes it. - [document-formats — Documents in machine-readable formats](https://agenticwebscore.com/checks/document-formats): A PDF that carries no document structure is unreadable to an agent and to a screen reader alike — the same defect, found twice. ### Discoverability (20%) - [reachable — Homepage open to agent access](https://agenticwebscore.com/checks/reachable): If an agent cannot read your site, every other check is moot. Cloudflare began blocking AI crawlers by default in 2025, with signed agents routed separately. - [robots-txt — robots.txt with agent directives](https://agenticwebscore.com/checks/robots-txt): The front door for agent traffic (RFC 9309). - [sitemap-xml — sitemap.xml valid and current](https://agenticwebscore.com/checks/sitemap-xml): The primary URL discovery source for agent crawlers. - [llms-txt — /llms.txt published and well-structured](https://agenticwebscore.com/checks/llms-txt): The most widely adopted contract for making a site legible to agents. In the curated corpus we measured, 46% of sites published one and the average quality score was 37 out of 100 — adoption is not the same as usefulness. - [link-headers — Discovery via Link response headers](https://agenticwebscore.com/checks/link-headers): RFC 8288 Link headers let an agent find your discovery resources without parsing HTML. - [dns-aid — DNS-AID discovery record](https://agenticwebscore.com/checks/dns-aid): Lets agents read discovery information over DNS without an HTTP round trip. Cloudflare added it to its readiness checklist. - [canonical — Canonical and hreflang discipline](https://agenticwebscore.com/checks/canonical): An agent needs one consistent URL per important page. - [llms-full — /llms-full.txt expanded context](https://agenticwebscore.com/checks/llms-full): Lets an agent take in the full context in a single request instead of walking the site step by step. - [agents-md — AGENTS.md with the required sections](https://agenticwebscore.com/checks/agents-md): The instruction file for coding and operations agents. It fails more often than any other check in the curated corpus we measured, and the usual reason is not a missing file but a file without the sections an agent needs. - [sitemap-md — /sitemap.md markdown site map](https://agenticwebscore.com/checks/sitemap-md): Lets an agent read your site structure as markdown in a single file. Adoption is still very low, so this is an early-mover advantage. - [content-signal — Content-Signal usage signals](https://agenticwebscore.com/checks/content-signal): Declares how your content may be used, inside robots.txt. Cloudflare included this in its readiness checks. ### Bot Access Control (18%) - [webbotauth — Web Bot Auth key directory](https://agenticwebscore.com/checks/webbotauth): RFC 9421 with Ed25519: the mechanism that lets a site verify which agent is calling rather than guessing from a user-agent string. Adoption in the curated corpus we measured is around one site in a hundred. - [agent-permissions — Agent permission model (agent-permissions.json)](https://agenticwebscore.com/checks/agent-permissions): Declares which actions an agent may take, which are refused, and which need a person. It is the difference between a policy and a wish: in the curated corpus we measured, roughly one site in a hundred publishes one. - [ai-rules — Named AI bot rules in robots.txt](https://agenticwebscore.com/checks/ai-rules): Naming agent crawlers explicitly is the first step to being visible in agent traffic. - [ai-policy — AI usage policy page](https://agenticwebscore.com/checks/ai-policy): States the rules agents must follow and reduces licensing ambiguity. - [bot-page — Crawler and agent policy page](https://agenticwebscore.com/checks/bot-page): Explains which agents are permitted and how they are verified. - [security-txt — security.txt (RFC 9116)](https://agenticwebscore.com/checks/security-txt): Provides a responsible disclosure channel for agent-related security incidents. - [crawl-delay — Crawl rate declaration](https://agenticwebscore.com/checks/crawl-delay): Cloudflare's Verified Bots policy drops AI crawlers that ignore crawl-delay. - [ai-txt — /ai.txt access declaration](https://agenticwebscore.com/checks/ai-txt): Some agent ecosystems read an /ai.txt contract alongside robots.txt. ### Commerce Protocols (15%, conditional) - [product-schema — Product/catalog schema](https://agenticwebscore.com/checks/product-schema): Product data is the most valuable and the least machine-readable: price, availability and returns are usually rendered for a person to read and never declared for a machine to parse. - [payment-protocols — Agent payment standard support (AP2/ACP/x402/UCP)](https://agenticwebscore.com/checks/payment-protocols): The least-implemented surface in the rubric. Accepting an agent payment means choosing a standard and changing a checkout, which is a business decision most sites have not made yet. - [agent-purchase — Agent purchase policy](https://agenticwebscore.com/checks/agent-purchase): Liability is the open question in agent commerce, and it is a policy decision rather than a technical one: a site that accepts an agent purchase has to decide who carries the cost when the agent is wrong, and publish that decision where an agent can read it. - [ucp-manifest — UCP manifest (/.well-known/ucp)](https://agenticwebscore.com/checks/ucp-manifest): Google and Shopify's Universal Commerce Protocol; lets a merchant declare checkout capabilities at transaction time. - [returns — Return and shipping terms machine-readable](https://agenticwebscore.com/checks/returns): An agent must verify return terms before making a purchase decision. - [agent-analytics — Agent traffic measurement](https://agenticwebscore.com/checks/agent-analytics): If agent traffic is not measured separately, the channel's return is invisible and never funded. - [inventory-freshness — Inventory and price freshness](https://agenticwebscore.com/checks/inventory-freshness): An agent that cannot tell whether an item is in stock — or when a price was last valid — will quote a stale offer to a buyer, or refuse to quote at all. - [seller-identity — Seller identity declared](https://agenticwebscore.com/checks/seller-identity): On a marketplace an offer is meaningless without knowing who is selling and who is the merchant of record, because that is who the agent has a contract with. - [shipping-costs — Shipping cost and delivery declared](https://agenticwebscore.com/checks/shipping-costs): A purchase agent that cannot compute the delivered total cannot complete a checkout, and returns to the merchant without it. - [booking-action — Machine-readable booking action](https://agenticwebscore.com/checks/booking-action): For a service business the agent's task is to book, not to browse — a declared action is what turns a contact page into a completed job. ## Optional - [llms-full.txt](https://agenticwebscore.com/llms-full.txt): every page in the page registry and every learn article, in one markdown document. - [Sitemap (markdown)](https://agenticwebscore.com/sitemap.md) - [Sitemap (XML)](https://agenticwebscore.com/sitemap.xml) - [Agent permissions](https://agenticwebscore.com/.well-known/agent-permissions.json) - [MCP server card](https://agenticwebscore.com/.well-known/mcp/server-card.json) - [API catalog](https://agenticwebscore.com/.well-known/api-catalog) - [OpenAPI description](https://agenticwebscore.com/openapi.json): the 4 API endpoints that answer JSON. - [Rubric as JSON](https://agenticwebscore.com/rubric.json): every check, weight, level and site profile. - [Agent skills index](https://agenticwebscore.com/.well-known/agent-skills/index.json) — 60 publishable skill packs covering all 61 checks. - [security.txt](https://agenticwebscore.com/.well-known/security.txt) Every page in the page registry and every learn article answers `Accept: text/markdown` with markdown. The 3 routes without a markdown twin — `/scan`, `/directory`, `/learn` — serve HTML only.