ezomfy
All posts
April 22, 20267 min read

Why your Shopify store is slow (and the 4 fixes that actually work)

Most Shopify speed advice is fluff. Here are the 4 fixes that actually move Lighthouse scores — and the popular ones that don't.

A

Ashraful

Shopify Select Partner

Why your Shopify store is slow (and the 4 fixes that actually work)

Every Shopify merchant we talk to is convinced their store is slow. They're usually right — the average Shopify store on the bare Dawn theme scores around 60 on mobile Lighthouse, and that's before the bloat that arrives after a couple of years of installing apps.

The frustrating part: most of the speed advice on the internet is wrong. "Install a speed-booster app" is the most common one, and ironically that's one of the things that causes slow stores.

After auditing 100+ stores, the same four problems account for ~90% of slow Shopify performance. The good news: all four are fixable in a week, by a single developer, without a "speed optimization app."

1. Audit your apps — most are dragging you down

Open any Shopify store and view source. Count the unique third-party domains in the <head>. A typical merchant's store has 15–25.

Every third-party domain is a DNS lookup, a TLS handshake, and a render-blocking request before your hero image starts to load. Most "speed-booster" apps add another 1–3 of these.

The audit:

  1. List every installed app
  2. For each one, ask: what would actually break if I uninstalled it?
  3. The answer is "nothing visible" more often than you'd expect

We routinely uninstall 6–8 apps from a store and the merchant's reaction is, "I forgot I had that." A typical app cleanup recovers 15–30 Lighthouse points and saves $60–$200/mo in app fees.

Apps to look at first: pop-up apps, review apps with widgets you've removed, "trust badge" apps, currency converters that just rewrite text, and anything claiming to "optimize" your site.

2. Use modern image formats — and stop using image-optimizer apps

Shopify's CDN serves WebP automatically if you reference your images correctly. You don't need an app.

The wrong way (still on most stores):

<img src="{{ product.featured_image.src }}">

The right way:

<img
  src="{{ product.featured_image | image_url: width: 800 }}"
  srcset="{{ product.featured_image | image_url: width: 400 }} 400w,
          {{ product.featured_image | image_url: width: 800 }} 800w,
          {{ product.featured_image | image_url: width: 1600 }} 1600w"
  sizes="(min-width: 1024px) 50vw, 100vw"
  loading="lazy"
  decoding="async"
  width="800"
  height="800"
  alt="{{ product.featured_image.alt | escape }}">

That snippet does five things image apps charge $9/mo for: WebP via the CDN, responsive sizes, lazy loading, async decoding, and CLS prevention via explicit dimensions.

Drop it into your theme's product card / collection card / hero sections. Lighthouse will reward you immediately.

3. Audit your theme's JavaScript bundle

Most premium themes ship 200–400KB of JavaScript that 80% of your customers never trigger. Sliders, lookbook modals, animated counters, cart drawers, predictive search.

Open Chrome DevTools → Coverage tab. Hit "Start recording" and click around your store. The bytes in red are JavaScript that loaded but never executed.

The fix isn't to remove features — it's to defer them. Move non-critical scripts to defer or load on interaction:

<!-- Loads but doesn't block parsing -->
<script defer src="{{ 'lookbook.js' | asset_url }}"></script>

<!-- Better: load only when user clicks Quick View -->
<button data-quick-view onclick="loadQuickView()">Quick view</button>
<script>
  function loadQuickView() {
    if (window.quickViewLoaded) return;
    const s = document.createElement("script");
    s.src = "{{ 'quick-view.js' | asset_url }}";
    document.head.appendChild(s);
    window.quickViewLoaded = true;
  }
</script>

The mobile customer who never clicks Quick View saves 40KB of JS download and 60ms of parse time.

4. Cache your CDN properly — and set width/height on every image

The single biggest CLS (Cumulative Layout Shift) bug on Shopify themes is missing image dimensions. Lighthouse penalizes CLS more than almost any other Web Vital.

Two rules:

  • Every <img> needs explicit width and height attributes. Yes, even with responsive sizes. The aspect ratio prevents jumpy layouts as images load.
  • Use loading="lazy" everywhere below the fold. Hero images stay loading="eager". Everything else is lazy.

For CDN: Shopify uses Fastly under the hood and you don't need to configure anything — but if you're running an external image CDN (Cloudinary, Imgix, etc.) for some assets, double-check you're not double-caching.

What we don't recommend

Three things that get sold as "speed boosters" that don't move Lighthouse meaningfully:

  • "Critical CSS" apps — they inline a minified copy of your CSS, which helps in synthetic tests but real users were already getting that CSS cached on the second pageview. Net effect: ~2–3 points.
  • AMP for product pages — Google deprecated AMP's preferential ranking treatment in 2021. The "speed gain" is real but the maintenance burden isn't worth it.
  • Custom infrastructure / "headless" Shopify — moving to Hydrogen or Next.js doesn't make your store faster by default. It just shifts the bottleneck from Liquid to your React bundle. We've seen headless stores score worse than the original Liquid theme they replaced.

When to call someone

If you've done the four fixes above and you're still under 70 on mobile Lighthouse, the slowness is likely structural — a theme that was never built with performance in mind, or a stack of integrations that need re-architecting.

That's the kind of work we do: one-week speed audits that ship as a PR you (or your team) can review and merge. Usually a 15–30 point Lighthouse gain. If you want a quote, tell us about your store.

Or, if you're rebuilding from scratch, Verso ships with all four of these patterns built in by default.

A

About the author

Ashraful

Shopify Select Partner, Top Rated Plus on Upwork. 700+ Shopify projects shipped over 7+ years — themes, apps, migrations, speed, Hydrogen. Solo shop, no agency middlemen.

Read the full story

Working on a Shopify project?

That's what I do every day. Pick whichever feels lower-friction.