Why your Shopify store loads slow — and the seven things that almost always fix it

A practical, in-order checklist of what actually slows Shopify stores down and how to fix each one without ripping out your theme.

If your Shopify store is slow, the cause is almost always one of seven things — and they show up in roughly the same order across every store we’ve audited. Work through them top-to-bottom; don’t skip ahead.

1. Too many apps you’re not using

The single biggest cause of slow stores is app sprawl. Every installed app injects scripts, styles, or both — and most merchants forget which ones they actually still use.

Fix: open theme.liquid and grep for app-injected <script> and <link> tags. For every app you’re not actively using, uninstall it (don’t just disable). Disabled apps still ship code in many cases.

2. Hero images aren’t optimised

Shopify will serve a 4MB hero image if you upload one. Most stores do.

Fix: make sure hero images are under 250KB, served as WebP, and use Shopify’s image transform parameters (width=, format=webp). On the LCP image, add loading="eager" and fetchpriority="high". Remove loading="lazy" from above-the-fold images.

3. Render-blocking JavaScript

Apps that inject scripts in <head> block the page from rendering.

Fix: audit theme.liquid for <script> tags in head. Add defer to anything that isn’t critical to the first paint. Test in incognito — sometimes a chrome extension is what’s actually blocking.

4. Too many sections on the homepage

Shopify’s homepage is a stack of sections, and each section pulls its own assets. A 14-section homepage isn’t a homepage; it’s a landing page in a trench coat.

Fix: trim to 6–8 sections. The bottom four sections of most stores get less than 10% scroll-through anyway.

5. Custom fonts loaded badly

Loading a font from Google Fonts via <link> is fine. Loading three weights of two families plus an italic variant of each is not.

Fix: load only the weights you actually use. Use font-display: swap. Self-host critical fonts via Shopify’s asset_url if you can.

6. Theme that hasn’t been updated

Old theme code is slow theme code. Dawn 4 ships with significant performance work that older Dawn versions don’t have.

Fix: check your theme version in the admin. If you’re more than two majors behind on Dawn, the upgrade is worth the effort.

7. Third-party tracking pixels

Meta, TikTok, GA4, Hotjar, plus any agency-installed pixels — they add up. We’ve seen stores with 11 tracking scripts loading on every page.

Fix: consolidate everything that can go through Shopify’s Customer Events API into Customer Events. It runs in a sandboxed worker and doesn’t block your main thread.

Measure, then fix

Don’t optimise blind. Run PageSpeed Insights on your homepage, your bestselling product page, and your collection page. Fix the issue that’s costing you the most LCP first. Re-measure. Move on.

A well-built Shopify store should hit a 90+ mobile Lighthouse without much effort. If yours doesn’t, one of the seven above is why.

— Read next

Shopify metaobjects in plain English: the right way to model anything that isn't a product

— Hit a wall?

We can help building properly?