Same input, same score

Each check is a rule applied to what we fetched: HTTP responses, the page HTML, robots.txt, sitemap.xml, and optional data from Google PageSpeed Insights (Lighthouse and the Chrome UX Report) and Google search results via Serper. There is no AI scoring and no randomness. If your score changes between scans, something we measured changed: your pages, server response, real-user speed data, or rankings. Each report records the methodology version it was scored with.

Category weights

The overall grade is a weighted average of six categories, each scored 0-100. A category whose module was not part of a scan gets a neutral 75 and is labelled "not measured", so skipping a module neither helps nor hurts.

CategoryWeightWhat it answers
Technical20%Can search engines fetch and crawl the site?
On-page25%Are titles, descriptions, headings and markup in order?
Content20%Is there enough readable text?
Performance15%How fast is the site for real visitors?
Accessibility10%Lighthouse accessibility score (mobile).
Rankings10%Do your target keywords rank?

Grade bands

A · 90-100 B · 80-89 C · 70-79 D · 60-69 F · 0-59

Technical (20%)

Can search engines fetch and crawl the site? Each category starts at 100; the deductions below apply.

Crawl errors
Share of crawled pages that fail or return HTTP 4xx/5xx. Over 25% costs 30 points; over 10% costs 18.
XML sitemap
No /sitemap.xml costs 10 points; an empty sitemap costs 5.
robots.txt
Blocking all crawlers costs 20 points; a missing robots.txt costs 5. Rules are evaluated per user agent.
Broken internal links
4 points per broken link, up to 20.
Favicon
No favicon costs 10 points.
Lighthouse Best Practices
When available, blended in at 25%.

On-page (25%)

Are titles, descriptions, headings and markup in order? Each category starts at 100; the deductions below apply.

Critical issues
8 points each, up to 40: missing titles, duplicate titles, broken links, invalid JSON-LD, fetch errors.
Warnings
3 points each, up to 25: missing or long descriptions, long titles, missing or multiple H1s, missing canonical or viewport, images without alt text, noindex pages (meta or X-Robots-Tag), invalid canonicals, hreflang conflicts, redirect chains, incomplete Open Graph, missing Twitter Card.
Duplicates
Duplicate titles (5 each, up to 15), duplicate descriptions (5 each, up to 10), near-duplicate page text at or above 85% shingle similarity (5 each, up to 15).
Structured data
Pages without JSON-LD (2 each, up to 10); incomplete Open Graph (2 each, up to 8).
Lighthouse SEO
When available, blended in at 20%.

Content (20%)

Is there enough readable text? Each category starts at 100; the deductions below apply.

Coverage
Two or fewer crawled pages costs 15 points.
Average length
An average below 300 words costs 15 points.
Thin pages
3 points per page under 300 words, up to 15.
Readability
Flesch Reading Ease and Flesch-Kincaid grade are reported per page (standard published formulas).

Performance (15%)

How fast is the site for real visitors? Each category starts at 100; the deductions below apply.

HTTP probe
Response time (over 1.5 s costs 12, over 3 s costs 25), HTML size, HTTPS (20), compression (8), and security headers (4 per missing header below 3).
Lighthouse lab data
Mobile performance score from Google PageSpeed Insights, when configured.
Real-user field data
Chrome UX Report p75 for LCP, INP and CLS (good 100, needs improvement 60, poor 20).
Blend
Probe 30% + Lighthouse 40% + field data 30% when all are available; probe 40% + Lighthouse 60% without field data.

Accessibility (10%)

Lighthouse accessibility score (mobile). Each category starts at 100; the deductions below apply.

Lighthouse Accessibility
Used directly when PageSpeed Insights data is available.

Rankings (10%)

Do your target keywords rank? Each category starts at 100; the deductions below apply.

Positions
Share of keywords in the top 3 (50%) plus share in the top 10 (50%), from Google results via Serper.

AI-search readiness (separate sub-grade)

Scored out of 100 and reported next to the overall grade. It does not change the overall grade.

CheckPointsRule
AI crawler access30Answer-engine crawlers allowed in robots.txt (points are proportional). Training crawlers are listed but never penalised.
llms.txt15A valid /llms.txt (H1 title required; links recommended). Half points if present but invalid.
Identity schema20Organization, LocalBusiness or Person JSON-LD on the homepage with name, url, logo and sameAs (plus address and telephone for local businesses). 4 points off if the schema name does not appear in the title or H1.
Content without JavaScript20Share of the page's words present in the raw HTML compared with the browser-rendered page. Estimated from raw HTML when rendering is off.
Semantic structure15<main>, <header>/<footer>, <nav>, exactly one H1, headings in order, and an html lang attribute.

Answer-engine crawlers (scored): OAI-SearchBot, ChatGPT-User, PerplexityBot, Perplexity-User, Claude-SearchBot, Claude-User, Googlebot, Bingbot, Applebot.

Training crawlers (reported, never penalised): GPTBot, ClaudeBot, Google-Extended, Applebot-Extended, CCBot, Meta-ExternalAgent, Bytespider.

Limits we want you to know about