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.
Ashraful
Shopify Select Partner

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:
- List every installed app
- For each one, ask: what would actually break if I uninstalled it?
- 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 explicitwidthandheightattributes. Yes, even with responsive sizes. The aspect ratio prevents jumpy layouts as images load. - Use
loading="lazy"everywhere below the fold. Hero images stayloading="eager". Everything else islazy.
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.
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 storyWorking on a Shopify project?
That's what I do every day. Pick whichever feels lower-friction.
More from the blog
Keep reading

How to Hit Lighthouse 95 on Shopify Without Rebuilding Your Theme
Most Shopify stores can achieve 95+ mobile Lighthouse scores by implementing 7 key optimizations on their existing theme, avoiding expensive rebuilds.
Read
Custom Shopify app vs. App Store: when to build vs. buy
Building a custom Shopify app costs $4k–$20k. Installing one from the App Store costs $9–$99/month. Here's the real decision framework.
Read
Custom Shopify theme vs. premium theme: which one should you actually buy?
An honest comparison of building a custom Shopify theme vs. buying a premium one. With real costs, real timelines, and the decision framework we use with clients.
Read