Skip to content
Store slow, dated, or hard to edit? Request a Store Diagnostic
Running B2B on spreadsheets or email? Plan Your B2B Project
SEO

Shopify Core Web Vitals: Why Your Store Fails Google’s Speed Test

You run your homepage through PageSpeed Insights, get a red or orange score, and see three unfamiliar metrics staring back: LCP, INP, CLS. The report tells you your store is “failing” Core Web Vitals, but it doesn’t explain why a platform as widely used as Shopify, with genuinely fast infrastructure behind it, so often produces stores that fail this specific test.

The honest answer is that Shopify’s backend (page delivery, checkout, hosting) is fast by design, but what you build on top of it, theme choice, app count, image handling, font loading, third-party scripts, determines almost all of your actual Core Web Vitals result. Shopify gives you a fast foundation; it doesn’t stop you from loading fifteen apps that each inject their own JavaScript.

This post explains what each Core Web Vitals metric actually measures, why Shopify stores specifically tend to struggle with each one, and what’s realistically fixable through configuration versus what needs development work.

What Core Web Vitals actually measures

Core Web Vitals are three metrics Google uses as part of its Page Experience signals, a minor but real ranking factor, and a significant factor in actual user experience and conversion regardless of SEO impact.

  • LCP (Largest Contentful Paint), how long it takes for the largest visible element (usually a hero image or banner) to render. Google’s threshold for “good” is under 2.5 seconds.
  • INP (Interaction to Next Paint), how responsive your page is when someone actually interacts with it (clicking “Add to Cart”, opening a filter menu, expanding a size guide). This replaced FID (First Input Delay) as the official metric in March 2024. Google’s “good” threshold is under 200 milliseconds.
  • CLS (Cumulative Layout Shift), how much visible content jumps around as the page loads (images popping in without reserved space, banners pushing content down, cookie notices shifting the layout). Google’s “good” threshold is under 0.1.

These are measured two ways: lab data (a simulated test run, like what you get instantly from PageSpeed Insights or Lighthouse) and field data (real user measurements collected from actual visitors over the past 28 days, shown in the Chrome User Experience Report / CrUX). Google’s ranking signal is based on field data, not lab data, which is why a store can score well in a one-off Lighthouse test but still show as “needs improvement” in Search Console’s Core Web Vitals report, because real customers on real (often slower mobile) devices and connections are having a worse experience than the lab test simulates.

Why LCP fails on Shopify stores specifically

LCP problems on Shopify almost always trace back to one of these:

  • Unoptimised hero images. A 3-4MB PNG banner uploaded straight from a designer’s export, with no compression, at 2-3x the size it’s actually displayed at.
  • Render-blocking apps above the fold. Announcement bar apps, currency converters, and personalisation widgets that load synchronously and delay the browser from painting the hero content.
  • Web font loading strategy. Custom fonts (especially ones added via apps rather than theme settings) that block text rendering until the font file downloads, rather than using font-display: swap or preloading critical fonts.
  • Slow server response combined with heavy Liquid rendering. Less common on Shopify than self-hosted platforms since Shopify’s infrastructure is solid, but still possible with excessive Liquid loops, large metafield-driven sections, or bloated theme code stacked up over years of edits.

Why INP fails on Shopify stores specifically

INP is the newer, often trickier metric, because it’s about JavaScript execution during interaction, not just page load:

  • App script overload. This is the single biggest cause we see. Every app you install typically adds its own JavaScript bundle. Reviews apps, upsell popups, live chat widgets, loyalty programs, currency converters, each one adds parsing and execution time, and on the main thread, that competes directly with responsiveness when a customer clicks something.
  • Large, unoptimised third-party tags. Marketing pixels and tag manager containers stacking multiple trackers that all fire on interaction events.
  • Heavy DOM size. Product pages with huge variant selectors, dozens of accordion sections, or infinite-scroll collection pages can bloat the DOM to the point where even simple interactions require the browser to do more work recalculating layout.

In our experience running Shopify performance audits, INP is usually the metric that improves the most once you actually audit app JavaScript, it’s rarely one dramatic fix, more often a case of removing four or five apps a merchant forgot were even installed, each shaving off a measurable slice of main-thread work.

Why CLS fails on Shopify stores specifically

  • Images without reserved dimensions, so the layout jumps once the image finishes loading.
  • Late-loading announcement bars, cookie banners, or “free shipping” strips that inject above existing content instead of reserving space for themselves in the initial layout.
  • Web fonts causing a FOUT/FOIT flash, text rendering in a fallback font first, then reflowing once the custom font loads, especially with heavier display fonts on headings.
  • Apps that inject content dynamically, an upsell bar or trust badge widget that loads a second or two after the page and shoves everything below it down.

