Skip to content

Scoring methodology (v1)

Exactly how the SkySiteAudit score is calculated, what each check weighs and how lab metrics are rated.

The SkySiteAudit score summarises measured check results. It is not a prediction of Google rankings — no tool can truthfully claim that.

Formula (v1)

  1. Every check has a severity weight: critical 10, high 6, medium 3, low 1, info 0.
  2. For each check we compute a pass rate over every page where it was actually measured: pass = 1, warning = 0.5, fail = 0. On a single-page audit the pass rate is simply 1, 0.5 or 0.
  3. Checks that could not be measured ("Not measured") are left out completely — they never count as passed and never as failed.
  4. Each category score = Σ(weight × pass rate) ÷ Σ(weight) × 100.
  5. The overall score combines category scores using these weights: Crawlability & indexing 30, On-page SEO 25, Links 10, Performance 15, Mobile & accessibility 10, Security 10. Categories with nothing measured are left out and the remaining weights are re-normalised.
  6. If less than 50% of the total category weight could be measured, the overall score is withheld and shown as "n/a".
  7. On a single-page audit, if the page itself returns an HTTP error (4xx/5xx), the score is withheld too — there is no page content to evaluate. The findings are still listed.

Each report stores the score version, so comparisons over time are only made between audits scored with the same version.

Headline counts

  • Critical issues = failed checks with critical or high severity.
  • Warnings = all warnings plus failed checks with medium or low severity.
  • Passed = passed check results. Not measured = checks that could not be evaluated. On site crawls these are counts of check results across pages, so one problem on 10 pages counts 10 times.

Lab performance thresholds

Lab metrics are measured once per page in this environment: Headless Chromium, mobile emulation 412×823 @2.6x, 4× CPU slowdown, simulated 1.6 Mbps / 150 ms RTT network.

Metric Good Needs work Poor
Largest Contentful Paint ≤ 2.5s ≤ 4s > 4s
Cumulative Layout Shift ≤ 0.1 ≤ 0.25 > 0.25
Total Blocking Time ≤ 200ms ≤ 600ms > 600ms
First Contentful Paint ≤ 1.8s ≤ 3s > 3s
Time to first byte (from SkySiteAudit) ≤ 800ms ≤ 1800ms > 1800ms

INP (Interaction to Next Paint) requires real user interactions, so SkySiteAudit always reports it as unavailable instead of estimating it. Lab values vary between runs; network distance between SkySiteAudit's server and the website affects timings.

Deterministic vs heuristic checks

Deterministic checks are objectively verifiable (e.g. "the page returned 404"). Heuristic checks are rules of thumb (e.g. word count, title length) and are labelled as such in reports.

All checks

Check id Check Category Severity (weight) Type Scope
http_status Page returns a successful HTTP status Crawlability & indexing critical (10) deterministic page
redirect_chain No redirect chains Crawlability & indexing medium (3) deterministic page
https Page is served over HTTPS Security high (6) deterministic page
http_to_https HTTP version redirects to HTTPS Security medium (3) deterministic site
indexable Page is indexable Crawlability & indexing high (6) deterministic page
robots_allowed Page is allowed by robots.txt Crawlability & indexing high (6) deterministic page
canonical Valid canonical link Crawlability & indexing medium (3) deterministic page
canonical_target Canonical targets resolve successfully Crawlability & indexing high (6) deterministic site
hreflang Valid hreflang annotations Crawlability & indexing low (1) deterministic page
robots_txt robots.txt is reachable and valid Crawlability & indexing medium (3) deterministic site
sitemap XML sitemap is present and valid Crawlability & indexing medium (3) deterministic site
sitemap_urls Sitemap URLs return 200 Crawlability & indexing low (1) deterministic site
www_consistency www and non-www versions are consolidated Crawlability & indexing low (1) deterministic site
lang Page declares its language Mobile & accessibility low (1) deterministic page
title Title tag present On-page SEO high (6) deterministic page
title_length Title length is reasonable On-page SEO low (1) heuristic page
meta_description Meta description present On-page SEO medium (3) deterministic page
meta_description_length Meta description length is reasonable On-page SEO low (1) heuristic page
h1 Exactly one H1 heading On-page SEO medium (3) deterministic page
heading_hierarchy Logical heading hierarchy On-page SEO low (1) heuristic page
thin_content Sufficient text content On-page SEO medium (3) heuristic page
img_alt Images have alt attributes On-page SEO medium (3) deterministic page
social_meta Social preview tags (Open Graph) On-page SEO low (1) deterministic page
structured_data Structured data syntax On-page SEO low (1) deterministic page
duplicate_titles Unique page titles On-page SEO medium (3) deterministic site
duplicate_descriptions Unique meta descriptions On-page SEO low (1) deterministic site
duplicate_content No duplicate page content On-page SEO medium (3) heuristic site
trailing_slash_duplicates No trailing-slash duplicates Crawlability & indexing low (1) deterministic site
broken_links No broken internal links Links high (6) deterministic page
anchor_text Links have descriptive text Links low (1) deterministic page
orphan_pages No orphan pages Links low (1) heuristic site
server_response Fast server response (TTFB) Performance medium (3) deterministic page
html_size Reasonable HTML size Performance low (1) deterministic page
compression Text compression enabled Performance medium (3) deterministic page
lab_lcp Largest Contentful Paint (lab) Performance high (6) deterministic page
lab_cls Cumulative Layout Shift (lab) Performance medium (3) deterministic page
lab_tbt Total Blocking Time (lab) Performance medium (3) deterministic page
lab_fcp First Contentful Paint (lab) Performance low (1) deterministic page
large_images Images are reasonably sized Performance low (1) deterministic page
viewport Mobile viewport configured Mobile & accessibility high (6) deterministic page
mobile_overflow No horizontal scrolling on mobile Mobile & accessibility medium (3) deterministic page
tap_targets Tap targets are large enough Mobile & accessibility low (1) heuristic page
font_size Legible font sizes on mobile Mobile & accessibility low (1) heuristic page
form_labels Form fields have labels Mobile & accessibility low (1) deterministic page
tls_certificate Valid TLS certificate Security critical (10) deterministic page
mixed_content No mixed content Security medium (3) deterministic page
security_headers Recommended security headers Security low (1) deterministic page