How the score is calculated

No black box: every point comes from a measurable check. Nothing is estimated or guessed.

1. Checks

We run 63 deterministic checks. Each failed check has a severity and a penalty: critical = 25, warning = 10, suggestion = 3.

2. Pages affected

For checks evaluated on every page, the penalty is scaled by the share of crawled pages affected: penalty × (0.5 + 0.5 × affected / crawled). One page out of ten costs about half the penalty; all pages cost the full penalty.

3. Category score

Each category starts at 100 and is multiplied by (1 − penalty / 100) for every failed check. Example: one critical issue and one warning give 100 × 0.75 × 0.90 = 68. Multiplying gives diminishing returns, so a site with many small issues is not crushed to zero.

4. Overall score

Weighted average: SEO 30%, Performance 20%, Accessibility 20%, Technical 20%, Content 10%.

Limits

We crawl up to 10 pages (depth 2) and measure homepage resources only. Core Web Vitals are shown only when measured by Google PageSpeed Insights; we never estimate them. Colour contrast and keyboard behaviour need a real browser and are not covered yet.

All checks

CheckCategorySeverity
Page titleSEOcritical
Title lengthSEOwarning
Unique titlesSEOwarning
Meta descriptionSEOwarning
Meta description lengthSEOsuggestion
Unique meta descriptionsSEOsuggestion
Main heading (H1)SEOwarning
Single H1SEOsuggestion
Sub-headings (H2)SEOsuggestion
Canonical URLSEOsuggestion
Single canonicalSEOwarning
IndexabilitySEOwarning
robots.txtSEOwarning
robots.txt rulesSEOcritical
XML sitemapSEOwarning
Sitemap formatSEOwarning
Sitemap in robots.txtSEOsuggestion
Pages blocked by robots.txtSEOsuggestion
Internal linksSEOcritical
Internal linkingSEOsuggestion
hreflang codesSEOwarning
hreflang x-defaultSEOsuggestion
HTTPSTechnicalcritical
TLS certificateTechnicalcritical
HTTP → HTTPS redirectTechnicalwarning
Mixed contentTechnicalwarning
Page status codesTechnicalcritical
Redirect chainsTechnicalwarning
HTML sizeTechnicalwarning
Mobile viewportTechnicalcritical
Character encodingTechnicalsuggestion
FaviconTechnicalsuggestion
Open GraphTechnicalwarning
Twitter / X cardTechnicalsuggestion
Structured dataTechnicalsuggestion
Valid structured dataTechnicalwarning
HSTS headerTechnicalsuggestion
External linksTechnicalwarning
Page resourcesTechnicalwarning
Server response timePerformancewarning
Image weightPerformancewarning
Modern image formatsPerformancesuggestion
Total page weightPerformancewarning
Text compressionPerformancewarning
Render-blocking scriptsPerformancewarning
Number of resourcesPerformancesuggestion
Image dimensionsPerformancesuggestion
Lazy loadingPerformancesuggestion
Browser cachingPerformancesuggestion
Core Web VitalsPerformancewarning
Page languageAccessibilitywarning
Image alt textAccessibilitywarning
Form labelsAccessibilitywarning
Button namesAccessibilitywarning
Link textAccessibilitywarning
Zoom allowedAccessibilitywarning
Heading orderAccessibilitysuggestion
Unique IDsAccessibilitysuggestion
Iframe titlesAccessibilitysuggestion
Keyboard orderAccessibilitysuggestion
Content depthContentwarning
Placeholder textContentwarning
Legal / privacy pagesContentsuggestion