How the score is calculated
Every constant on this page is rendered live from the scoring engine — what you read is exactly what runs.
deductive model · 6 axes · 75 signalsOne number, built deductively
The score starts at a perfect 100 in each of six divisions and only ever goes down. Nothing is added back, nothing is averaged away: a problem costs points in the division where it lives, the six division scores are blended by weight into the composite, and two anti-gaming rules police the result. Deductive scoring mirrors how a human auditor thinks — and it means every point lost maps to something fixable.
The six divisions and their weights
| Division | Weight | Share | Signals |
|---|---|---|---|
| Discoverability | 0.20 | 20% | 17 |
| AI-Readiness | 0.16 | 16% | 9 |
| Speed | 0.25 | 25% | 14 |
| Foundations | 0.15 | 15% | 13 |
| Security | 0.13 | 13% | 14 |
| Reputation | 0.11 | 11% | 8 |
Speed carries the largest weight — Google’s own ranking systems treat mobile performance as a direct signal, so we do too. Weights always sum to exactly 1.00.
Inside one division
| Severity | Factor |
|---|---|
| critical | ×1.5 |
| high | ×1 |
| medium | ×0.75 |
| low | ×0.5 |
| info | ×0 |
| good | ×0 |
A critical issue costs more than its full share (×1.5) — one disaster can outweigh several small sins. And a check that could have been good but simply is not (no sitemap, no llms.txt) draws the absent penalty: share × 0.3 — real, but far cheaper than the same thing broken.
When we could not measure something
Honesty beats generosity. If fewer than 3 signals in a division could fire (the upstream API was down, the site was unreachable, the page was truncated), the division is marked not measured and contributes an imputed value of 35 — at full weight, never re-normalized. A domain cannot dodge its weakest area because a check failed, and a competitor cannot inflate an average by failing conveniently.
The outlier cap
If any measured division falls below 40, the composite is capped at 74 — no matter how brilliant the rest are. A domain with perfect content and broken security must not average its way into "Strong".
The composite and the tiers
composite = 0.20·Discoverability + 0.16·AI-Readiness + 0.25·Speed + 0.15·Foundations + 0.13·Security + 0.11·Reputation| Score | Tier |
|---|---|
| 0 | Critical |
| 40 | Weak |
| 60 | Moderate |
| 78 | Strong |
| 90 | Excellent |
A worked example, computed live
0.20 × 100.0 = 20.00
0.16 × 96.6 = 15.46
0.25 × 72.8 = 18.20
0.15 × 100.0 = 15.00
0.13 × 80.5 = 10.46
0.11 × 100.0 = 11.00
─────────────────────
composite = 90.1