·

Agencies charge thousands to fix Core Web Vitals. The fixes that actually move the needle — image compression, hero loading priority, app audit — need no developer and no budget. Here’s how to do it yourself.

By Florencia
June 24, 2026
6 min read

Agencies will quote you $3,000–$10,000 to fix your Core Web Vitals. But the fixes that move the needle most aren’t technical — they’re operational. Remove bloated apps. Compress your images. Set image dimensions. Most stores can pass all three CWV thresholds in two weeks without touching a line of code.

Here’s how to do it yourself.

If you want image compression and script optimisation handled automatically, Plug In Speed covers the parts of CWV that apps can fix without developer work.

Try Plug In Speed →

What are the 3 Core Web Vitals?

Google measures three things when it evaluates your store’s real-world speed:

Metric What it measures Good Needs work
LCP — Largest Contentful Paint How fast your biggest visible element loads Under 2.5s Over 4s
INP — Interaction to Next Paint How quickly your page responds when someone taps or clicks Under 200ms Over 500ms
CLS — Cumulative Layout Shift How much the page jumps around as it loads Under 0.1 Over 0.25

CLS is rarely a problem on Shopify. The median CLS across Shopify stores is 0.01 — well inside the “good” range. LCP and INP are where most stores struggle.

“E-commerce sites that reach ‘good’ thresholds on all three Core Web Vitals metrics report 15–30% conversion rate improvements.”
Ecom Toolkit — CWV Revenue Correlation Analysis

Step 1: Measure your scores for free

Before you fix anything, find out where you actually stand.

Google PageSpeed Insights (free): Enter your store URL at pagespeed.web.dev. Look at the Field Data section at the top — this shows your real scores based on actual visitors, not a simulated test. Lab data (lower on the page) is useful for debugging but field data is what Google uses for rankings.

Google Search Console (free, requires setup): The Core Web Vitals report under Experience shows which URLs are passing and failing across your whole site. This is the most authoritative view because it reflects your actual customer base on their actual devices.

Check both. PageSpeed Insights tells you your scores; Search Console tells you which pages are failing at scale.

Step 2: Fix LCP first (it’s almost always images)

LCP is your Largest Contentful Paint — the time it takes for the biggest visible element on the page to load. On most Shopify stores, that element is the hero image on your homepage, or the main product image on a product page.

The three LCP fixes:

1. Compress your hero and product images — Images uploaded at full camera resolution (3–5MB) are the single most common LCP killer. Target under 200KB for product images and under 500KB for full-width heroes. Export in WebP format before uploading — WebP files are 25–35% smaller than JPEGs at the same visual quality, and Shopify accepts them natively. (For a full breakdown of every speed lever — not just images — see our Shopify speed optimization guide.)

2. Make sure your hero image isn’t lazy-loaded — The hero image should load with loading="eager" and fetchpriority="high", not loading="lazy". Right-click your hero in Chrome → Inspect to check. (See our Shopify lazy loading guide for the full walkthrough.)

3. Remove unused apps — Every front-end app loads JavaScript that competes with your images for bandwidth. Removing even one or two heavy apps can improve LCP by 0.5–1 second.

Step 3: Fix INP (it’s almost always apps)

INP (Interaction to Next Paint) replaced FID in March 2024. It measures how quickly your page responds when a visitor taps a button, opens a menu, or interacts with anything.

The #1 cause of poor INP on Shopify is third-party app scripts running in the background and blocking the main thread. When a visitor taps something, the browser has to finish running whatever scripts are queued first — if you have five apps all injecting JavaScript on every page, there’s a queue.

The INP fix: audit your apps.

Open your Shopify admin → Apps. For each app, ask:

  • Is this actively used?
  • Does it need to load on every page, or only specific pages?
  • Is there another app doing the same thing?

Disable apps one at a time and re-test your INP in PageSpeed Insights after each removal. You’ll quickly see which apps are costing you the most.

75% of Shopify stores pass Core Web Vitals — the ones that don’t are typically running too many front-end apps.
Shero Commerce — Shopify Speed Benchmarks

Step 4: CLS is usually already fine — but here’s what to check

Cumulative Layout Shift measures how much content jumps around as your page loads. The Shopify median is 0.01 — excellent.

If your CLS is failing (above 0.1), the most common cause is images without explicit width/height dimensions. When the browser doesn’t know how tall an image will be, it reserves no space for it — and when the image loads, everything below it shifts down.

Fix: make sure every image tag has explicit width and height attributes, or uses an aspect-ratio CSS property to reserve space before the image loads. Shopify 2.0 themes handle this on theme images, but app-injected images and custom sections sometimes don’t.

What about the agency pitch?

Agencies often upsell CWV fixes as complex technical work. Some of it genuinely is — theme code optimisation, custom lazy loading implementations, server-side rendering changes. But the things that move the needle most (app audit, image compression, hero image loading) are operational, not technical.

Most stores that fail CWV have the same three problems: too many apps, uncompressed images, or a lazy-loaded hero image. Fix those three things first — most stores pass. If you still have a gap, then you have a real technical problem worth paying for.

Frequently asked questions

Do Core Web Vitals directly affect Shopify SEO rankings?

Yes. Google uses Core Web Vitals as a ranking signal through its Page Experience algorithm. Passing all three doesn’t guarantee top rankings, but failing them — especially LCP — puts you at a disadvantage against competitors on the same keywords who have faster stores.

What’s the fastest way to check my Shopify Core Web Vitals?

Go to pagespeed.web.dev, enter your store URL, and look at the Field Data section at the top of the results. That’s your real-world score based on actual visitors. If you want to see which specific pages are failing, check the Core Web Vitals report in Google Search Console.

Which Core Web Vital is hardest to fix on Shopify?

INP (Interaction to Next Paint) is typically the hardest because it’s caused by JavaScript from third-party apps — and fixing it means auditing and removing apps rather than making a single technical change. LCP is easier because it’s usually just image optimisation.

How long does it take to pass Core Web Vitals after fixing issues?

Google updates its Core Web Vitals data approximately monthly from the Chrome User Experience Report. After making fixes, expect your Search Console scores to reflect improvements within 4–6 weeks. PageSpeed Insights field data updates faster.

My PageSpeed score is good but Google Search Console shows failing Core Web Vitals. Which is right?

Search Console is right. PageSpeed Insights lab data tests your store on a simulated slow device in ideal conditions — it can pass even when real visitors on real devices are having a slower experience. Always prioritise the field data in both tools.

Fix your Core Web Vitals without a developer

Plug In Speed automatically compresses images, fixes lazy loading priority, and removes script bloat — the three things that cause most Shopify stores to fail LCP and INP.

Install Plug In Speed →