Diagnostic score · Version 1.0.0

No unexplained numbers.

Our technical diagnostic for sampled pages. Not a ranking metric from an AI or search provider.

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

Maximum weights before applicability normalization
Category / checkWeightSource
Crawler accessibility
Documented search crawler policies allow the target
30%IETF
Indexability
Pages return successful HTTP responses
15%Google
Indexability
No observed noindex directive
10%Google
Content extractability
Descriptive page title is available
8%Google
Content extractability
A primary heading is available
6%W3C
Content extractability
Text is present in raw HTML
6%Google
Technical structure
Canonical configuration is unambiguous
8%Google
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.

Run a readiness scan →