The Agent-Ready Web Standard
v0.2 — Draft — July 2026
Changes in v0.2: markdown must be reachable from canonical URLs (.md suffix, content negotiation, alternate links), CORS and conditional-request requirements, query endpoints, and machine-readable usage policy.
This is the technical companion to the Agent-Ready Website Checklist. The checklist tells you what to build and why. This page specifies how — formats, schemas, and protocols.
Start with the checklist if you haven't read it.
Content Format
Store content in a structured, parseable format with embedded metadata. The recommended approach is markdown with YAML frontmatter:
---
title: "Page Title"
type: product
id: "unique-stable-id"
description: "One-line summary."
last_updated: "2026-04-12"
---
# Page Title
Body content in markdown.
Requirements:
- Every content item of the same type has the same metadata fields
- Fields use consistent types: ISO 8601 dates, standard units, predictable value sets
- Content is self-contained — no external rendering dependencies
- The metadata schema is documented per content type
Acceptable formats: Markdown + YAML frontmatter, JSON files, structured XML. The format matters less than consistency and machine-readability.
Metadata Schema
Required fields (all content types)
| Field | Type | Description |
|---|---|---|
title |
string | Human-readable title |
type |
string | Content category: product, article, doc, page, etc. |
id |
string | Permanent unique identifier (not the URL slug) |
description |
string | One-line summary |
last_updated |
date | ISO 8601 date of last substantive change |
Recommended fields
| Field | Type | Description |
|---|---|---|
created or date |
date | First publication date |
author |
string | Creator or maintaining organization |
tags |
list | Consistent taxonomy tags |
last_verified |
date | When factual accuracy was last confirmed |
Type-specific fields
Each content type should define additional fields. Document the schema so agents know what to expect. Examples:
Product/model type:
provider: "Company Name"
pricing:
input: "$5.00 / 1M tokens"
output: "$25.00 / 1M tokens"
context_window: 1048576
benchmarks:
mmlu: 93.1
best_for:
- "Complex reasoning"
Comparison type:
models_compared:
- "model-a"
- "model-b"
comparison_type: "head-to-head"
Access Protocols
Raw content
Serve source content at predictable URLs alongside rendered HTML pages:
/content/[type]/[slug].md → markdown with YAML frontmatter
/content/[type]/_index.md → type index
/content/_index.md → site index
Markdown from canonical URLs
Agents arrive at canonical page URLs — from search results, citations, and links — not at your raw-content tree. The raw version must be reachable from the canonical URL, without prior knowledge of your conventions. Provide all three:
.mdsuffix alias.GET /models/gpt-5.4.mdreturns (or redirects to) the raw markdown for/models/gpt-5.4.- Content negotiation.
GET /models/gpt-5.4withAccept: text/markdownreturns (or redirects to) the raw markdown. - Alternate links. Every HTML page declares its markdown source in the head:
<link rel="alternate" type="text/markdown" href="/content/models/gpt-5.4.md" />
A redirect (307/308) to the raw file is acceptable and has the advantage of teaching agents the canonical raw-content mapping via the Location header.
Cross-origin access (CORS)
Agents running in browser contexts — web apps, sandboxes, extensions — cannot use any of this without CORS. All content and API endpoints must send:
Access-Control-Allow-Origin: *
on GET responses, and answer preflight OPTIONS requests on endpoints accepting other methods or custom headers.
Caching and conditional requests
Machine endpoints get polled. Serve ETag (and/or Last-Modified) on content and API responses, honor If-None-Match with 304 Not Modified, and set an explicit Cache-Control with a non-zero max-age so well-behaved clients can skip redundant fetches entirely.
JSON API
Provide a structured API at a known base URL:
/api/v1/index.json → all content types and counts
/api/v1/[type].json → all items of a type with full metadata
/api/v1/[type]/[slug].json → single item (optional)
API responses must return typed fields — not HTML fragments.
Query endpoints
Static indexes make agents download everything and filter locally. Sites with more than a handful of items should expose at least one server-side query endpoint so a question costs one call:
/api/v1/search.json?q=... → ranked keyword search over all content
Domain-specific filters (e.g. /api/v1/models-filter.json?capability=vision) follow the same principle: the agent states constraints, the site does the matching.
Bulk access
Provide a way to fetch all content efficiently:
/llms-full.txt → all content in one file
Or: paginated API endpoints, a downloadable archive, or equivalent.
Discovery
llms.txt
A machine-readable index at /llms.txt following the llms-txt.org format:
# Site Name
> One-line description.
## Content Type
- [Item Title](/path/to/item): Description
well-known discovery
An endpoint at /.well-known/ai.json:
{
"name": "Site Name",
"description": "What this site contains.",
"llms_txt": "/llms.txt",
"llms_full": "/llms-full.txt",
"api": "/api/v1/",
"raw_content": "/content/",
"search": "/search-index.json",
"sitemap": "/sitemap.xml"
}
Search index
A JSON file at a known path with structured metadata for all content:
[
{
"title": "Page Title",
"type": "model",
"id": "page-id",
"description": "Summary.",
"url": "/models/page-id",
"tags": ["tag1", "tag2"]
}
]
Sitemap
An XML sitemap that includes both:
- Human-readable page URLs:
https://example.com/models/page-id - Machine-readable content URLs:
https://example.com/content/models/page-id.md
robots.txt
Explicitly allow agent access:
User-agent: *
Allow: /content/
Allow: /api/
Allow: /llms.txt
Allow: /search-index.json
Trust Signals
Timestamps
Use three distinct dates where applicable:
| Field | Meaning |
|---|---|
last_updated |
Last substantive content change |
created / date |
First publication |
last_verified |
Last factual accuracy check (distinct from edits) |
Confidence markers
For volatile fields, add recency metadata:
pricing:
input: "$5.00 / 1M tokens"
_as_of: "2026-04-01"
_confidence: "check-provider"
Content integrity
Include a hash of the body content so agents can check cache freshness:
content_hash: "sha256:a3f2b8c..."
Usage policy
An agent deciding whether it may ingest, cache, or republish your content needs the answer in machine-readable form — not buried in a terms-of-service page. Declare it in your discovery manifest:
"usage_policy": {
"summary": "Free for human and agent consumption with attribution. Commercial redistribution requires a license.",
"attribution": "Suggested attribution string.",
"rate_limits": "Expectations, if any.",
"commercial_license": "/pricing/commercial-license",
"contact": "you@example.com"
}
State at minimum: what consumption is allowed, what requires permission, attribution expectations, and a contact.
Relationship Metadata
Typed relationships
Link related content in metadata with explicit relationship types:
related:
- id: "other-page-id"
type: comparison
relationship: "compared_in"
- id: "tool-id"
type: agent
relationship: "used_by"
Change feed
Provide a JSON or RSS feed at a known URL:
/feed.json → JSON Feed format
/feed.xml → RSS/Atom
Entries must include: title, URL, date, type, and a summary.
Compliance Levels
See the checklist for the full maturity model. Summary:
| Level | Name | Key Requirements |
|---|---|---|
| 0 | Scrape-Only | HTML only, no structured access |
| 1 | Readable | Semantic HTML, basic meta, sitemap |
| 2 | Structured | Raw content, consistent metadata, llms.txt |
| 3 | Agent-Ready | JSON API, canonical IDs, provenance, search index |
| 4 | Agent-Native | Relationships, feeds, hashes, confidence signals, MCP |
Most of the agent-readiness benefit comes from reaching Level 2.
Reference Implementation
This site — ai-future-ready.com — implements this standard at Level 3, including the v0.2 additions: .md suffix aliases and Accept: text/markdown negotiation on every canonical URL, text/markdown alternate links, CORS on all machine endpoints, explicit cache headers with ETag revalidation, ranked search at /api/v1/search.json, and a machine-readable usage policy in /.well-known/ai.json. See the checklist for our honest self-assessment and the specific gaps we're working on.
Want this for your own site? The Agent Readiness Audit scores your site against this standard and delivers a priority fix list. Request an audit or run the free self-audit scorecard first.