A step-by-step approach to diagnosing your own store

  1. Start with Google Search Console’s Core Web Vitals report, not just a one-off PageSpeed Insights test, this shows real field data across your actual site, grouped by URL pattern, so you can see whether it’s specific templates (product pages, collection pages) that are failing rather than the whole site.
  2. Run PageSpeed Insights on your three most-visited page types, homepage, a representative product page, a representative collection page, since Core Web Vitals problems vary a lot by template.
  3. Check the “Diagnostics” section of the Lighthouse report, which will usually name the specific offending resource (a particular image, a particular script) rather than leaving you to guess.
  4. Audit your installed apps list against what’s actually earning its keep. For each app, ask whether it’s currently active and valuable enough to justify its script weight, dormant apps installed for a campaign eighteen months ago are a common, easy win.
  5. Check image sizes against display size, a good rule of thumb is that an image shouldn’t be uploaded at more than roughly 2x the largest size it will ever be displayed at, and should be served in a modern format (Shopify serves WebP automatically via its CDN for most images now).
  6. Review font loading, confirm fonts are being loaded via theme settings (which Shopify optimises reasonably well) rather than injected by a third-party app or custom code with no preload or swap strategy.
  7. Re-test after each meaningful change, and don’t judge success off a single lab test, give it a couple of weeks for CrUX field data in Search Console to reflect the real-world improvement.

Why this matters for SEO, not just user experience

Core Web Vitals are one of many ranking factors Google uses, and on their own they’re rarely enough to make or break a competitive keyword, content relevance, backlinks, and site structure generally matter more. But they interact with SEO in a few concrete ways worth understanding. Pages that fail Core Web Vitals are more likely to have higher bounce rates, which can indirectly affect how Google perceives result quality over time. Slow pages also mean Googlebot can crawl less of your site in the same crawl budget, which matters for larger catalogues trying to get new products indexed quickly. And Google has been explicit that Page Experience is used as a tie-breaker between otherwise similarly relevant pages, so in competitive categories, it can be the difference that decides who ranks first. If you’re investing in Shopify SEO work like content, internal linking, and technical fixes, poor Core Web Vitals can quietly undercut the return on that work, because the technical foundation and the content strategy need to move together rather than being treated as separate projects.

When to bring in a specialist

Some Core Web Vitals fixes are genuinely DIY-friendly, compressing an oversized hero image, removing an unused app, adjusting a theme setting. Others require actually profiling JavaScript execution, restructuring how apps load (deferring non-critical scripts, lazy-loading below-the-fold content properly), or rebuilding sections of a theme that have accumulated years of bolted-on code. If you’ve made the obvious fixes and your Search Console report still shows “needs improvement” or “poor” across a meaningful share of URLs, that’s usually the point where a proper Shopify performance optimisation engagement pays for itself, it’s built specifically around diagnosing which of dozens of possible causes is actually responsible on your store, rather than guessing and hoping.

FAQ

Why does my store fail Core Web Vitals when Shopify is supposed to be fast?
Shopify’s hosting and checkout infrastructure are genuinely fast, but Core Web Vitals measure the full page experience your customers get, which is shaped by your theme, your installed apps, your image sizes, and your font choices, all things Shopify gives you control over rather than locks down. A fast platform with a heavy, app-laden storefront on top can still fail badly.

What’s a good Core Web Vitals score for a Shopify store?
Google doesn’t grade on a single score, it classifies each metric as “good,” “needs improvement,” or “poor” against fixed thresholds (LCP under 2.5s, INP under 200ms, CLS under 0.1), assessed per URL group using real visitor data over a rolling 28-day period. Aim to get as many URL groups as possible into “good” on all three, particularly your highest-traffic product and collection templates.

Do apps really affect Core Web Vitals that much?
Yes, often more than merchants expect. Each app typically adds its own JavaScript bundle that needs to be downloaded, parsed, and executed, and this is one of the most common causes of poor INP scores specifically. Auditing which apps are actually still needed is one of the highest-value, lowest-effort improvements available on most Shopify stores.

Will fixing Core Web Vitals guarantee higher rankings?
No, Core Web Vitals are one of many ranking factors, and generally a smaller one compared to content relevance and backlinks. Treat them as a genuine user experience and conversion investment first, with a modest, real SEO benefit as a secondary outcome, rather than expecting a dramatic ranking jump from speed fixes alone.

How often should I check my Core Web Vitals?
Checking Search Console’s Core Web Vitals report monthly is reasonable for most stores, with a closer look any time you add a new app, switch themes, or make significant page changes, since those are the events most likely to introduce a regression.

Get a clear picture of what’s actually slowing you down

If PageSpeed Insights and Search Console are giving you conflicting or confusing signals, a proper Shopify audit can pinpoint exactly which templates, apps, and assets are behind your Core Web Vitals issues. Book a call and we’ll talk through what’s realistic to fix and what it would take.

Niraj Raut
Written by Niraj Raut SEO Manager

Niraj Raut is the SEO Manager and co-founder at Nexly. He helps Australian Shopify and Shopify Plus brands earn durable organic growth through technical SEO, search-led store architecture and content that ranks. He writes about what actually moves rankings for ecommerce.

Connect on LinkedIn
Have a Shopify project? Chat with us, takes 30 seconds.