Three metrics decide whether Google calls your pages a good experience. Most sites fail exactly one of them, and most speed projects are spent on the other two. Thresholds, a triage table, guides, and a free simulator, below.
Two green and one red is still a fail. The assessment passes only when all three clear the threshold at the 75th percentile of real visits.
Same boundary for every site, measured at the 75th percentile of real visits rather than the average.
How long until the biggest element in the viewport, usually the hero image or headline, has finished rendering.
How long from a tap, click or keypress until the browser paints the visible response. Reported across the whole visit, not a single moment.
How much visible content jumps position during loading, scored as a unitless value rather than a time.
The number in PageSpeed Insights and the number Google assesses you on are two different things. The 0 to 100 score is a lab simulation run on your request, on a throttled connection, right now. The pass or fail assessment comes from field data: real Chrome visits, aggregated over a rolling 28-day window, at the 75th percentile.
That gap explains the two most common questions we get. A page can score 95 in the lab and still fail, because the lab never clicks anything and your real users do. And a genuine fix shows nothing on day one, because the window still contains 27 days of the old experience. Both are covered properly in PageSpeed score versus Core Web Vitals and how long Core Web Vitals take to update.
Performance work goes wrong when the symptom gets treated instead of the cause. Find the row that matches what you are seeing, and start where it points.
| What you are seeing | Metric | Usually means | Start here |
|---|---|---|---|
| Fine on desktop, failing on mobile | LCP | You are shipping the desktop hero image to phones, or the mobile layout promotes a different, heavier element to largest. | Check which element is actually LCP on a mobile viewport before optimising anything. |
| Lighthouse says 90+, the assessment still fails | INP | Lab tests never interact with the page, so main-thread blocking during a real click is invisible to them. | Lab versus field data, then INP attribution |
| Only article and blog pages shift | CLS | Ad slots or embeds are injected into the body with no reserved height, so every paragraph below them jumps. | Fixing CLS caused by ads |
| We shipped the fix, nothing has changed | All | Field data moves on a 28-day rolling window, so a real improvement is diluted until the old visits age out. | How long Core Web Vitals take to update |
| The report shows no field data at all | All | The page or origin has too few Chrome visits to form a reliable sample, so Google falls back to origin-level data or nothing. | Work from origin-level data and lab tests, and treat lab as directional only. |
| Scores swing wildly between runs | Lab | Normal. Lab runs vary with network simulation and machine load, which is why a single run is never evidence. | Compare medians across several runs, and treat field data as the source of truth. |
| Slow only after a site move | LCP | New hosting, a new theme, or redirect hops added to every request during the migration. | Website migration hub and redirect chains |
One guide per problem, written to be implemented rather than skimmed.
Every threshold, what counts as a good score, and how mobile and desktop are assessed separately. The page to bookmark.
Open the reference GuideWhy a 95 can fail and a 60 can pass, what the score is actually measuring, and which number to report to stakeholders.
Read the guide GuideHow to attribute an interaction delay to the script causing it, and what to defer, delay or remove once you know.
Read the guide GuideReserving space for slots that fill late, handling variable ad sizes, and keeping revenue intact while you do it.
Read the guide GuideThe 28-day window explained, what "validate fix" in Search Console really does, and when to start worrying.
Read the guide Free toolModel what a fix is worth before you build it. Adjust image weight, script load and server response, and watch the metrics move.
Open the toolPerformance work is easy to start and hard to justify halfway through. The simulator lets you model the change before anyone writes code, so the conversation is about expected gain rather than effort.
Preloading the hero and deferring three tags clears both failing metrics. Two of three levers, no redesign.
Four stages, run in order, and the last one takes a month whether you like it or not. Anyone promising a green assessment next week is describing the lab score, not the assessment.
Pull field data per template, not per page. One product page tells you almost nothing about the other four thousand.
Attribute the failure to a specific element or script using the triage above. This stage is where most of the value is, and it is the one usually skipped.
Change the one thing the diagnosis pointed at, then re-measure in the lab to confirm the mechanism worked before moving on.
Wait out the 28-day field window and confirm the assessment flipped. Lab confirmation is not verification, it is a hypothesis.
Speed is not always the constraint. On a sportswear brand a six-second mobile shop was capping everything; on an ed-tech platform it was holding back a strong content programme. We say which at diagnosis, not four months in.
Fix the one closest to its threshold, not the one furthest from it. Moving a metric from just-failing to just-passing flips the assessment for that metric at a fraction of the effort of dragging a badly broken one across the line. If two are equally close, prioritise INP, because interaction delays are the ones users consciously notice and complain about. A page that loads in three seconds feels acceptable. A button that takes half a second to respond feels broken.
They are a genuine ranking signal, but a light one, and they will not lift a page that does not deserve to rank. The realistic framing is a tiebreaker: where two pages are comparably relevant, the faster experience wins. The larger commercial effect is usually not the ranking at all, it is the conversion rate of the traffic you already have. Fixing a failing metric to chase positions is often disappointing. Fixing it to stop losing sessions is reliably worth it.
Almost never. The overwhelming majority of failures come from a handful of specific causes: an undiscovered hero image, a few third-party scripts blocking the main thread, and content injected without reserved space. All three are fixable inside an existing theme. A redesign becomes the right answer only when the template itself makes the fix impossible, for example when the layout depends on JavaScript to render anything at all. Diagnose before anyone scopes a rebuild.
Two to four weeks of work, then a month of waiting. Diagnosis takes days, the fixes themselves are usually a small number of targeted changes, and lab confirmation is immediate. The assessment then needs the 28-day field window to turn over before it reflects the new experience. Plan for six to eight weeks from kickoff to a confirmed pass, and be sceptical of any timeline shorter than the window itself.
No, and the mismatch is the single most common misunderstanding on this topic. The score is a lab simulation of a single load on a throttled connection, and it never interacts with the page. The assessment is field data from real Chrome users over 28 days. A page can score 95 and fail on INP because nothing in the lab ever clicked a button, and a page can score 60 and pass because real visitors are on faster connections than the simulation assumes.
Then Core Web Vitals are not currently affecting your rankings, because Google has no field sample to assess. You will typically see origin-level data instead of page-level, or nothing at all. That does not make performance irrelevant, since the conversion and bounce effects apply regardless of whether Google is measuring, but it does change the priority. On a low-traffic site, fix the obvious problems and put the remaining effort into the things that will bring the traffic in the first place.
Any of them, because the diagnosis is platform-independent: an undiscovered hero image behaves the same way on Shopify, WordPress, Webflow or a custom stack. What changes is the implementation route, whether that is a theme edit, a plugin configuration, an app removal or a deployment. Most of our performance work has been on Shopify and WordPress, and platform constraints get flagged during diagnosis rather than discovered halfway through the build.
That is the useful question, and it takes a diagnosis rather than a tool. Bring us the templates that matter commercially and we will tell you what is failing, what it would take to fix, and whether performance is genuinely your constraint. Sometimes it is not, and we will say so.
Free simulator, no signup · Any CMS · UK-based, direct with the person doing the work