---
title: "Static hosting: agent-ready recipes | Agent Ready Checklist"
description: "Every agent-ready recipe for Static hosting: 31 rows of the checklist, the version read, the date and the vendor documentation each step came from."
canonical: https://agentreadychecklist.com/platforms/static-hosting
site: "Agent Ready Checklist"
last_updated: 2026-11-05
section: "Platforms"
---

# Static hosting: agent-ready recipes | Agent Ready Checklist

> Every agent-ready recipe for Static hosting: 31 rows of the checklist, the version read, the date and the vendor documentation each step came from.

Source: https://agentreadychecklist.com/platforms/static-hosting
Site: Agent Ready Checklist
Last reviewed: 2026-11-05
Agent endpoints: https://agentreadychecklist.com/llms.txt (index), https://agentreadychecklist.com/openapi.json (API), https://agentreadychecklist.com/mcp (MCP server), https://agentreadychecklist.com/ask (search)
Access: https://agentreadychecklist.com/auth.md (no key). Pricing: https://agentreadychecklist.com/pricing.md (free).

# Static hosting: agent-ready recipes

Plain static hosting (Netlify, Vercel static, Cloudflare Pages, GitHub Pages, S3 and CloudFront): 31 recipes against the 31 checklist rows, read on 2026-11-04. Plain static hosting: 23 are direct, 8 are workarounds. Version read for Plain static hosting: Host documentation as published on 2026-11-04.

## Version and documentation read

Version

Host documentation as published on 2026-11-04 (no version numbers; config files \_headers, \_redirects, vercel.json, 404.html)

Read on

2026-11-04

Recipes

23 direct, 8 workaround, 0 not possible on the platform

robots.txt

No first-party doc: Hosts serve robots.txt as a plain file from the publish root; no host-specific doc needed.

Sitemap

No first-party doc: Hosts serve sitemap.xml as a plain file; generate it with the site generator.

Structured data

No first-party doc: JSON-LD is part of the HTML you upload; hosts do not touch it.

Status codes

