Introducing Core Agent Vitals
For fifteen years the web optimized for one reader: a person with eyes, a browser, and patience measured in hundreds of milliseconds. We learned to budget for that reader — load speed, visual stability, responsiveness.
That reader is no longer alone. A growing share of page consumption is machine: agents that fetch, parse, and act on your pages on someone’s behalf. They don’t see your layout. They don’t wait for hydration the way a person tolerates a spinner. They read structure, recover text, and resolve actions through the accessibility tree. And almost no one is measuring whether they can.
The gap
A page can look flawless to a person and be nearly invisible to an agent. Client-side rendering is the clearest example: the human gets a fast, polished view after hydration; the agent gets an empty shell. Every human metric passes. The machine metric — the one nobody computed — fails completely.
We don’t lack opinions about this. We lack numbers.
Six numbers
Core Agent Vitals is a small, fixed set of metrics with a CLI that computes them for any URL.
- CRR — Content Recovery Ratio: can the agent get the content at all?
- SSD — Semantic Signal Density: signal-to-noise plus structured-data coverage.
- ARR — Action Resolution Rate: can it resolve critical actions via stable locators?
- TC — Token Cost: how expensive is your page to read?
- TTFUT — Time to First Useful Token: how fast does useful content arrive?
- AF — Answer Fidelity: the north star — can a model answer real questions from the page alone?
The numbers aren’t arbitrary
A metric earns its place only if it predicts something real. The cheapest one to compute — CRR — reliably predicts whether a model can recover facts from the page: across 46 pages, CRR separates the pages an agent can read from the ones it can’t at ROC AUC = 0.95, with synthetic canaries confirming the model is reading the page, not reciting what it already knew (priors-leak 0.00). The rank correlation is more moderate (Spearman ρ ≈ 0.5) — and that’s the honest shape of it: pages cluster at readable-or-invisible, so whether a page is legible matters far more than how legible. Watch the cheap number, know the expensive one. That is the point.
Eat your own dog food
This site is the reference implementation. It is built to score at the top of its own framework — zero shipped JavaScript, full server-rendered content, structured data on every page type, and an accessibility tree that doubles as an API. The scorecard is public on the score page. The claim and the proof ship together.
The a11y dividend
The work that makes a page legible to agents is the same work that makes it legible to assistive technology. Labels, roles, landmarks, semantic structure — ARR is, almost exactly, an automated accessibility audit with a business framing. Building for agents makes the web better for people who were underserved all along.
Your website has two users now. Start measuring the second one.
Sources
- W3C, WAI-ARIA Authoring Practices — roles, names, and the accessibility tree that ARR scores. https://www.w3.org/WAI/ARIA/apg/
- Schema.org, structured data vocabularies — the basis for SSD’s structured-data coverage. https://schema.org/
- WHATWG, HTML Living Standard — semantic elements and document landmarks. https://html.spec.whatwg.org/
- Core Agent Vitals specification, CAV-RFC-001 — the formal metric definitions and thresholds. https://agentvitals.dev/spec