You ran a Lighthouse test. You got a score in the 40s or 50s. You Googled "Shopify slow site" and ended up here. Good — because that score is probably costing you more than you realise.

Core Web Vitals are Google's way of measuring how your site feels to real visitors. Not how fast your server responds (though that matters too), but how fast your page looks loaded, how quickly it responds to clicks, and how much the layout jumps around while it's loading. These three things directly affect whether someone stays or bounces — and whether Google shows your pages in search results.

The three metrics that matter

LCP
Largest Contentful Paint
Good: ≤ 2.5s
How fast the main content loads
INP
Interaction to Next Paint
Good: ≤ 200ms
How fast the page responds to input
CLS
Cumulative Layout Shift
Good: ≤ 0.1
How stable the layout stays

LCP — Largest Contentful Paint

LCP measures how long it takes for the biggest visible element on your page to finish rendering. On a product page, this is usually the hero product image. On a collection page, it's often the banner image or the first row of products.

Why it matters for revenue: LCP is the metric most directly tied to perceived speed. If your main content takes more than 2.5 seconds to appear, visitors are already deciding whether to stay. Research consistently shows that each additional second of load time reduces conversion rates by 7–10%. For a store doing $50,000/month, a 1-second LCP improvement could mean an additional $3,500–$5,000 in monthly revenue.

Common Shopify LCP killers: Oversized hero images (uploading a 4000px image when Shopify serves it at 800px), unoptimised product photos, render-blocking scripts in the theme head (especially from apps), heavy custom fonts that delay text rendering, and slow third-party embeds like Instagram feeds or review widgets loading above the fold.

INP — Interaction to Next Paint

INP replaced the older First Input Delay (FID) metric in March 2024. It measures the delay between a visitor's interaction — a click, tap, or keypress — and the browser's visual response. If someone taps "Add to Cart" and nothing happens for 400ms, that's a bad INP score. And a terrible user experience.

Why it matters for revenue: INP directly measures the add-to-cart and checkout experience. If your buttons feel sluggish, visitors abandon. This is especially critical on mobile, where network conditions are worse and CPU power is limited. A Shopify store with heavy JavaScript (tracking scripts, app widgets, complex theme features) will feel notably slower on a mid-range Android phone than on your MacBook.

Common Shopify INP killers: Too many third-party scripts competing for the main thread, complex product option selectors with excessive re-rendering, app widgets that inject heavy JavaScript (size charts, wishlist buttons, countdown timers), and unoptimised mega menus with dozens of DOM elements.

CLS — Cumulative Layout Shift

CLS measures how much your page layout shifts while it's loading. You know that experience where you're about to tap a button and the page jumps, making you tap the wrong thing? That's layout shift, and Google measures it.

Why it matters for revenue: Layout shift is a trust killer. If your product page jumps around while loading, it feels broken — even if everything eventually loads correctly. On mobile checkout flows, unexpected layout shifts can cause form input errors that lead to payment failures. It's a subtle conversion killer that most merchants never notice because they're viewing their store on fast connections with cached assets.

Common Shopify CLS culprits: Images without explicit width and height attributes, late-loading app widgets that push content down (review stars, trust badges, announcement bars), custom fonts that cause a flash of unstyled text (FOUT), and dynamically injected banners or popups.

Why Shopify stores specifically struggle with this

Shopify is a managed platform — you don't control the server, the CDN, or the checkout infrastructure. That's mostly a good thing. But it means the levers you do have are concentrated in three areas: your theme code, your apps, and your media assets.

The problem is that these three areas accumulate cruft over time. You install an app, it injects scripts. You switch themes, old assets linger. You upload product photos straight from your phone without compressing them. Each individual decision is harmless. Collectively, they compound into a store that scores 35 on Lighthouse.

The Shopify speed paradox

Shopify's infrastructure is genuinely fast — their CDN and server response times are excellent. But merchants consistently build slow stores on top of fast infrastructure by layering apps, unoptimised images, and bloated themes. The platform gives you a fast starting line; it's what you add that slows you down.

What to fix first: the priority order

If your Core Web Vitals are in the red, don't try to fix everything at once. Here's the order that delivers the most impact per hour of effort:

  1. Audit and remove ghost scripts. Uninstalled apps that left code behind are the single biggest performance drain on most Shopify stores. Removing them costs nothing and the improvement is immediate. (See our guide to finding ghost scripts.)
  2. Compress and properly size images. Use Shopify's built-in image transformation to serve appropriately sized images. Ensure every <img> tag has width and height attributes to prevent layout shift.
  3. Defer non-critical scripts. Move app scripts to the bottom of theme.liquid and add defer or async attributes. If an app's widget isn't above the fold, it doesn't need to block rendering.
  4. Lazy-load below-the-fold content. Product recommendations, review widgets, Instagram feeds, and secondary images should all lazy-load. Shopify's Dawn theme does this by default; many older themes don't.
  5. Evaluate your app stack. Every active app has a performance cost. For each one, ask: is this app generating enough revenue to justify its speed impact? If you can't answer that, you probably don't need the app.

How to measure the impact

Don't just run Lighthouse once, make changes, and run it again. Lighthouse scores fluctuate by 5–10 points between runs depending on network conditions and server load. Instead, use field data from Google Search Console's Core Web Vitals report or Google's CrUX (Chrome User Experience Report) for real-world numbers based on actual visitor sessions.

For immediate feedback during optimisation, use Lighthouse in incognito mode (to avoid extension interference), run it 3 times and take the median score, and test on both mobile and desktop — mobile is what Google uses for ranking, and it's where most Shopify traffic comes from.

The revenue connection

Here's the part that matters. Core Web Vitals aren't just a Google ranking signal — they're a direct proxy for conversion rate. The data is consistent across every study:

For a Shopify store doing $30,000/month with a 2% conversion rate, improving Core Web Vitals from "Poor" to "Good" could realistically add $3,000–$6,000 in monthly revenue. That's not a theoretical number — it's the compound effect of fewer bounces, better search visibility, and a smoother checkout experience.

The hardest part isn't fixing the issues — it's finding them. Most merchants don't have the technical knowledge to parse a Lighthouse report, identify which scripts are problematic, or calculate the revenue impact of each issue. That's exactly what ShopSentry's free audit is designed to do.

Check your Core Web Vitals in 30 seconds

Free speed audit with estimated revenue impact. No install required.

Scan My Store — Free →