Rubric v1.5
Every scan is scored against the published rubric below. Rubric changes require two approvals — EAC engineering (measurement correctness) and Evangent leadership (grading integrity) — and every change bumps the version string. Historical scans retain the rubric version that was active when they ran.
The two-tier composite
v1.3 replaced the v1.2 four-categories-weighted model with a two-tier Hygiene + Frontier composite, and v1.4 and v1.5 carry that math forward unchanged. Hygiene measures whether agents can read the site at all — sensible robots.txt, clean HTML, content reachable without JavaScript, semantic structure, decent token efficiency. Frontier measures genuinely ahead-of-the-curve agent-native features — Accept: text/markdown, /.well-known/mcp.json, WebMCP tool declarations, Content-Signal headers, A2A agent cards, documentation surface. Most well-built 2026 sites land in the B range on hygiene alone; Frontier is what lifts a site to A and A+.
Documentation surface (new in v1.5)
LLMs increasingly recommend products and services based on the quality of the documentation surface a site publishes — whether it has an llms-full.txt corpus, a deep /docs tree in the sitemap, and FAQPage / HowTo / TechArticle / APIReference schema markup. v1.5 adds a new Frontier check that scores sites on all three signals together, and rebalances the Accept: text/markdown and MCP discovery weights from 25% → 20% each to make room.
The check scores three sub-signals: a real /llms-full.txt (>1 KB) is worth 40 points; documentation-path URLs in the sitemap (/docs, /guides, /faq, /reference, /how-to, /api, etc.) are worth up to 30 points on a scaled curve; and any documentation-oriented schema.org type (FAQPage, QAPage, HowTo, TechArticle, APIReference) earns 30 points. Zero documentation surface scores zero on this check — not an accusation, just a signal that the site hasn’t invested in this layer yet.
AI-native content layer (new in v1.4)
v1.4 makes an implicit v1.3 behavior explicit: a site may serve an AI-native content layer — prose that exists in the DOM for agent readers but is hidden from human readers via a CSS class like .sr-only or .visually-hidden. Building for AI readability does not have to disrupt the human presentation; sites can keep the visual design clean while giving agents, Readability, and plain-HTTP crawlers a fuller prose surface to work with.
The policy has three guardrails. The hidden content must be an honest expansion of what humans see — no cloaking, no bait-and-switch between the two layers. It must live in the same HTML document (not injected by JavaScript after load). And it must be hidden via a CSS class, not inline style="display:none" or the hidden attribute — those signal “remove from the page” to assistive tech and agents alike, so content hidden that way should not be relied on for AI readability.
Composite formula
// Content site
composite = hygiene * 0.85 + frontier * 0.15
// Interactive site
composite = hygiene * 0.75 + frontier * 0.25Interactive sites get more frontier credit because WebMCP tools and MCP endpoints genuinely matter more there — an e-commerce site with agent tools is materially more usable than one without.
Site-type classification
Sites are classified automatically as Content (blog, church, news, docs, nonprofit) or Interactive (SaaS, e-commerce, booking, dashboards). Classification uses schema.org types, form patterns, and URL hints, and can be overridden by the user.
Hygiene checks
Hygiene is a weighted average of three sub-categories. The sub-category weights roll up into the Hygiene composite.
| Sub-category | Weight in Hygiene |
|---|---|
| Crawler accessibility | 30% |
| Content readability | 35% |
| Semantic structure | 35% |
| Check | Sub-category | Within-sub-category weight |
|---|---|---|
| robots.txt AI-agent policy | crawler | 45% |
| JavaScript dependency | crawler | 40% |
| Login / paywall wall | crawler | 15% |
| Accept: text/markdown negotiation | readability | 15% |
| Content-to-chrome ratio | readability | 45% |
| Token efficiency | readability | 40% |
| JSON-LD / schema.org | semantic | 30% |
| Open Graph & Twitter Cards | semantic | 20% |
| Heading hierarchy | semantic | 20% |
| Language declaration | semantic | 10% |
| sitemap.xml | semantic | 20% |
Frontier checks
Frontier is generous at the low end and demanding at the high end. A site with any two of the top three (content negotiation, MCP, WebMCP or rich structured data) scores 50+. A site with all three plus decent minor signals scores 90+. The top scores (95+) are reserved for sites that have genuinely built comprehensive agentic-web support.
| Check | Weight in Frontier | Applies to |
|---|---|---|
| Accept: text/markdown negotiation | 20% | both |
| MCP server discovery | 20% | both |
| WebMCP tool declarations | 20% | interactive |
| Rich structured data | 20% | content |
| Documentation surface | 10% | both |
| Content-Signal response header | 10% | both |
| A2A agent card | 10% | both |
| llms.txt / ai.txt intent signal | 5% | both |
| .md mirror | 5% | both |
Letter grades
| Composite | Grade | Meaning |
|---|---|---|
| 95–100 | A+ | Agentic-web leadership. Genuinely exceptional. |
| 88–94 | A | Ahead of the curve on AI readability. |
| 78–87 | B | Fundamentals solid; frontier features would push to A. |
| 65–77 | C | Readable, but real gaps. Clear next steps. |
| 50–64 | D | Serious issues; agents struggle here. |
| 0–49 | F | Unreadable to most agents. |
Human-only ceiling
A site that scores below 15 on Frontier — meaning essentially no agent-native features — has its composite capped at 85 (top of B) regardless of how strong its Hygiene score is. This is a softer replacement for the v1.2 D+ penalty: pristine HTML and perfect semantic structure still top out at B until the site adds some agent-native surface. The cap is disclosed on every affected scorecard — it’s aspirational, not punishing: B is a respectable grade that says “you’re doing the basics right” and the cap preserves a meaningful difference between sites that have invested in the agentic web and sites that have only invested in the traditional web.
Where we're opinionated
The rubric tracks live agentic-web protocols — Accept: text/markdown, /.well-known/mcp.json, WebMCP, Content-Signal — because empirical data shows these are what agents actually use in 2026. llms.txt and ai.txt are kept as minor signals of intent, not load-bearing checks; independent log studies show ~0.1% of AI crawler requests fetch them.
Governance
Rubric changes are tracked in the lib/rubric/ directory of the open-source repo, one file per version. Breaking changes live alongside the previous version so historical scans continue to read their own version's scoring logic. The rubric is reviewed quarterly against the current agentic-web landscape.