AI-Readiness Score methodology — v1.0
TL;DR.
The A–F AI-Readiness Score sums 20 signals across four buckets: discovery (agents.json, ai-plugin.json, llms.txt, MCP/A2A cards — 13 pts), crawler policy (robots.txt AI section, X-Robots-Tag, Content-Signal — 7 pts), citation surface (Speakable schema, author identification, markdown content negotiation, Link headers — 6 pts), and authentication (OAuth metadata, Web Bot Auth, API catalog — 4 pts). Source of truth: api/ai-check.php. Anchored to llmstxt.org, RFC 8615 (.well-known), MCP spec, Google A2A.
1. Discovery — 13 pts
- 2 pts —
/.well-known/agents.json(2 pts if valid + has skills, 1 pt if minimal) - 1 pt —
/.well-known/ai-plugin.json(OpenAI / ChatGPT plugin descriptor) - 2 pts —
/llms.txt+/llms-full.txt(llmstxt.org spec) - 2 pts —
<link rel="llms-txt">+rel="ai-content"in <head> - 1 pt —
<meta name="ai-content">+ai-license - 2 pts —
/.well-known/mcp/server-card.json(Anthropic MCP — Claude/Cursor/Zed) - 2 pts —
/.well-known/agent-card.json(Google A2A protocol) - 1 pt —
/.well-known/agent-skills/index.json
2. Crawler Policy — 7 pts
- 3 pts — robots.txt has explicit AI section: 3 pts for ≥10 AI bots allowlisted (GPTBot/ClaudeBot/PerplexityBot/etc.), 2 pts for 5–9, 1 pt for ≥1
- 2 pts —
X-Robots-Tag: index, followon indexable pages (HTTP header form, not just <meta>) - 2 pts — Content-Signal directives (IETF ai-train / ai-input / search) in robots.txt
3. Citation Surface — 6 pts
- 1 pt — schema.org SpeakableSpecification on the homepage WebSite node
- 2 pts — Author identification: Person schema with sameAs, byline link, dateModified
- 1 pt — Markdown content negotiation (Accept: text/markdown → llms.txt body)
- 1 pt —
Link:HTTP header advertising llms.txt + openapi + sitemap + MCP card + A2A card - 1 pt — sitemap reference in llms.txt + linked from RSS
4. Authentication & Catalog — 4 pts
- 1 pt —
/.well-known/openid-configuration+oauth-authorization-server - 1 pt —
/.well-known/http-message-signatures-directory(Web Bot Auth) - 1 pt —
/.well-known/api-catalog(RFC 9727 linkset) - 1 pt — OpenAPI specification linked from agents.json + ai-plugin.json
Grade letter mapping
Same threshold table as Health Score:
| Percent of max | Grade |
|---|---|
| ≥ 90% | A |
| ≥ 70% | B |
| ≥ 50% | C |
| ≥ 30% | D |
| < 30% | F |
References
- llms.txt specification — Jeremy Howard, fast.ai
- RFC 8615 — Well-Known Uniform Resource Identifiers
- Model Context Protocol (MCP) spec — Anthropic
- Google A2A (Agent-to-Agent) protocol
- RFC 9727 — API Catalog linkset
- IETF AI Content Signal directives
- schema.org SpeakableSpecification
Versioning
v1.0 — published 2026-05-05. Mirrors api/ai-check.php at HEAD on 2026-05-05 (20 signal checks). The category weights are author judgement: Discovery rated highest because without it AI engines cannot cite the site at all; Authentication rated lowest because most public-content engines do not exercise it. Future weight changes bump the version + add a delta block.