Most ecommerce stores fail Core Web Vitals because they optimise the wrong thing. PageSpeed Insights gives lab scores that don’t match Google’s ranking input. Here’s what actually matters.

Use real-user data, not lab scores

Google ranks based on the Chrome User Experience Report (CrUX) — field data from real visitors. A site can score 95 on PageSpeed Insights and still have terrible CrUX data, and vice versa.

Check your real numbers in Search Console → Core Web Vitals report, or PageSpeed Insights → ‘Field Data’ section. Those are the numbers Google uses.

The three metrics that matter

LCP (Largest Contentful Paint) — usually the hero image or H1 on category/product pages. Target: < 2.5s.

INP (Interaction to Next Paint) — replaced FID in 2024. Measures responsiveness to clicks/taps. Target: < 200ms.

CLS (Cumulative Layout Shift) — how much elements jump around as the page loads. Target: < 0.1.

Common ecommerce CWV killers

  • App / plugin JavaScript — on Shopify especially, 20+ apps each adding scripts. Audit and cut what doesn’t convert.
  • Unoptimised hero images — serving 4MB JPEGs instead of optimised WebP/AVIF.
  • Web font loading — @font-face calls blocking render. Use font-display: swap.
  • Layout shift from images without dimensions — always set explicit width/height.
  • Third-party tags — chat widgets, marketing pixels, A/B test scripts injecting late.

The fixes that actually work

Image strategy:

  • Serve next-gen formats (WebP, AVIF) with appropriate fallbacks.
  • Use srcset for responsive images.
  • Set explicit width and height on every <img>.
  • Lazy-load below-the-fold images.

Font strategy:

  • font-display: swap on all custom fonts.
  • Preload critical fonts.
  • Subset fonts if possible.

JavaScript strategy:

  • Defer or async all non-critical scripts.
  • Audit installed apps; remove non-converting ones.
  • Use partytown or web workers for third-party scripts when possible.

Measurement and iteration

We monitor CWV with a real-user monitoring tool (e.g., DebugBear, SpeedCurve) deployed on every page, not just sampled. Every deploy gets checked against the previous baseline. Regressions caught the same day, not weeks later when rankings drop.

Core Web Vitals is a moving target — thresholds change, INP replaced FID. The work needs to be continuous, not one-shot. See Technical Ecommerce SEO for ongoing CWV maintenance.

← Back to all articles