Free page-integrity check

Is PageSpeed testing the same page your visitors receive?

Compare Google's rendered page, two controlled visitor fetches and real-user field data. See every meaningful difference — and why it does or does not count.

  1. Visitor markupRaw HTML from your server, fetched twice as an ordinary browser — the second copy measures this page's own load-to-load variation
  2. Lighthouse-UA markupThe same request to your server with the Lighthouse marker in the user-agent. This pair is the comparison
  3. Google's own runPageSpeed Insights from Google's IPs — its screenshot and its lab-versus-CrUX numbers are context beside the comparison, not one side of it

This compares raw HTML. It does not render either page, so client-side suppression — scripts that behave differently once running — is outside what it can see.

A single public page — the one that was “optimized”. Checked as Google checks it: mobile.

One public URL · mobile · no signup · every number shown · how the verdict is decided →

How the verdict is decided (and what it cannot prove)

Naïvely fetching a page twice with different user-agents only catches the crudest cloaking, because sophisticated setups key on the visitor's IP address, not the user-agent string — and they only serve the stripped page to Google's IPs. So this tool runs four probes at once:

  1. Google's own view

    We call the PageSpeed Insights API, so Google's infrastructure fetches the page (real Google IPs, real Lighthouse). Its lab score, screenshot and resource counts are the ground truth for what Google was shown.

  2. Two identical visitor fetches

    The same request twice, as a normal mobile visitor, so we learn which third-party hosts rotate naturally between identical loads. Those are excluded from the comparison rather than counted as evidence.

  3. The user-agent flip

    The same request once more with a Lighthouse user-agent. If the markup changes when only the user-agent changes — beyond that natural churn — that isolates user-agent-based cloaking.

  4. Lab vs. real users

    PSI also reports field data from real Chrome users (CrUX). A high lab score paired with a slow real-user experience is the classic fingerprint of IP-based cloaking — the score nobody actually feels.

Why we never just accuse

Honest sites differ between loads all the time — A/B tests, personalization, geo-targeting, randomized ads, lazy-loading. And Google explicitly permits hiding the cookie-consent banner from Lighthouse, so a missing banner is a false positive, not a smoking gun. This tool only flags structural mismatches, requires independent signals to corroborate before it escalates — a size-only or host-only difference is marked as worth a look, never as an accusation — and shows you the evidence so you can judge. A “possible cloaking” result is a reason to investigate, not proof.

The exact thresholds, and what this check does not cover

A difference is material when the script census differs by 3 or more — that one stands alone, because a page does not lose three script tags to personalisation — or when the raw HTML differs by 25% or more and 2 or more third-party hosts differ. Size-only and host-only differences need each other to corroborate, because that is where inline consent text, A/B copy and rotating ad inventory live.

Not covered: client-side fingerprinting, payload suppression that only happens after JavaScript runs, UA Client Hints branching, geography- or login-state-dependent serving, and anything that requires rendering the page in a real browser as a visitor. A clean result here is a clean structural comparison, not a guarantee that every visitor everywhere receives the same page.

Where a response exceeds our capture limit the byte count is a floor rather than a total, so the size signal is skipped outright rather than being allowed to read as “same size”. Our own IP is not Google's, so an IP-keyed cloak that ignores the user-agent shows up — if at all — in the lab-versus-field comparison, not in the fetch comparison.

Why this check exists

Some agencies and freelancers “fix” a slow site by showing Google's tools a stripped-down, fast page while real visitors still get the bloated one. It buys a pretty 95+ score and changes nothing for users — and the person paying for it has no way to tell. That is what this compares.

We ran this exact user-agent probe across the top 2,000 sites and published what came back — how many sites cheat PageSpeed, our cloaking prevalence census. It is also the honest answer to “is this actually a real problem?”, which is a fair question to ask before spending thirty seconds on a check.

Want a definitive answer for a specific page? A PageSpeedAudit report carries this exact test — same thresholds, same honesty ladder — as its integrity gate, so no verdict is ever built on a measurement of the wrong page. It then reads your real markup and headers, separates genuine optimization from score theater, and gives you the actual fixes. The Noise & Silence framework ↗ explains how we decide what counts as evidence.