Checks, issues and the score
What is checked, how issues are tracked across audits, and how the 0–100 score works.
Checks
Every audit runs 43 deterministic checks. Each finding has a severity (critical, high, medium or low), the affected URLs, the evidence, and a plain-language fix.
| Category | Examples |
|---|---|
| Technical | title.missing, canonical.missing, meta_robots.noindex, redirect.chain_long, links.broken, orphan.page |
| Content | content.thin, content.near_empty_duplicate, sitemap.not_in_sitemap |
| Performance | perf.lcp, perf.inp, perf.cls from Chrome UX Report field data and PageSpeed |
| Structured data and AI search | schema.missing_required_prop, schema.unknown_type, geo.ai_crawler_blocked, geo.llms_txt |
| Search Console | gsc.clicks_declining, gsc.cannibalization, gsc.index_mismatch, gsc.intent_mismatch |
Status checks such as response errors, redirects and broken links see every fetched page. All other checks only look at pages that loaded successfully.
Issues across audits
Findings are matched across audits by a fingerprint of the check, the affected URLs and the relevant evidence, so the same problem keeps its identity. After each audit, an issue is:
- New: seen for the first time.
- Existing: still there.
- Resolved: gone from this audit.
- Regressed: resolved before, and back again. Regressions can raise an [alert](/docs/monitoring).
The score
The score starts at 100 and loses points for findings. Each finding costs points by severity (critical 20, high 10, medium 5, low 2), and each check has a cap so one widespread problem can't sink the whole score. Core Web Vitals add a separate penalty from the slowest page, up to 40 points.
Subscores for technical, content, performance and structured data + AI search are 100 minus the points lost in that category.
| Grade | Score |
|---|---|
| A+ / A / A- | 97 / 93 / 90 and up |
| B+ / B / B- | 87 / 83 / 80 and up |
| C+ / C / C- | 77 / 73 / 70 and up |
| D+ / D | 67 / 60 and up |
| F | below 60 |
gsc.*), AI notices (ai.*) and blocked pages (crawl.blocked) are tracked as issues but never scored: they describe traffic or crawl conditions, not your site's SEO.