Passing Core Web Vitals is worth doing — for rankings, and because slow sites lose money. But the metrics measure what’s measurable, not everything users feel. Optimizing to the number while ignoring perceived experience leaves conversion on the table.
What the three metrics actually capture
LCP (Largest Contentful Paint) measures when the biggest element renders — a proxy for "is it loading?". INP (Interaction to Next Paint) measures response time to taps and clicks — "is it listening?". CLS (Cumulative Layout Shift) measures visual stability — "can I trust where things are?". Google evaluates all three from real Chrome users, not lab tests.
These are good proxies, and the field thresholds (2.5s / 200ms / 0.1) are sensible. The mistake is treating "passing" as "fast enough to convert" — the metrics are floor, not ceiling.
Perceived speed diverges from measured speed
A page can pass LCP while feeling broken: the hero image painted quickly, but the price, the reviews, and the add-to-cart button straggled in afterward. Users judge readiness by the elements they came for, and no metric knows which elements those are.
Skeleton screens, prioritized rendering of decision-critical content, and progressive image loading shape perception beyond what the numbers capture. The question to optimize is not "when did the largest element paint?" but "when could the user do the thing they came to do?"
The question is not "when did the largest element paint?" but "when could the user do the thing they came to do?"
Interaction friction the metrics miss
INP catches slow event handlers; it doesn’t catch touch targets too small for thumbs, forms that fight mobile keyboards (wrong input types, no autocomplete), date pickers that require surgical precision, or the cookie-consent-newsletter-appstore banner stack that buries the actual page.
These frictions routinely cost more conversions than a 300ms INP ever will. Session recordings and rage-click analysis find them; Lighthouse never will.
Layout stability after the measurement window
CLS is scored on shifts during loading, but trust-destroying movement often happens later: personalization banners that push content down on scroll, late-loading recommendation widgets, chat bubbles that cover the checkout button on exactly the screen sizes your analytics says matter.
The rule is reserved space, always: every dynamically injected element gets explicit dimensions before it loads. Users’ motor memory is part of your UX — betraying it at the moment of click is uniquely expensive.
Connect performance work to revenue, not scores
Segment conversion rate by real-user LCP/INP buckets in your analytics: the revenue curve across speed cohorts makes the business case better than any audit score, and shows where returns diminish. Many sites find conversion flattens past a threshold — spend the remaining engineering budget on the frictions above instead.
Report both numbers: the Vitals pass rate for the ranking story, and the speed-cohort conversion delta for the money story. When the two disagree about priorities, the money story wins.
The useful takeaway
Pass the Vitals for the floor, then optimize what they can’t see: decision-critical rendering order, mobile interaction friction, post-load stability, and the speed-to-conversion curve from your own field data. The metrics are instruments — the experience is the target.




