Why Shopify Sites Get Slow (and How to Fix Them)
Shopify is fast out of the box, but themes, apps, and customizations can tank performance. Learn the most common causes and proven fixes.
Shopify's infrastructure is excellent — global CDN, HTTP/2, auto-compression. But the average Shopify store scores 30-50 on Lighthouse mobile because of themes, apps, and customizations that pile on JavaScript and render-blocking resources.
Why Shopify Stores Slow Down
1. Heavy Themes
Premium themes often include every feature imaginable — sliders, mega menus, quick-view modals, animations — whether you use them or not. A theme might ship 500KB-1MB+ of JavaScript.
2. App Bloat
Each Shopify app injects its own JavaScript and CSS. The average store has 15-20 apps, and many load scripts on every page:
| Apps Installed | Typical JS Added | LCP Impact |
|---|---|---|
| 5 | 200KB | Minimal |
| 15 | 800KB | +1-2s |
| 25 | 1.5MB | +2-4s |
| 40+ | 3MB+ | Unusable on mobile |
3. Unoptimized Images
Product images uploaded directly from cameras can be 2-5MB each. A collection page with 20 products can load 50MB+ of images.
4. Third-Party Scripts
Analytics, reviews, chat widgets, social proof popups, exit-intent overlays — each adds HTTP requests and JavaScript.
Quick Fixes (30 Minutes)
Audit Your Apps
- Go to Settings → Apps and sales channels
- For each app, ask: "Is this driving revenue?"
- Uninstall unused apps
- Check if uninstalled apps left scripts behind (View Page Source → search for old app domains)
Optimize Images
Shopify automatically serves WebP and resizes images, but only if you use the image_url filter:
{{ product.featured_image | image_url: width: 600 | image_tag: loading: 'lazy' }}
Defer Non-Critical Scripts
Move app scripts to the bottom of theme.liquid or use defer:
<script src="app.js" defer></script>
Reduce Homepage Sections
Each section with dynamic content adds rendering time. Limit homepage to 6-8 sections maximum.
Advanced Fixes
Switch to a Faster Theme
Fastest Shopify themes (2026):
- Dawn (Shopify's reference theme) — free, minimal, fast
- Sense — clean and lightweight
- Craft — optimized for speed
- Ride — minimal, fast defaults
Preload Critical Resources
In theme.liquid:
<link rel="preload" as="image" href="{{ 'hero.jpg' | asset_url }}">
<link rel="preconnect" href="https://cdn.shopify.com">
Use Native Features Instead of Apps
| Instead of App | Use Native |
|---|---|
| Reviews app | Shopify Product Reviews (free) |
| SEO app | Native meta fields |
| Image optimizer app | Shopify auto-optimization |
| Popup app | Theme section + custom code |
Lazy Load Below-Fold Content
{% for product in collection.products %}
{{ product.featured_image | image_url: width: 400 | image_tag:
loading: 'lazy',
width: 400,
height: 400 }}
{% endfor %}
Monitor Your Store's Speed
Shopify stores need continuous monitoring because app updates and content changes can regress performance overnight.
Ready to stop wasting ad spend?
Track your landing page performance, monitor Core Web Vitals, and calculate exactly how much slow pages cost you.
Start Free — No Credit Card