Why Speed Is Critical for Shopify Stores
Every second your Shopify store takes to load costs you money. Research from Google shows that a 1-second delay in mobile page load time can reduce conversions by up to 20%. Amazon found that every 100 milliseconds of additional load time costs them 1% in sales.
For Shopify stores specifically, speed affects three things:
- Conversions: Faster stores convert better
- SEO: Google uses Core Web Vitals as a ranking signal
- Ad costs: Google Quality Score factors in landing page speed, affecting your cost-per-click
Let's fix your store's speed systematically.
Step 1 — Benchmark Your Current Speed
Before optimizing anything, measure where you stand. Use these free tools:
- PageSpeed Insights (pagespeed.web.dev) — Google's official tool, shows Core Web Vitals
- GTmetrix (gtmetrix.com) — Detailed waterfall analysis of what loads when
- WebPageTest (webpagetest.org) — Test from different locations worldwide
Test your homepage, a collection page, and your most important product page. Note your current Lighthouse Performance score for mobile — aim to get it above 70.
Step 2 — Audit and Remove Unused Apps
This is the single highest-impact change you can make. Every Shopify app you install adds JavaScript and CSS to your store, even when it's not actively being used on a page.
How to audit your apps:
- Go to Shopify Admin → Apps
- List every app you have installed
- For each app, ask: "Would I pay $5/month for what this app does?" If not, delete it.
- After deleting apps, some leave behind code in your theme. Check with your developer or use the Theme Inspector Chrome extension to find orphaned scripts.
Stores often see a 10-30 point improvement in PageSpeed score just from removing 3-5 unused apps.
Step 3 — Optimize Your Images
Images are typically 60-80% of a page's total file size. Optimizing them has a massive impact on load time.
Before Uploading to Shopify
- Resize images to the maximum size they will be displayed (usually 2048px wide for hero images, 1200px for product images)
- Compress with TinyPNG or Squoosh (both free)
- Convert to WebP format — Shopify automatically serves WebP to supported browsers since 2020
Image Best Practices
- Product images: target under 200KB each
- Hero/banner images: target under 500KB
- Use Shopify's
img_urlfilter with size parameters to serve appropriately sized images:{{ product.featured_image | img_url: '800x' }}
Enable Lazy Loading
Lazy loading means images only load when they enter the viewport, not when the page first loads. Most modern Shopify themes have this built in. If yours does not, add the loading="lazy" attribute to all img tags except your above-the-fold hero image.
Step 4 — Choose a Fast Theme
Your theme is the foundation of your store's speed. Some themes are bloated with features you may never use.
Fastest free themes (tested by Shopify):
- Dawn — Shopify's reference theme, built for speed
- Sense — Clean, fast, great for beauty brands
- Crave — Bold design, still fast
If you're using a premium theme and your PageSpeed score is below 50, consider switching to Dawn. The performance difference can be dramatic.
Step 5 — Reduce JavaScript
JavaScript is the biggest performance bottleneck for most Shopify stores. Here is how to reduce its impact:
Defer Non-Critical JavaScript
Add defer or async to script tags that do not need to run immediately:
<script src="non-critical.js" defer></script>
Remove jQuery If Possible
Older Shopify themes rely on jQuery (87KB). Modern themes use vanilla JavaScript instead. If you're on a newer theme, check if jQuery is still being loaded by an old app.
Use System Fonts for Body Text
Loading Google Fonts adds a network request. For body text, consider using system fonts instead:
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
Step 6 — Enable Browser Caching
Shopify automatically sets cache headers for static assets (images, CSS, JS) at the CDN level. However, you can improve caching by:
- Not adding cache-busting query strings to asset URLs unnecessarily
- Using Shopify's
asset_urlfilter, which includes a version hash for proper cache invalidation
Step 7 — Optimize Your Liquid Code
Inefficient Liquid code can slow down your server response time (Time to First Byte). Common issues:
- Too many API calls in loops: Avoid calling
all_productsinside aforloop - Deeply nested loops: Keep loop nesting to a maximum of 2 levels
- Large snippets rendered unnecessarily: Use
{% if %}guards before rendering heavy snippets
Step 8 — Use a CDN for Images
Good news — Shopify already serves all your images through Fastly's global CDN automatically. You do not need to set this up. However, make sure you're using Shopify-hosted images (uploaded through admin) rather than images hosted on external slow servers.
Step 9 — Minimize Third-Party Scripts
Third-party scripts from analytics tools, chat widgets, social media pixels, and marketing tools all add load time. Audit your scripts:
- Facebook Pixel: Load asynchronously
- Google Analytics 4: Use Shopify's built-in GA4 integration instead of manually adding the script
- Live chat: Only load the chat widget after user interaction (most modern chat apps do this)
- Instagram feed apps: These are often very heavy — consider replacing with a static Instagram widget
Core Web Vitals — What Google Measures
Google specifically measures three Core Web Vitals:
- LCP (Largest Contentful Paint): How fast the largest visible element loads. Target: under 2.5 seconds. Fix: optimize your hero image.
- FID/INP (Interaction to Next Paint): How fast the page responds to user input. Target: under 200ms. Fix: reduce JavaScript execution.
- CLS (Cumulative Layout Shift): How much the page layout shifts as it loads. Target: under 0.1. Fix: set explicit width and height on all images.
Expected Results
After implementing all optimizations in this guide, here is what you can realistically expect:
- PageSpeed mobile score: 60-85 (up from 20-40 for a typical unoptimized store)
- LCP: under 3 seconds on a 4G connection
- Conversion rate improvement: 10-25%
- Bounce rate reduction: 5-15%
Speed optimization is not a one-time task. Run a PageSpeed audit every quarter and after installing any new app.

