Ran a PageSpeed audit for a client last month who was convinced something technical was broken, because their rankings had been sliding for weeks despite the site “passing” every speed test they knew how to run. Green scores across the board. Largest Contentful Paint under two seconds. Cumulative Layout Shift near zero. On paper, close to a perfect site by every metric they’d been taught to check. Traffic kept dropping anyway.
Here’s what I’ve been consistently finding across a run of client audits this year, and why a green PageSpeed score genuinely doesn’t tell you what most people assume it does anymore.
Lab data and field data have drifted further apart than most site owners realize
The score you see when you manually run a speed test is lab data — a single clean, simulated run under controlled conditions, on a fixed network throttle, on a fixed device profile. What Google actually uses as a ranking signal is field data, pulled from the Chrome User Experience Report, aggregated from real visitors on real connections, real devices, often with battery-saver mode throttling the CPU, background tabs competing for resources, and inconsistent signal strength. I’ve seen sites with a 95 PageSpeed lab score sitting squarely in “needs improvement” territory on real-world Interaction to Next Paint, simply because real users on mid-range Android phones with a dozen tabs open behave nothing like a clean isolated lab environment.
This gap matters more than it used to because the ranking algorithm weights field data specifically, not the lab score most site owners are staring at when they think they’ve “fixed” their speed problem. A client showing me a green Lighthouse report isn’t showing me the number that actually affects their rankings, and that disconnect is the single most common misunderstanding I run into during audits now.
Interaction to Next Paint is the metric almost everyone still ignores
Everyone optimizes Largest Contentful Paint aggressively, because it’s the easy one to fix — compress the hero image, preload the right font, done, number goes green. Interaction to Next Paint is a fundamentally different and trickier problem, because it measures how quickly the page actually responds when a real visitor taps or clicks something, and that’s almost always a JavaScript execution problem rather than an image or asset problem. Heavy client-side interactivity, poorly debounced scroll listeners firing on every pixel of movement instead of at reasonable intervals, third-party scripts — chat widgets, analytics pixels, ad tags — that briefly hijack the main thread at exactly the moment a user tries to interact with the page. None of this shows up in a static lab score run against an empty, idle page. All of it shows up clearly in field data gathered from real interactions.
A concrete example from a recent audit
One client site had a chat widget loading synchronously in the header, blocking the main thread for roughly 400 milliseconds on initial load for anyone on a mid-range device. Invisible in the lab test, because the lab test doesn’t simulate a real user trying to tap a navigation link within that window. In the field data, this showed up as a p75 INP sitting well above the 200 millisecond threshold Google considers “good.” Deferring that script’s load until after the page became interactive, using a simple requestIdleCallback pattern instead of loading it eagerly in the head, dropped the real-world INP into the good range within about three weeks of the fix propagating through fresh field data. The lab score, notably, barely moved, because the lab test was never measuring the actual problem to begin with.
What I actually changed in my own audit process because of this
I stopped treating a green PageSpeed score as the finish line on any project, client-facing or my own. Every site I ship now gets checked against Search Console’s actual Core Web Vitals field data report a few weeks after launch, once enough real traffic has accumulated to populate it, not just the day-one lab test that gets screenshotted and sent to the client as proof of a job well done. If there’s a meaningful gap between the lab number and the field number, that gap is almost always exactly where the real, unaddressed problem lives, and it’s rarely the thing you’d guess just by staring at a Lighthouse report and chasing whatever’s colored red.
What I’d tell anyone managing their own site’s performance
If your site is technically fast in every test you know how to run, but you’re still losing ground in rankings, don’t trust the lab score as the final word. Pull the actual field data from Search Console, look specifically at INP alongside LCP and CLS, and pay particular attention to any third-party script running in your header or footer that you didn’t personally audit for main-thread impact. That’s where the gap almost always turns out to be hiding.









