How we score a site
Every check the Scanner runs, what it is worth, and the standard it is derived from. A score you can't audit is just an opinion — so this is the whole rubric, including the parts that count against us.
How the maths works
Each check scores 0.0–1.0. A category score is the weight-weighted mean of its checks, times 100. The overall score is the weight-weighted mean across every check, so a category's influence is the sum of its weights — currently 28.4 across 22 checks.
A check that doesn't apply to a site is marked not applicable and dropped from both sides of that mean — it is never scored as zero. Weights and scoring rules are versioned; two scores are only compared within the same rubric version, so a change we make never shows up as a regression you caused.
AI-agent readiness
Can an autonomous agent read and act on the page without executing JavaScript? Weight mass 5.0 (18% of the overall score).
| Check | Weight | Derived from |
|---|---|---|
| Server-rendered contentcriticalagent.server_rendered_content | Weight 2.0 | Google: JavaScript SEO basicsOpenAI: crawlers and bots |
| Structured datacriticalagent.structured_data | Weight 1.5 | JSON-LD 1.1 (W3C Recommendation)Google: structured data policies |
| Machine-readable metadataagent.machine_metadata | Weight 1.0 | HTML Standard: the meta element |
| llms.txt / agents.md qualityagent.llms_txt | Weight 0.5 | llms.txt specificationLighthouse: llms.txt audit |
SEO & crawlability
Can crawlers find, fetch and index the page at all? Weight mass 5.8 (20% of the overall score).
| Check | Weight | Derived from |
|---|---|---|
| robots.txt presentseo.robots_txt | Weight 1.5 | RFC 9309: Robots Exclusion Protocol |
| Title & meta descriptioncriticalseo.title_meta | Weight 1.5 | Google: control your title links |
| Open Graph tagsseo.open_graph | Weight 1.0 | The Open Graph protocol |
| XML sitemapseo.sitemap | Weight 1.0 | Sitemaps XML protocol |
| Canonical URLseo.canonical | Weight 0.8 | RFC 6596: The Canonical Link Relation |
Performance & accessibility
Is the page fast and usable — for people and for machines? Weight mass 9.0 (32% of the overall score).
| Check | Weight | Derived from |
|---|---|---|
| Accessibility (Lighthouse)criticala11y.lighthouse | Weight 2.0 | WCAG 2.2 (W3C Recommendation) |
| Largest Contentful Paintcriticalperf.cwv_lcp | Weight 2.0 | Largest Contentful Paint (web.dev) |
| Cumulative Layout Shiftcriticalperf.cwv_cls | Weight 1.5 | Cumulative Layout Shift (web.dev) |
| Interaction to Next Paintcriticalperf.cwv_inp | Weight 1.5 | Interaction to Next Paint (web.dev) |
| First Contentful Paintperf.cwv_fcp | Weight 1.0 | First Contentful Paint (web.dev) |
| Speed Indexperf.cwv_speed_index | Weight 1.0 | Lighthouse: Speed Index |
Security
Are transport and the standard protective headers in place? Weight mass 8.6 (30% of the overall score).
| Check | Weight | Derived from |
|---|---|---|
| HTTPScriticalsecurity.https | Weight 2.0 | RFC 9110: HTTP Semantics |
| Content-Security-Policycriticalsecurity.csp | Weight 1.5 | Content Security Policy Level 3 (W3C) |
| HSTS headercriticalsecurity.hsts | Weight 1.5 | RFC 6797: HTTP Strict Transport Security |
| No mixed contentsecurity.mixed_content | Weight 1.0 | Mixed Content (W3C) |
| X-Content-Type-Optionssecurity.content_type_options | Weight 1.0 | Fetch Standard: X-Content-Type-Options |
| Cookie security flagssecurity.cookie_flags | Weight 0.8 | RFC 6265: HTTP State Management Mechanism |
| Referrer-Policysecurity.referrer_policy | Weight 0.8 | Referrer Policy (W3C) |
Why llms.txt barely counts
It used to be the heaviest check we ran. The evidence didn't support that: an Ahrefs study of 137,210 domains found 97% of published llms.txt files were never requested at all, and no major provider documents reading one. So we cut its weight and stopped penalising sites that don't publish one — if the file is absent, the check simply doesn't apply. We still grade it when it ispublished, because Chrome's Lighthouse audits it under Agentic Browsing.
That is the standard every weight on this page is held to, and why each one carries a citation. Tell us if you think one is wrong — with a source, we'll change it.