How the number is calculated
Score = 100 × passed weight ÷ tested applicable weight, rounded to the nearest integer. Coverage = tested applicable weight ÷ all applicable weight. Unknown checks affect coverage and never pretend to pass. Inapplicable checks are excluded. Page-level weights are divided equally across sampled pages.
If 80 weighted points pass out of 90 tested points, the score is 89. If another 10 points could not be tested, coverage is 90%. Read both numbers together.
Version 1 rules
| Category / check | Weight | Source |
|---|---|---|
| Crawler accessibility Documented search crawler policies allow the target | 30% | IETF |
| Indexability Pages return successful HTTP responses | 15% | |
| Indexability No observed noindex directive | 10% | |
| Content extractability Descriptive page title is available | 8% | |
| Content extractability A primary heading is available | 6% | W3C |
| Content extractability Text is present in raw HTML | 6% | |
| Technical structure Canonical configuration is unambiguous | 8% | |
| Technical structure A valid sitemap is discoverable | 7% | Sitemaps.org |
| Structured data Existing JSON-LD parses successfully | 5% | Schema.org |
| Agent accessibility Native form controls have apparent names | 5% | W3C |
Why these categories
A separate AI readiness component would double-count crawl and content evidence. Trust, authorship, freshness and citation quality require context and are not numerical penalties in version 1.
Intentional policy choices
Training-only crawlers do not affect the search-policy score. Missing llms.txt has no penalty. Missing JSON-LD, forms or canonical declarations is not automatically a failure. Malformed or conflicting canonicals are reported. Sitemap absence has a small weight and may be reasonable for a small, well-linked site.
What the tests cannot prove
Our HTTP observations are not verified crawler activity. Policy is not enforcement. Raw markup does not prove keyboard operation or rendered visibility. JSON-LD syntax does not establish rich-result eligibility. We do not measure indexing, rankings or citations.
Version history
1.0.0: initial raw-HTML model. Weights total 100 before applicability normalization. Reports retain the version so algorithm changes are not mistaken for website changes.