SEO & performance
Core Web Vitals
CWV
Core Web Vitals are the three metrics Google uses to score real-world page experience: LCP for loading, INP for responsiveness, and CLS for visual stability. They are measured from actual Chrome users, not a lab test, and a page passes only if 75% of visits are within the "good" threshold on all three. They are a genuine — if modest — ranking signal, and a large conversion one.
Why it matters
The ranking argument for Core Web Vitals is the weaker one. They are a real signal and a modest one, and a slow page with the best answer will still outrank a fast page with a worse one.
The commercial argument is stronger. These three metrics describe what using the site feels like — how long until it appears, whether it responds when tapped, whether things move under your finger — and each maps to a way shoppers give up. Sites that fix them see conversion improve regardless of what rankings do.
The reason they get ignored is that they are measured on real visitors rather than on the developer's machine. A store that feels fast on a desktop connection in the office can be failing all three for the mobile traffic that makes up most of its sessions.
How it works on Shopify
Three metrics, each with a threshold. LCP covers loading and should be under 2.5 seconds. INP covers responsiveness and should be under 200 milliseconds. CLS covers visual stability and should be below 0.1.
The pass condition is what surprises people: a page passes only when 75% of real visits meet the threshold on all three. One weak metric fails the page, and an average that looks acceptable can hide a badly-served quarter of the audience.
Field data comes from the Chrome User Experience Report, aggregated over 28 days, and it is what Google actually uses. Lab tools like Lighthouse simulate a device and are useful for diagnosis but not for judgement — the two regularly disagree, and teams optimising against Lighthouse alone can improve the score while field data stays flat.
On Shopify, the causes cluster predictably. Unoptimised hero images and render-blocking scripts drive LCP; app JavaScript on the main thread drives INP; images without dimensions and late-injected banners drive CLS.
Measure per template. Product and collection pages carry most sessions; the homepage carries the most attention.
Common mistakes
- Optimising the Lighthouse score. It is a diagnostic, not the metric. Field data is the verdict.
- Testing the homepage only. Most traffic lands elsewhere.
- Reading the average. The 75th percentile is what counts, and averages hide the tail.
- Blaming the theme first. Apps are more often the cause, and disabling them one at a time is a faster diagnosis than a rebuild.
- Fixing one vital in isolation. Deferring scripts helps LCP and can hurt INP if the work simply moves later.
- Expecting immediate results. Field data is a 28-day window. A fix shipped today shows up over weeks.
When you need help
The point to bring someone in is when the accessible work is done and the field data has not moved — images compressed, apps trimmed, lazy loading corrected, and the assessment still failing.
What remains at that stage is usually architectural: how the theme bundles and loads JavaScript, what runs before first paint, and which third-party tags load synchronously. That is a diagnosis before it is a fix, and the diagnosis is the part worth buying.
Need this done on your store?
SEO servicesRelated terms
- LCPLCP, or Largest Contentful Paint, measures how long it takes for the biggest visible element — usually a hero image or heading — to render. Google's "good" threshold is 2.5 seconds. On Shopify the usual culprits are unoptimised hero images, render-blocking app scripts, and fonts, in that order.
- INPINP, or Interaction to Next Paint, measures how quickly a page visibly responds to a user's taps, clicks, and key presses across the whole visit — it replaced First Input Delay as a Core Web Vital in March 2024. The "good" threshold is 200 milliseconds. Poor INP is nearly always caused by too much JavaScript on the main thread, which on Shopify usually means too many apps.
- CLSCLS, or Cumulative Layout Shift, measures how much a page's content jumps around while it loads. The "good" threshold is a score below 0.1. It is caused by images and ad slots without reserved dimensions, late-injected banners, and web fonts that resize text on swap — and it is the vital most directly responsible for mis-taps at checkout.