---
title: "Agent ready checklist: Static hosting | Agent Ready Checklist"
description: "The agent readiness checklist for Static hosting. All 31 rows, with a verify command for each. The first step of its recipe sits beside each row."
canonical: https://agentreadychecklist.com/platform/static-hosting/checklist
site: "Agent Ready Checklist"
last_updated: 2026-11-05
section: "Platforms"
---

# Agent ready checklist: Static hosting | Agent Ready Checklist

> The agent readiness checklist for Static hosting. All 31 rows, with a verify command for each. The first step of its recipe sits beside each row.

Source: https://agentreadychecklist.com/platform/static-hosting/checklist
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).

# Agent ready checklist: Static hosting

The checklist for Plain static hosting (Netlify, Vercel static, Cloudflare Pages, GitHub Pages, S3 and CloudFront): all 31 rows, with the first step of the recipe where one exists. Versions were read on 2026-11-04; the verify command sits beside each row. The first recipe, for AR-FIND-01, begins: Upload robots.txt with "User-agent: \*" and "Allow: /".

## 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
```

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/).

## All 31 rows on Static hosting

| Identifier | Level | Layer | What it asks | Verify command | On Plain static hosting (Netlify, Vercel static, Cloudflare Pages, GitHub Pages, S3 and CloudFront) |
| --- | --- | --- | --- | --- | --- |
| AR-FIND-01 | MUST | Find | Do not block agents | verify.sh --only=reach-as-agent,robots-verdicts | recipe: Upload robots.txt with "User-agent: *" and "Allow: /". |
| AR-FIND-02 | SHOULD | Find | Answers on one first-party page | manual check, see the page | recipe: Publish each answer once, as a page on your own domain. |
| AR-FIND-03 | SHOULD | Find | Sitemap listed in robots.txt | verify.sh --only=sitemap-listed | recipe: Upload sitemap.xml from your generator and add "Sitemap: https://example.com/sitemap.xml"… |
| AR-FIND-04 | MAY | Find | AI Catalog at .well-known | verify.sh --only=ai-catalog | recipe: Upload .well-known/ai-catalog.json. |
| AR-READ-01 | MUST | Read | Answer in the initial HTML | verify.sh --only=initial-html | recipe: Static HTML is the initial HTML. |
| AR-READ-02 | MUST | Read | Real HTTP status codes | verify.sh --only=status-codes | recipe: Ship a top-level 404.html. |
| AR-READ-03 | SHOULD | Read | Home page with real links | verify.sh --only=initial-html | recipe: Make index.html contain plain a href links to /docs, /pricing and product pages. |
| AR-READ-04 | SHOULD | Read | Docs that answer agent tasks | manual check, see the page | recipe: For each of your top five agent tasks, write a page that holds the steps as text, in… |
| AR-READ-05 | SHOULD | Read | Fenced, language-tagged code | verify.sh --only=code-fences | recipe: Generate pre and code elements with a language class (class="language-bash") from your… |
| AR-READ-06 | SHOULD | Read | Link the discovery files | verify.sh --only=llms-linked,openapi | recipe: Add footer anchors to /llms.txt and /openapi.json, and a Link header for every page in… |
| AR-READ-07 | SHOULD | Read | Ship llms.txt | verify.sh --only=llms-linked | recipe: Upload llms.txt to the publish root; set Content-Type text/plain; charset=utf-8 in… |
| AR-READ-08 | SHOULD | Read | JSON-LD on key pages | verify.sh --only=json-ld | recipe: Put the JSON-LD script in the HTML at build time; the host serves it as uploaded. |
| AR-READ-09 | MAY | Read | Advertise a markdown mirror | verify.sh --only=markdown-negotiation | recipe: Upload page.md twins and either add the alternate link tag in each page or a _headers rule… |
| AR-READ-11 | SHOULD | Read | Pricing as first-party HTML | verify.sh --only=initial-html | recipe: Publish pricing.html with plans and limits as text. |
| AR-ACT-01 | SHOULD | Act | Auth an agent can finish | verify.sh --only=oauth-metadata | workaround: Run the token endpoint, and the RFC 8414 metadata for it, in Pages Functions, which run… |
| AR-ACT-02 | SHOULD | Act | OpenAPI contract | verify.sh --only=openapi | recipe: Upload openapi.json to the root and link it; on Netlify or Pages set… |
| AR-ACT-03 | SHOULD | Act | MCP over Streamable HTTP | verify.sh --only=mcp-or-cli | workaround: On Cloudflare Pages, code runs through Pages Functions; a host without functions serves… |
| AR-ACT-04 | MAY | Act | MCP server card | verify.sh --only=mcp-or-cli | recipe: Place the card at /.well-known/mcp/server-card.json the same way the AR-FIND-04 recipe… |
| AR-ACT-05 | MAY | Act | MCP Apps view | manual check, see the page | workaround: An MCP Apps view is a ui:// resource listed by resources/list on your MCP server. |
| AR-ACT-06 | SHOULD | Act | SDKs and a CLI | verify.sh --only=mcp-or-cli | recipe: Publish the SDK and the CLI from the product's own repository to npm or PyPI; the website… |
| AR-ACT-07 | SHOULD | Act | WebMCP tools | verify.sh --only=webmcp | recipe: Add a script tag that feature-detects document.modelContext and calls registerTool; any… |
| AR-ACT-08 | MAY | Act | Agent payments | curl -s -o /dev/null -w "%{http_code}" <paid-endpoint> | workaround: On Cloudflare Pages, code runs through Pages Functions; a host without functions serves… |
| AR-ACT-09 | MAY | Act | NLWeb /ask endpoint | curl -s "<origin>/ask?query=pricing" \| jq -e "." | workaround: On Cloudflare Pages, code runs through Pages Functions; a host without functions serves… |
| AR-ACT-10 | MUST | Act | An MCP server or a CLI | verify.sh --only=mcp-or-cli | recipe: A CLI meets AR-ACT-10 on any platform: publish it as described in the AR-ACT-06 recipe… |
| CF-CONTENT-SIGNALS | CLOUDFLARE | Find | Content-Signal line | verify.sh --only=robots-verdicts | recipe: Add "Content-Signal: ai-train=no, search=yes, ai-input=yes" under User-agent: * in the… |
| CF-PAY-PER-CRAWL | CLOUDFLARE | Find | Pay per crawl, HTTP 402 | curl -s -o /dev/null -w "%{http_code}" -A "GPTBot/1.0" <url> | recipe: On Cloudflare Pages the site already sits on a Cloudflare zone, so pay per crawl is set in… |
| VERCEL-ROBOTS-EXCLUSIONS | VERCEL | Find | Robots exclusions | verify.sh --only=robots-verdicts | recipe: Open the robots.txt that Plain static hosting serves for your site and read every… |
| CF-MARKDOWN-NEGOTIATION | CLOUDFLARE | Read | Markdown by Accept | verify.sh --only=markdown-negotiation | workaround: Vercel: a vercel.json rewrite with has [{ type: "header", key: "accept", value:… |
| VERCEL-NEGOTIATION-HEADERS | VERCEL | Read | Markdown headers | verify.sh --only=markdown-negotiation | workaround: Set the headers where the rewrite happens: in vercel.json headers add Content-Type… |
| CF-OAUTH-DISCOVERY | CLOUDFLARE | Act | OAuth discovery files | verify.sh --only=oauth-metadata | workaround: A static file works when the metadata is fixed: upload… |
| CF-AGENT-SKILLS | CLOUDFLARE | Act | Agent Skills index | verify.sh --only=agent-skills | recipe: Upload .well-known/agent-skills/index.json and the SKILL.md files; add .nojekyll on GitHub… |

## Sources

-   [ora.ai/api/checks, contract 1.38.0](https://ora.ai/api/checks?utm_source=agentreadychecklist.com&utm_medium=referral&utm_campaign=platform-checklist)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

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