The SkySiteAudit score summarises measured check results. It is not a prediction of Google rankings — no tool can truthfully claim that.
Formula (v1)
- Every check has a severity weight: critical 10, high 6, medium 3, low 1, info 0.
- 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.
- Checks that could not be measured ("Not measured") are left out completely — they never count as passed and never as failed.
- Each category score = Σ(weight × pass rate) ÷ Σ(weight) × 100.
- 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.
- If less than 50% of the total category weight could be measured, the overall score is withheld and shown as "n/a".
- 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 |