Here is exactly how we worked out your score
One number out of 100, weighted by severity, scaled by how many pages each finding reaches. Three constants and one line of arithmetic - all of it below, and all of it the same values the API scores with.

The premise
A check that passes costs nothing
So a clean site scores 100 - not 98, not “98 because of rounding”. Everything below is a description of what a failure costs, and nothing else deducts.
Severity decides the weight
A critical failure is worth five standard ones, because it is: one stops a page being indexed and the other is tidiness. The weights are 10, 5 and 2.
Reach decides most of the rest
A finding on 340 of 340 pages is a template bug. The same finding on 3 of 340 is one page having a bad day. The score can tell those apart.
Failing at all costs something
A quarter of the weight is charged the moment a check fails anywhere. Without it, one broken page in a thousand rounds away to nothing and the score cannot tell clean from broken.
The arithmetic
One line
This is the whole deduction model. What a failure costs is this line; what it costs the site is that figure scaled by the discipline the check belongs to. There is no third formula and no curve applied afterwards.
deduction = weight × ( 0.25 + 0.75 × reachRatio )
- weight
- 10 for critical, 5 for important, 2 for standard. Suggestions have no severity and are excluded from scoring entirely.
- 0.25
- The presence share - what failing at all costs, before reach is counted. A check failing on one page of a thousand costs a quarter of its weight; the same check failing everywhere costs all of it. A four-times spread that reach alone cannot produce.
- reachRatio
- Distinct pages carrying the finding, divided by pages crawled. Distinct pages - not rows, so a check that records one row per offending element cannot pin at full reach on a site of any size.
Worked through
A critical check fails on 34 of 340 crawled pages. Reach is 0.1. The deduction is 10 × (0.25 + 0.75 × 0.1) = 3.25 weight units - against the same check failing on every page, which would cost the full 10. That figure is then scaled by the discipline the check sits in: Crawlability and Indexability count at full weight, On-Page and Link Integrity at 0.9, Content & Answers 0.7, Media 0.6, Delivery & Trust and International 0.5, Structured Data 0.4, and Social & Sharing 0.2. A missing Open Graph image and a blocked robots.txt do not cost the same even at the same severity, and the multiplier is why.
What each severity is worth
| Severity | Weight | Checks |
|---|---|---|
| Critical Stops a page being indexed, reached or served safely. | 10 | 16 |
| Important Measurably costs you visibility, or how the page presents. | 5 | 69 |
| Standard Worth fixing, rarely urgent. | 2 | 41 |
| Suggestion Advice, not a defect. Carries no severity and costs no points at all. | 0 | 24 |
How reach is banded
The score uses the raw ratio; these bands are how findings are grouped on screen, so you can sort by blast radius rather than by severity alone. Site-wide sits outside the ramp because it is not a percentage - it is a finding recorded against no page at all.
- Site-widerobots.txt, the sitemap, a domain-level redirectno page
- Most pagesa template bug50–100%
- Many pagesa whole section10–50%
- Some pagesa batch1–10%
- A few pagesone page having a bad dayunder 1%
The awkward parts
Four things the score deliberately refuses to do
Each of these was a real defect at some point. They are listed because a scoring model is only trustworthy to the degree its failures are known.
- Narrowing a check to a set of URLs does not buy the score back. A check you have scoped away from part of the site still costs you on the pages it applies to, and a check you ignore still costs you everywhere - otherwise the fastest way to a good number would be to stop looking.
- Site-wide findings are not divided by the page count. A missing sitemap is a missing sitemap; on a 10,000-page site it used to cost a fifth of one percent of its weight.
- Reach counts distinct pages, not stored rows. A check writing one row per offending element used to pin at full reach on a site of any size.
- Below 20 crawled pages the ratio is smoothed, so 1 bad URL out of 3 does not swing the score by a third. Above that the raw ratio is already stable and nothing is applied.
The CI threshold ships high
A site's CI/CD gate defaults to a score of 97, which is a bar very few real websites clear - if you wire the gate in and leave the default, your first build will probably fail. It is a per-site setting: pick the number your site actually scores today and raise it as you fix things. How the gate works
See your own number
A first scan takes a few minutes and returns a score with every deduction itemised - which check, which pages, and what fixing it gives back.
No card required · 500 URLs a month on the free plan