Menu

Rubric v1.0.1

How we score agent readiness

The whole rubric, published. 27 checks across four pillars worth 25 points each. Every check is automatable from an unauthenticated crawl and returns evidence we captured, never an opinion.

We publish this for a simple reason: a score you cannot audit is a score you should not trust.

A

Discovery & access

25 points

Can agents find and reach the content at all?

Checks for pillar A: Discovery & access
IDCheckPointsFix effortHow it is evaluated
A1robots.txt exists and parses2LowReturns 200 with valid directives. A 404 scores partial credit — the site is open by default, but the omission is sloppy.
A2Major AI crawlers allowed6LowAllow/deny tested for GPTBot, OAI-SearchBot, ClaudeBot, Claude-User, PerplexityBot and Google-Extended. Scored proportionally to how many are permitted. A blanket Disallow for all six scores zero.
A3XML sitemap valid and referenced3LowOne point for existing, one for parsing with at least one URL, one for being referenced from robots.txt.
A4llms.txt present4LowAn llms.txt at the root with three or more described links scores three points; an llms-full.txt adds one. An empty or boilerplate file scores one.
A5Bot user-agent HTTP health3LowAll three bot user agents receive a 200 rather than a 403 or 429, plus one point for a median TTFB under 1.5 seconds. This is where edge and CDN blocking surfaces, regardless of what robots.txt says.
A6No hard interstitial2MediumThe rendered page is not dominated by a CAPTCHA, challenge screen or cookie wall — detected from known challenge markup and from any overlay covering more than half the viewport.
A7Server-rendered content parity5HighVisible text in the raw HTML compared against the fully rendered DOM. A ratio at or above 0.8 scores full marks; below 0.5 scores zero, because an agent using a plain fetch sees essentially nothing.
B

Understanding

25 points

Once fetched, can a machine parse what this site is and sells?

Checks for pillar B: Understanding
IDCheckPointsFix effortHow it is evaluated
B1JSON-LD present and valid5MediumAt least one parseable application/ld+json block on the homepage, and on half or more of the crawled pages. Invalid JSON scores zero for that page.
B2Correct schema types for the site type5MediumOrganization or WebSite sitewide, plus type-specific markup: Product and Offer with price and availability for commerce; Article, FAQPage or SoftwareApplication for SaaS and content sites.
B3Semantic HTML structure4MediumExactly one h1 per page, no skipped heading levels, and real landmarks — main, nav and footer, or their ARIA equivalents.
B4Meta and Open Graph3LowA unique title of 15–70 characters, a meta description of 50–160, and og:title, og:description and og:image all present.
B5Clean text ratio3MediumVisible text as a proportion of HTML bytes, excluding the contents of script and style elements. At or above 0.10 scores full marks, 0.05–0.10 scores two. This penalises div soup and megabyte pages. Script contents are excluded deliberately: server-rendering frameworks inline a serialised payload that duplicates the page text, and counting it would penalise the server-rendered architecture check A7 rewards.
B6Alt text coverage2LowContent images — icons under 50px excluded — carrying non-empty alt text. 80% or better scores full marks.
B7Canonical and duplication hygiene3LowA self-consistent rel=canonical, plus www/non-www and http/https all resolving to one canonical host.
C

Actionability

25 points

Can an agent actually do things — navigate, search, fill forms, transact?

Checks for pillar C: Actionability
IDCheckPointsFix effortHow it is evaluated
C1Form usability5MediumEvery input carries a label or aria-label, input types are correct (email, tel, number), and submit is a real button. A site with no forms at all scores partial credit.
C2Navigable link graph4MediumNavigation uses real anchor elements rather than click-handled divs, fewer than 5% of links use contextless text like 'click here', and there are breadcrumbs or a clear URL hierarchy.
C3Interactive element semantics4MediumButtons are button elements rather than clickable divs, interactive elements are focusable with sane tab order, and no keyboard traps appear under render.
C4Machine endpoints and agent manifests5HighAny of an agents.json, an MCP or WebMCP manifest, a published API documentation link, or a discoverable OpenAPI spec. More than one scores full marks. Most sites score zero here today — which is precisely why it separates the leaders.
C5Commerce actionability4HighCommerce sites only. Product pages within two clicks of the homepage, price and availability in schema matching the page, a cart or checkout path returning 200 without login, and a guest or express checkout signal. Redistributed across C1–C4 for non-commerce sites.
C6On-site search3MediumA search form exists, and it uses GET with a query parameter so an agent can construct search URLs directly rather than having to drive a form.
D

Trust & freshness

25 points

Should an agent — or the model behind it — trust and cite this site?

Checks for pillar D: Trust & freshness
IDCheckPointsFix effortHow it is evaluated
D1Transport security4LowValid TLS, an HSTS header, and no mixed content under render.
D2Verifiable identity4LowA contact page or discoverable contact details, plus Organization schema with sameAs links to at least one social or registry profile.
D3Policies discoverable4LowA linked privacy policy, plus shipping and returns pages for commerce sites or a terms page otherwise.
D4Freshness signals4MediumSitemap lastmod present, at least 20% of URLs modified in the last 90 days, and visible dates on articles or a changelog.
D5Identity consistency3LowThe site name agrees across the title element, og:site_name and the schema name, and both favicon and og:image resolve.
D6security.txt2LowA valid /.well-known/security.txt per RFC 9116, including a future-dated Expires field.
D7Multi-page stability4MediumEvery crawled page returns 200, no page exceeds 4 seconds TTFB, and template and navigation stay consistent across pages.

Grading

Score to grade mapping
GradeScore
A+95–100
A85–94
B70–84
C55–69
D40–54
F0–39

How fixes are prioritised

Every failed check carries an impact (roughly its point weight) and an effort: low for a file you can upload, medium for template and schema work, high for rendering architecture or checkout. Reports rank the top five by impact descending and effort ascending, so the cheap, high-value work is obvious.

Versioning and disputes

Every scan stores its rubric version. Standards are moving: llms.txt adoption, WebMCP, agentic commerce protocols. So the rubric will change, but historical scores are never rewritten. If you think a check scored your site wrongly, tell us and we will publish the correction.

Rubric changelog

  1. v1.0.1

    B5 (clean text ratio) now excludes the contents of script and style elements from the denominator. Found by auditing our own site: modern server-rendering frameworks inline a serialised payload duplicating the page text, which on our homepage was 60% of the document. Measured against total bytes, the check penalised precisely the server-rendered architecture that check A7 rewards — so it was measuring framework choice rather than markup quality. Scores issued under v1.0.0 are not restated.

  2. v1.0.0

    Initial published rubric. Four pillars, 25 points each, 27 checks.