[developers.cloudflare.com/pages/configuration/serving-pages/](https://developers.cloudflare.com/pages/configuration/serving-pages/). Cloudflare Pages: a top-level 404.html is served for missing paths; without one, Pages assumes a single-page app and serves index.html.

Headers and redirects

[docs.netlify.com/manage/routing/headers/](https://docs.netlify.com/manage/routing/headers/). Netlify: \_headers file in the publish directory or netlify.toml. Cloudflare Pages also reads \_headers and \_redirects; Vercel reads vercel.json.

Content negotiation

[vercel.com/docs/project-configuration/vercel-json](https://vercel.com/docs/project-configuration/vercel-json). vercel.json headers and rewrites accept has conditions on request headers (type: header), which can match Accept.

llms.txt

No first-party doc: Upload llms.txt to the publish root like any file.

OpenAPI

No first-party doc: Upload openapi.json to the publish root like any file.

[The checklist table for Plain static hosting (Netlify, Vercel static, Cloudflare Pages, GitHub Pages, S3 and CloudFront)](https://agentreadychecklist.com/platform/static-hosting/checklist/) shows every row with its first step.

## Verify with Ora

Plain static hosting (Netlify, Vercel static, Cloudflare Pages, GitHub Pages, S3 and CloudFront) has a direct recipe for 23 rows, and Ora's catalogue (read 2026-11-05) names a matching check for 18 of them, among them AR-FIND-01, AR-FIND-03, AR-FIND-04. After the steps are live, one audit shows which of those fixes the score picks up.

```bash
npx ax@0.10 audit https://example.com --min-score 70
```

8 rows that Ora checks are a workaround or not possible on Static hosting: [AR-ACT-01](https://agentreadychecklist.com/checklist/ar-act-01/) (oauth-support, workaround); [AR-ACT-03](https://agentreadychecklist.com/checklist/ar-act-03/) (mcp-server, workaround); [AR-ACT-05](https://agentreadychecklist.com/checklist/ar-act-05/) (mcp-app-registry, workaround); [AR-ACT-08](https://agentreadychecklist.com/checklist/ar-act-08/) (x402-support, workaround); [AR-ACT-09](https://agentreadychecklist.com/checklist/ar-act-09/) (nlweb-ask, workaround); [CF-MARKDOWN-NEGOTIATION](https://agentreadychecklist.com/checklist/cf-markdown-negotiation/) (markdown-negotiation-vary, workaround); [CF-OAUTH-DISCOVERY](https://agentreadychecklist.com/checklist/cf-oauth-discovery/) (oauth-protected-resource, workaround); [VERCEL-NEGOTIATION-HEADERS](https://agentreadychecklist.com/checklist/vercel-negotiation-headers/) (markdown-negotiation-vary, workaround). Ora scores the site as it stands, so a row the platform cannot satisfy stays open until the workaround is in place.

Run it again with `--force` after a deploy, so the audit skips Ora's cache. [Gate deploys on it in CI](https://agentreadychecklist.com/guides/gate-deploys-on-agent-readiness-in-ci/), [why this site recommends Ora](https://agentreadychecklist.com/verify-with-ora/), [the crosswalk of rows and checks](https://agentreadychecklist.com/checklist/ora-checks/).

## Recipes, row by row

### [AR-FIND-01](https://agentreadychecklist.com/checklist/ar-find-01/): Do not block agentsrecipe

Upload robots.txt with "User-agent: \*" and "Allow: /". On Cloudflare Pages also check the zone Bot Fight Mode and AI Crawl Control settings, which apply before your file.

Read 2026-11-04. [developers.cloudflare.com/pages/configuration/serving-pages/](https://developers.cloudflare.com/pages/configuration/serving-pages/)

### [AR-FIND-02](https://agentreadychecklist.com/checklist/ar-find-02/): Answers on one first-party pagerecipe

Publish each answer once, as a page on your own domain. Put the fact (price, limit, version) in the page text, give the page one stable address, and link it from the home page and from llms.txt. Keep the page current: a second, older copy elsewhere on the site is the usual way an agent cites the wrong figure.

Generic step from the AgentReady specification; not platform-specific. [github.com/agentready-org/standard/blob/main/spec/spec.md](https://github.com/agentready-org/standard/blob/main/spec/spec.md)

### [AR-FIND-03](https://agentreadychecklist.com/checklist/ar-find-03/): Sitemap listed in robots.txtrecipe

Upload sitemap.xml from your generator and add "Sitemap: https://example.com/sitemap.xml" to robots.txt.

Read 2026-11-04. [sitemaps.org/protocol.html](https://www.sitemaps.org/protocol.html)

### [AR-FIND-04](https://agentreadychecklist.com/checklist/ar-find-04/): AI Catalog at .well-knownrecipe

Upload .well-known/ai-catalog.json. On Netlify and Cloudflare Pages add a \_headers rule "/.well-known/ai-catalog.json" with "Access-Control-Allow-Origin: \*". GitHub Pages: Jekyll skips dot folders unless you add a .nojekyll file.

Read 2026-11-04. [docs.netlify.com/manage/routing/headers/](https://docs.netlify.com/manage/routing/headers/)

### [AR-READ-01](https://agentreadychecklist.com/checklist/ar-read-01/): Answer in the initial HTMLrecipe

Static HTML is the initial HTML. Pre-render every route at build time; if the build output is an SPA shell, the host cannot fix that.

Read 2026-11-04. [developers.cloudflare.com/pages/configuration/serving-pages/](https://developers.cloudflare.com/pages/configuration/serving-pages/)

### [AR-READ-02](https://agentreadychecklist.com/checklist/ar-read-02/): Real HTTP status codesrecipe

Ship a top-level 404.html. Netlify, Cloudflare Pages and GitHub Pages serve it with status 404. On Cloudflare Pages a missing 404.html switches on SPA mode (index.html with 200 for every path). On CloudFront set a custom error response with response code 404, not 200. Remove any "/\* /index.html 200" rule from \_redirects.

Read 2026-11-04. [developers.cloudflare.com/pages/configuration/serving-pages/](https://developers.cloudflare.com/pages/configuration/serving-pages/)

### [AR-READ-03](https://agentreadychecklist.com/checklist/ar-read-03/): Home page with real linksrecipe

Make index.html contain plain a href links to /docs, /pricing and product pages.

Read 2026-11-04. [developers.cloudflare.com/pages/configuration/serving-pages/](https://developers.cloudflare.com/pages/configuration/serving-pages/)

### [AR-READ-04](https://agentreadychecklist.com/checklist/ar-read-04/): Docs that answer agent tasksrecipe

For each of your top five agent tasks, write a page that holds the steps as text, in order, with the exact names of the buttons, fields and settings. Steps that exist only in an image, a video or a script-built widget are not in the response a plain fetch receives. Fetch the page with curl and grep for the step.

Generic step from the AgentReady specification; not platform-specific. [github.com/agentready-org/standard/blob/main/spec/spec.md](https://github.com/agentready-org/standard/blob/main/spec/spec.md)

### [AR-READ-05](https://agentreadychecklist.com/checklist/ar-read-05/): Fenced, language-tagged coderecipe

Generate pre and code elements with a language class (class="language-bash") from your Markdown tool; the host serves them unchanged.

Read 2026-11-04. [docs.github.com/en/pages/getting-started-with-github-pages/about-github-pages](https://docs.github.com/en/pages/getting-started-with-github-pages/about-github-pages)

### [AR-READ-06](https://agentreadychecklist.com/checklist/ar-read-06/): Link the discovery filesrecipe

Add footer anchors to /llms.txt and /openapi.json, and a Link header for every page in \_headers: "/\*" then " Link: </llms.txt>; rel=\\"describedby\\"".

Read 2026-11-04. [docs.netlify.com/manage/routing/headers/](https://docs.netlify.com/manage/routing/headers/)

### [AR-READ-07](https://agentreadychecklist.com/checklist/ar-read-07/): Ship llms.txtrecipe

Upload llms.txt to the publish root; set Content-Type text/plain; charset=utf-8 in \_headers if the host guesses wrong.

Read 2026-11-04. [docs.netlify.com/manage/routing/headers/](https://docs.netlify.com/manage/routing/headers/)

### [AR-READ-08](https://agentreadychecklist.com/checklist/ar-read-08/): JSON-LD on key pagesrecipe

Put the JSON-LD script in the HTML at build time; the host serves it as uploaded.

Read 2026-11-04. [docs.github.com/en/pages/getting-started-with-github-pages/about-github-pages](https://docs.github.com/en/pages/getting-started-with-github-pages/about-github-pages)

### [AR-READ-09](https://agentreadychecklist.com/checklist/ar-read-09/): Advertise a markdown mirrorrecipe

Upload page.md twins and either add the alternate link tag in each page or a \_headers rule per path: "/docs/\*" then " Link: </docs/:splat.md>; rel=\\"alternate\\"; type=\\"text/markdown\\"" (check placeholder support on your host).

Read 2026-11-04. [developers.cloudflare.com/pages/configuration/headers/](https://developers.cloudflare.com/pages/configuration/headers/)

### [AR-READ-11](https://agentreadychecklist.com/checklist/ar-read-11/): Pricing as first-party HTMLrecipe

Publish pricing.html with plans and limits as text.

Read 2026-11-04. [developers.cloudflare.com/pages/configuration/serving-pages/](https://developers.cloudflare.com/pages/configuration/serving-pages/)

### [AR-ACT-01](https://agentreadychecklist.com/checklist/ar-act-01/): Auth an agent can finishworkaround

Run the token endpoint, and the RFC 8414 metadata for it, in Pages Functions, which run code at the edge for a Cloudflare Pages site, and give agents self-serve keys with documented scopes (the CF-OAUTH-DISCOVERY recipe, /platforms/static-hosting/#cf-oauth-discovery).

Derived from Plain static hosting's documentation read on 2026-11-04. [developers.cloudflare.com/pages/functions/](https://developers.cloudflare.com/pages/functions/) and [github.com/agentready-org/standard/blob/main/spec/spec.md](https://github.com/agentready-org/standard/blob/main/spec/spec.md)

### [AR-ACT-02](https://agentreadychecklist.com/checklist/ar-act-02/): OpenAPI contractrecipe

Upload openapi.json to the root and link it; on Netlify or Pages set Access-Control-Allow-Origin: \* for it in \_headers so browser-based tools can read it.

Read 2026-11-04. [docs.netlify.com/manage/routing/headers/](https://docs.netlify.com/manage/routing/headers/)

### [AR-ACT-03](https://agentreadychecklist.com/checklist/ar-act-03/): MCP over Streamable HTTPworkaround

On Cloudflare Pages, code runs through Pages Functions; a host without functions serves files only. Put a function at /mcp that returns the MCP server over Streamable HTTP (a POST answered with JSON or an event stream), or run the handler on a subdomain or API domain you control. Keep a docs MCP public and gate a product MCP with OAuth and PKCE.

Derived from Plain static hosting's documentation read on 2026-11-04. [developers.cloudflare.com/pages/functions/](https://developers.cloudflare.com/pages/functions/) and [github.com/agentready-org/standard/blob/main/spec/spec.md](https://github.com/agentready-org/standard/blob/main/spec/spec.md)

### [AR-ACT-04](https://agentreadychecklist.com/checklist/ar-act-04/): MCP server cardrecipe

Place the card at /.well-known/mcp/server-card.json the same way the AR-FIND-04 recipe places the AI Catalog (/platforms/static-hosting/#ar-find-04), and give it a serverInfo.name that matches your MCP server. Publish it only if you run an MCP server.

Generic step from the AgentReady specification; not platform-specific. [github.com/agentready-org/standard/blob/main/spec/spec.md](https://github.com/agentready-org/standard/blob/main/spec/spec.md)

### [AR-ACT-05](https://agentreadychecklist.com/checklist/ar-act-05/): MCP Apps viewworkaround

An MCP Apps view is a ui:// resource listed by resources/list on your MCP server. Add it to the server built for AR-ACT-03 (/platforms/static-hosting/#ar-act-03); the platform adds no step of its own. Publish it only if the product has a UI to hand back.

Generic step from the AgentReady specification; not platform-specific. [github.com/agentready-org/standard/blob/main/spec/spec.md](https://github.com/agentready-org/standard/blob/main/spec/spec.md)

### [AR-ACT-06](https://agentreadychecklist.com/checklist/ar-act-06/): SDKs and a CLIrecipe

Publish the SDK and the CLI from the product's own repository to npm or PyPI; the website platform is not involved. Then show the install command and a first call on a page of your own site so that agents reading the site find them. Verify with curl -s https://registry.npmjs.org/<cli-name>/latest.

Generic step from the AgentReady specification; not platform-specific. [github.com/agentready-org/standard/blob/main/spec/spec.md](https://github.com/agentready-org/standard/blob/main/spec/spec.md)

### [AR-ACT-07](https://agentreadychecklist.com/checklist/ar-act-07/): WebMCP toolsrecipe

Add a script tag that feature-detects document.modelContext and calls registerTool; any static host serves it.

Read 2026-11-04. [docs.github.com/en/pages/getting-started-with-github-pages/about-github-pages](https://docs.github.com/en/pages/getting-started-with-github-pages/about-github-pages)

### [AR-ACT-08](https://agentreadychecklist.com/checklist/ar-act-08/): Agent paymentsworkaround

On Cloudflare Pages, code runs through Pages Functions; a host without functions serves files only. Put a function at /paid that returns HTTP 402 with a payment payload on the paid path only (x402 or MPP), or a checkout handler, or run the handler on a subdomain or API domain you control. Put no CAPTCHA in front of a verified agent.

Derived from Plain static hosting's documentation read on 2026-11-04. [developers.cloudflare.com/pages/functions/](https://developers.cloudflare.com/pages/functions/) and [github.com/agentready-org/standard/blob/main/spec/spec.md](https://github.com/agentready-org/standard/blob/main/spec/spec.md)

### [AR-ACT-09](https://agentreadychecklist.com/checklist/ar-act-09/): NLWeb /ask endpointworkaround

On Cloudflare Pages, code runs through Pages Functions; a host without functions serves files only. Put a function at /ask that returns schema.org-shaped JSON for the query parameter, or run the handler on a subdomain or API domain you control. Mirror the same ask tool over MCP.

Derived from Plain static hosting's documentation read on 2026-11-04. [developers.cloudflare.com/pages/functions/](https://developers.cloudflare.com/pages/functions/) and [github.com/agentready-org/standard/blob/main/spec/spec.md](https://github.com/agentready-org/standard/blob/main/spec/spec.md)

### [AR-ACT-10](https://agentreadychecklist.com/checklist/ar-act-10/): An MCP server or a CLIrecipe

A CLI meets AR-ACT-10 on any platform: publish it as described in the AR-ACT-06 recipe (/platforms/static-hosting/#ar-act-06). An MCP server also meets it; how Plain static hosting hosts one is in the AR-ACT-03 recipe (/platforms/static-hosting/#ar-act-03). Do not ship an empty surface to tick the box.

Generic step from the AgentReady specification; not platform-specific. [github.com/agentready-org/standard/blob/main/spec/spec.md](https://github.com/agentready-org/standard/blob/main/spec/spec.md)

### [CF-CONTENT-SIGNALS](https://agentreadychecklist.com/checklist/cf-content-signals/): Content-Signal linerecipe

Add "Content-Signal: ai-train=no, search=yes, ai-input=yes" under User-agent: \* in the uploaded robots.txt.

Read 2026-11-04. [developers.cloudflare.com/pages/configuration/serving-pages/](https://developers.cloudflare.com/pages/configuration/serving-pages/)

### [CF-MARKDOWN-NEGOTIATION](https://agentreadychecklist.com/checklist/cf-markdown-negotiation/): Markdown by Acceptworkaround

Vercel: a vercel.json rewrite with has \[{ type: "header", key: "accept", value: ".\*text/markdown.\*" }\] from "/(.\*)" to "/$1.md". Netlify: an Edge Function. Cloudflare Pages: a Pages Function, or enable Markdown for Agents on the zone. GitHub Pages: not possible (no request logic). S3 and CloudFront: a CloudFront Function on viewer request that rewrites the URI.

Read 2026-11-04. [vercel.com/docs/project-configuration/vercel-json](https://vercel.com/docs/project-configuration/vercel-json)

### [CF-PAY-PER-CRAWL](https://agentreadychecklist.com/checklist/cf-pay-per-crawl/): Pay per crawl, HTTP 402recipe

On Cloudflare Pages the site already sits on a Cloudflare zone, so pay per crawl is set in Cloudflare's own controls (AI Crawl Control) with a price per zone, and Cloudflare answers HTTP 402 with the price to a crawler that presents no payment intent. The feature was in closed beta on 2026-11-04. On another static host, put the domain on a Cloudflare zone first. Test with curl -A "GPTBot/1.0".

Derived from Cloudflare's pay per crawl documentation read on 2026-11-04. [developers.cloudflare.com/ai-crawl-control/features/pay-per-crawl/what-is-pay-per-crawl/](https://developers.cloudflare.com/ai-crawl-control/features/pay-per-crawl/what-is-pay-per-crawl/) and [developers.cloudflare.com/ai-crawl-control/features/pay-per-crawl/what-is-pay-per-crawl/](https://developers.cloudflare.com/ai-crawl-control/features/pay-per-crawl/what-is-pay-per-crawl/)

### [CF-OAUTH-DISCOVERY](https://agentreadychecklist.com/checklist/cf-oauth-discovery/): OAuth discovery filesworkaround

A static file works when the metadata is fixed: upload .well-known/oauth-authorization-server and set Content-Type: application/json in \_headers (the file has no extension). The authorization server itself must run elsewhere.

Read 2026-11-04. [docs.netlify.com/manage/routing/headers/](https://docs.netlify.com/manage/routing/headers/)

### [CF-AGENT-SKILLS](https://agentreadychecklist.com/checklist/cf-agent-skills/): Agent Skills indexrecipe

Upload .well-known/agent-skills/index.json and the SKILL.md files; add .nojekyll on GitHub Pages.

Read 2026-11-04. [docs.github.com/en/pages/getting-started-with-github-pages/creating-a-custom-404-page-for-your-github-pages-site](https://docs.github.com/en/pages/getting-started-with-github-pages/creating-a-custom-404-page-for-your-github-pages-site)

### [VERCEL-NEGOTIATION-HEADERS](https://agentreadychecklist.com/checklist/vercel-negotiation-headers/): Markdown headersworkaround

Set the headers where the rewrite happens: in vercel.json headers add Content-Type "text/markdown; charset=utf-8" for "/(.\*).md" and Vary "Accept" for "/(.\*)". On Netlify and Pages set them in the function response. Not possible on GitHub Pages, which allows no custom headers.

Read 2026-11-04. [vercel.com/docs/project-configuration/vercel-json](https://vercel.com/docs/project-configuration/vercel-json)

### [VERCEL-ROBOTS-EXCLUSIONS](https://agentreadychecklist.com/checklist/vercel-robots-exclusions/): Robots exclusionsrecipe

Open the robots.txt that Plain static hosting serves for your site and read every Disallow; each one must have a reason you can state. How the file is produced here: No first-party doc: Hosts serve robots.txt as a plain file from the publish root; no host-specific doc needed.

Derived from Plain static hosting's documentation read on 2026-11-04. [developers.cloudflare.com/pages/configuration/serving-pages/](https://developers.cloudflare.com/pages/configuration/serving-pages/) and [vercel.com/kb/guide/make-your-site-readable-by-ai-agents](https://vercel.com/kb/guide/make-your-site-readable-by-ai-agents)

## Vendors on this platform

-   [AWS Amplify Hosting](https://agentreadychecklist.com/vendors/aws-amplify/)Host or CDN, 0 of 5 checklist rows read met by default
-   [Cloudflare Pages and Workers](https://agentreadychecklist.com/vendors/cloudflare/)Host or CDN, 0 of 8 checklist rows read met by default
-   [Eleventy (Build Awesome)](https://agentreadychecklist.com/vendors/eleventy/)Framework, 1 of 7 checklist rows read met by default
-   [Firebase Hosting](https://agentreadychecklist.com/vendors/firebase-hosting/)Host or CDN, 0 of 5 checklist rows read met by default
-   [Gatsby](https://agentreadychecklist.com/vendors/gatsby/)Framework, 1 of 9 checklist rows read met by default
-   [GitHub Pages](https://agentreadychecklist.com/vendors/github-pages/)Host or CDN, 2 of 5 checklist rows read met by default
-   [Hugo](https://agentreadychecklist.com/vendors/hugo/)Framework, 3 of 10 checklist rows read met by default
-   [Jekyll](https://agentreadychecklist.com/vendors/jekyll/)Framework, 1 of 8 checklist rows read met by default
-   [Netlify](https://agentreadychecklist.com/vendors/netlify/)Host or CDN, 1 of 4 checklist rows read met by default
-   [Render](https://agentreadychecklist.com/vendors/render/)Host or CDN, 1 of 3 checklist rows read met by default
-   [Vercel](https://agentreadychecklist.com/vendors/vercel/)Host or CDN, 2 of 5 checklist rows read met by default

## Sources

-   [ora.ai/api/checks, contract 1.38.0](https://ora.ai/api/checks?utm_source=agentreadychecklist.com&utm_medium=referral&utm_campaign=platform)read 2026-11-05
-   [registry.npmjs.org/ax, the ax README](https://registry.npmjs.org/ax)read 2026-11-05
-   [developers.cloudflare.com/pages/configuration/serving-pages/](https://developers.cloudflare.com/pages/configuration/serving-pages/)read 2026-11-04
-   [docs.netlify.com/manage/routing/headers/](https://docs.netlify.com/manage/routing/headers/)read 2026-11-04
-   [vercel.com/docs/project-configuration/vercel-json](https://vercel.com/docs/project-configuration/vercel-json)read 2026-11-04
-   [github.com/agentready-org/standard/blob/main/spec/spec.md](https://github.com/agentready-org/standard/blob/main/spec/spec.md)read 2026-11-04
-   [sitemaps.org/protocol.html](https://www.sitemaps.org/protocol.html)read 2026-11-04
-   [docs.github.com/en/pages/getting-started-with-github-pages/about-github-pages](https://docs.github.com/en/pages/getting-started-with-github-pages/about-github-pages)read 2026-11-04
-   [developers.cloudflare.com/pages/configuration/headers/](https://developers.cloudflare.com/pages/configuration/headers/)read 2026-11-04
-   [developers.cloudflare.com/pages/functions/](https://developers.cloudflare.com/pages/functions/)read 2026-11-04
-   [developers.cloudflare.com/ai-crawl-control/features/pay-per-crawl/what-is-pay-per-crawl/](https://developers.cloudflare.com/ai-crawl-control/features/pay-per-crawl/what-is-pay-per-crawl/)read 2026-11-04
-   [docs.github.com/en/pages/getting-started-with-github-pages/creating-a-custom-404-page-for-your-github-pages-site](https://docs.github.com/en/pages/getting-started-with-github-pages/creating-a-custom-404-page-for-your-github-pages-site)read 2026-11-04
-   [vercel.com/kb/guide/make-your-site-readable-by-ai-agents](https://vercel.com/kb/guide/make-your-site-readable-by-ai-agents)read 2026-11-04

Edition

Data

2026-11-04

Reviewed

2026-11-05

Spec

AgentReady v2.0, 273d2d7

Crawl

13,071 rows, 2026-11-04

Ora

132 checks, contract 1.38.0, 2026-11-05

Verify with Ora

The scanner this site recommends for the whole checklist. 132 checks, a score out of 100, no account.

`npx ax@0.10 audit <url> --min-score <n>`

[Why Ora, and its limits](https://agentreadychecklist.com/verify-with-ora/)

Method

-   [How rows, commands and rates are made](https://agentreadychecklist.com/method/)
-   [How an Ora check is matched to a row](https://agentreadychecklist.com/checklist/ora-checks/)
-   [Pass rates by rank band](https://agentreadychecklist.com/data/by-rank/)

Sources and read dates sit at the foot of the page.

Last reviewed 2026-11-05. AgentReady v2.0, read 2026-11-04.
