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.