# AgentReady: Make your site readable by AI agents > AgentReady is the open standard for agent readiness: a spec of the protocols, standards, and conventions a product should implement to be found, read, and used by AI agents, from discovery to completion. It does not promote any specific protocol or vendor, and it does not prescribe how scanners should weight or score compliance. Every requirement carries a stable identifier (AR-FIND-01 and so on) and a BCP 14 strength (MUST / SHOULD / MAY) assigned from real agent runs and a controlled experiment. Developed in collaboration with Ora, Vercel, Stripe, Auth0, Mintlify, Tavily, Google, Elementor, and Netlify. Version: v2.0 Last updated: October 2026 License: MIT ## How we know Numbers in this spec are tagged by source. [STUDIES] refers to research from the ora.ai research lab: more than 250,000 real agent runs and a controlled experiment that toggled one feature at a time, with the data behind each claim public at https://github.com/agentready-org/standard/tree/main/data; plus the Ora research reports cited next to their numbers. [ORA SCANNER] refers to agent-reachability checks across every scored site. Statements without a tag are recommendations rather than measured findings. In the studies, two changes caused agents to fail: hiding answers behind JavaScript and blocking access. The spec follows the order in which agents encounter a site: find, read, then act. MUST marks what an agent fails without: those two changes, and, when agents should complete a task, an MCP server or a CLI to act through. Practices that measurably shaped where agents went or make acting reliable are SHOULD, emerging conventions are MAY. All recommendations share one prerequisite: the agent must be able to reach the page and find the answer in the returned HTML. ## Essentials The short version. Find and read are the essentials every site needs. Act applies when agents should complete a task, not only read. ### find - Publish first-party docs: The page agents ground answers on and name as the source. - Allow agents in robots.txt and bot protection: The gate to search indexes and live fetches. About 1 in 10 scanned sites block AI crawlers entirely, and a bot manager can block agents the file allows. - List pages in a sitemap.xml: Standard for crawlers. Agents fetch it in 4% of runs. ### read - Put the answer in the initial HTML: Homepage and docs, server-rendered. A JavaScript-hidden answer was one of two changes that broke an agent. - Return real HTTP status codes: 404 for a missing path, never 200. 429 with Retry-After when throttling. - Link llms.txt, JSON-LD, and OpenAPI: 86–100% of those fetches arrived through a link, not a guessed path. - Fence and language-tag code: When an agent’s answer included code, 61% of the time it lifted lines verbatim. ### act (if agents should complete a task, not only read) - Auth an agent can finish: Self-serve keys or OAuth with discoverable metadata. The first gate of acting. - A public API with OpenAPI: Typed operations, errors, and rate limits. The acting surface itself. - An MCP server or a CLI: The interface an agent acts through. Ship at least one; without it, an agent cannot finish the task. - WebMCP on pages agents should act through: In-page tools on document.modelContext, in the user's session. Complementary to a server MCP. Do not invent tools to chase a score. ## Check your site Three public rankers score the site itself, each on a different surface. One report shows how you rank when agents search your market, and one harness runs real agents through tasks on your product. None of them is the spec. The rankers have a free browser score, the report runs on a free Tavily API key, and the harness is an open-source CLI that uses your own agent API key. is-agentic.com is the Vercel × Ora essentials reading for sites whose job is content agents can find and use: scan at https://is-agentic.com or run "npx is-agentic example.com". ora.ai is the full ranker for products agents transact with (API, MCP, payments, leaderboard): scan at https://ora.ai, run "npx ax audit https://example.com", or POST {"url": "example.com"} to https://ora.ai/api/scan. mintlify.com/score is Mintlify's Agent Score for documentation sites (29 checks on the Agent-Friendly Documentation Spec): scan at https://www.mintlify.com/score or run "npx mint score docs.example.com". avr.tavily.com is Tavily's report on who agents find when they search your market: run it at https://avr.tavily.com with a free Tavily API key. axis.run is Netlify's AXIS (Agent Experience Index Score), an open-source harness that runs 20+ coding agents through your API, MCP server, CLI, or skills, scores each run on four dimensions (goal achievement, environment, service, agent), and gates CI on a baseline: run "npx @netlify/axis init" then "npx @netlify/axis run". Docs: https://is-agentic.com/docs, https://ora.ai/docs, https://www.mintlify.com/blog/agent-score, and https://axis.run/scoring. Scanner checks and weights may change independently of this spec. ## Be reachable and citable Agents can cite only pages they can discover and fetch. Pages blocked from crawlers do not appear in search indexes at all. [STUDIES] When an agent cannot read your site, it answers anyway, from web search and other people's pages. Across 1,056 business sites, those answers were 3.7× as likely to contain none of the facts the user asked for, and agent-ready businesses were clearly recommended 1.9× as often (AX is the New AEO: https://ora.ai/blog/ax-is-the-new-aeo). - AR-FIND-02 (SHOULD) Publish the answer as first-party docs: Makes you citable: the page an agent grounds its answer on and names as its source. [STUDIES] 82% of answers traced back to a page the agent fetched, and that page was a docs page 47% of the time, more than any other page type. - AR-FIND-01 (MUST) Allow agents in robots.txt and bot protection: Declares which crawlers may fetch which paths, and lets verified agents through the bot manager. This is the gate to the search indexes. [ORA SCANNER] In the April 2026 report (~50,000 scanned sites), 88% shipped a robots.txt and 80% stayed reachable to every major AI crawler. About 1 in 10 blocked them entirely. - AR-FIND-03 (SHOULD) List your pages in a sitemap.xml: Maps every page you publish for indexing. [STUDIES] Fetched directly in 4% of runs, one of the files real agents touch least. It is still standard for crawlers and search engines. - AR-FIND-04 (MAY) Publish an AI Catalog and link it: One manifest at /.well-known/ai-catalog.json listing every agent-facing resource you ship, from MCP server card to llms.txt. Not measured in the studies. Link it from the homepage head, since 86–100% of discovery-file visits arrive through links. ARD registries such as Ora Directory index published catalogs so agents can search across sites. An AI Catalog at /.well-known/ai-catalog.json lists every agent-facing resource (MCP server card, OpenAPI, GraphQL, A2A agent card, docs, llms.txt, skills); link it from the homepage head with and an HTTP Link header. Agentic Resource Discovery (ARD) registries such as Ora Directory (https://ora.ai/directory) index published catalogs and answer search across them. Publish answers on one canonical, current first-party docs page. Write the crawl policy as one rule for all agents (User-agent: *) instead of an allowlist of named crawlers. Model providers run separate crawlers per job: training crawlers (GPTBot, ClaudeBot), search-index crawlers (OAI-SearchBot, Claude-SearchBot), and user-initiated fetchers (ChatGPT-User, Claude-User). Each obeys its own rule, so you can block training without dropping out of search indexes or agent answers. A more specific group such as "User-agent: GPTBot" overrides the * group, and user-initiated fetchers may not consult robots.txt at all. Agents also find pages through agent search APIs such as the Brave Search API, Exa, Parallel, and Tavily, which run their own crawlers and indexes; the wildcard rule covers them, an allowlist of named crawlers does not. Bot protection is a second gate that robots.txt does not control: a WAF or bot manager that answers agents with a 403 or a challenge page blocks them however permissive the file is. Let verified agents through by the providers' published IP ranges or Web Bot Auth signatures, and throttle with a 429 instead of a challenge. [STUDIES] Sites that were not agent-ready blocked agents 2.1× as often. The dependable reachability test is your server logs: find requests from the published OpenAI and Anthropic crawler IP ranges and confirm they return 200. ## Put the answer where agents read Agents use the same homepage and docs pages as human visitors. Agent-specific files (llms.txt, markdown mirrors, JSON-LD) help agents find, fetch, and use those same answers. Getting answers into the initial HTML (SSR or prerendering) is the prerequisite for agents that fetch rather than run JavaScript. A fact that exists only inside a