Speed Up Your Store Stop Losing Sales to Slow Pages
guides

How to Speed Up Your Shopify Store (Before It Costs You More Sales)

This article may contain affiliate links. See our disclosure.

Your Store Is Losing Sales Right Now

This isn’t a hypothetical. If your Shopify store takes more than 3 seconds to load, over half your mobile visitors are leaving before they see a single product.

The numbers are brutal:

  • A 1-second delay in page load drops conversions by up to 20%
  • At 3 seconds, bounce probability increases 32% compared to a 1-second load
  • At 5 seconds, 63% of shoppers bounce and bounce rate jumps to 38% (compared to 9% for sub-2-second sites)
  • Almost 70% of consumers say page speed directly affects whether they’ll buy from you

Put dollar signs on it. A store doing $50,000/month at a 2% conversion rate that improves load time by just one second could see conversions jump to 2.2-2.4%. That’s $5,000-$10,000 in extra monthly revenue from the same traffic you’re already paying for. Walmart found that every 1-second improvement added 2% to conversions. Deloitte research showed a 0.1-second mobile speed improvement lifted retail conversions by 8.4%.

Every day your store is slow, you’re paying for traffic that leaves before buying. That’s not a technical problem - it’s a revenue leak.


Step 1: Measure What You’re Working With

Before fixing anything, you need to know where you stand and what’s actually slow.

Run these tests:

  1. Our free Shopify speed test - Quick overview of your Core Web Vitals and bottlenecks
  2. Google PageSpeed Insights - Detailed Lighthouse audit with specific fix suggestions
  3. Shopify’s built-in speed report - Go to Online Store > Themes > your theme’s speed score

The three metrics that matter:

MetricWhat It MeasuresGoodNeeds WorkPoor
LCP (Largest Contentful Paint)How fast the main content loadsUnder 2.5s2.5-4sOver 4s
CLS (Cumulative Layout Shift)How much the page jumps during loadingUnder 0.10.1-0.25Over 0.25
INP (Interaction to Next Paint)How quickly the page responds to clicksUnder 200ms200-500msOver 500ms

LCP is where most Shopify stores fail. The median Shopify mobile LCP hovers around 2.26 seconds - dangerously close to the 2.5-second threshold Google considers “good.” If yours is above that, you’re both losing rankings and losing customers.

Test your homepage, your highest-traffic product page, and a collection page. The slowest one is your priority.


Step 2: Fix Your Images (The Biggest Win)

Unoptimized images are the number one speed killer on Shopify stores. Product photos uploaded straight from a camera or a photographer can be 3-8MB each. Multiply that across a catalog and your pages are loading tens of megabytes of image data before a customer sees anything useful.

What to do:

  • Compress all product images - You can cut file sizes by 50-70% without visible quality loss. This alone can shave 1-3 seconds off your page load.
  • Use WebP format - WebP images are 25-35% smaller than JPEG at the same quality. Shopify’s CDN serves WebP automatically to supported browsers, but your source images still need to be optimized.
  • Set proper dimensions - Don’t upload 4000x4000px images if they display at 800x800px. Resize to the largest size your theme actually uses.
  • Add width and height attributes - This prevents layout shift (CLS). Without explicit dimensions, the browser doesn’t know how much space to reserve until the image loads, causing the page to jump.
  • Lazy load below-the-fold images - Images that aren’t visible on screen load shouldn’t load until the user scrolls to them.

The tool we recommend: Tiny SEO Speed Image Optimizer handles image compression, lazy loading, asset preloading, and code minification from a single dashboard. It runs automatically on every new product upload and compresses images by 50-70% without touching quality. With a perfect 5 rating across 2,159 reviews and a Built for Shopify badge, it’s the most reliable image optimization tool we’ve tested. The free plan covers 50 images/month - enough to get started and see the impact before committing to a paid tier.

Try Tiny SEO Free


Step 3: Audit and Remove Unnecessary Apps

Every app you install adds JavaScript that loads on every page. On bloated Shopify stores, 60-80% of loaded JavaScript goes unused on any given page. That’s dead weight dragging your speed down.

The worst offenders:

  • Chat widgets - Live chat scripts are some of the heaviest, often adding 500KB+ of JavaScript
  • Pop-up and banner apps - Multiple pop-up apps stacking scripts is a common problem
  • Review widget apps - Rendering review carousels and star ratings on every product page adds up
  • Social media feed embeds - Instagram feeds and TikTok embeds load heavy third-party scripts
  • Tracking pixels stacked up - Facebook, Google, TikTok, Pinterest - each pixel adds load time

How to audit:

  1. Go to Settings > Apps and sales channels in your Shopify admin
  2. List every installed app
  3. For each app, ask: “Has this app generated revenue or saved time in the last 30 days?”
  4. If the answer is no, uninstall it
  5. After uninstalling, check your theme code editor for leftover snippets - many apps leave behind “ghost code” that keeps loading even after uninstall

Important: Apps with the “Built for Shopify” badge are required to use Theme App Extensions, which remove themselves cleanly on uninstall. Apps without the badge often leave code behind.

One merchant reported that removing a single unused review widget script improved their INP by 45ms. Multiply that across 3-5 unnecessary apps and you’re looking at a meaningful speed gain from subtraction alone.


Step 4: Optimize Your Theme Code

Your theme’s CSS and JavaScript are loaded on every single page. If they’re bloated, every page is slow.

Quick wins:

  • Minify CSS and JavaScript - Strip whitespace, comments, and unnecessary characters from your code files. This can reduce file sizes by 10-30%. Tools like Tiny SEO handle this automatically.
  • Defer non-critical JavaScript - Scripts that aren’t needed for the initial page render (analytics, chat widgets, social proof) should load after the main content. Add defer or async attributes to non-essential script tags.
  • Inline critical CSS - The CSS needed to render above-the-fold content should load immediately. Everything else can be deferred. This prevents the render-blocking that tanks your LCP.
  • Remove unused CSS - Heavy themes ship with CSS for features you might not use (mega menus, product tabs, animations). Unused CSS still loads and slows your page down.

If you’re comfortable editing theme code:

<!-- Preload your hero image for faster LCP -->
<link rel="preload" as="image" href="{{ section.settings.image | image_url: width: 1200 }}">
<!-- Defer non-essential scripts -->
<script src="{{ 'non-critical.js' | asset_url }}" defer></script>

If you’re not comfortable touching code, speed optimization apps like Tiny SEO and Hyperspeed handle minification and script deferral through their dashboards - no code editing required.


Step 5: Optimize Your Hero Image and Above-the-Fold Content

Your Largest Contentful Paint (LCP) element is almost always your hero image or the first large image visible on screen. This single element is the biggest factor in your LCP score, and LCP is the Core Web Vital most Shopify stores fail.

What to do:

  • Preload the hero image - Add a <link rel="preload"> tag in your theme’s layout file so the browser starts downloading the hero image immediately, before it even parses the HTML
  • Use the right size - Don’t load a 2400px hero image for mobile screens. Use Shopify’s image_url filter with appropriate width parameters and srcset for responsive sizing
  • Avoid lazy loading above-the-fold images - Lazy loading defers image loading until the user scrolls. That’s great for images further down the page, but your hero image should load immediately
  • Keep it simple - Hero carousels/sliders load multiple large images and add JavaScript. A single static hero image will always be faster

Step 6: Fix Layout Shift (CLS)

Layout shift is when the page jumps around as elements load. A product image pops in and pushes the “Add to Cart” button down. A banner appears at the top and shoves all content lower. Your customer clicks a button and hits the wrong thing because the page shifted.

Common CLS culprits on Shopify:

  • Images without dimensions - Always set width and height attributes on <img> tags
  • App-injected banners - Announcement bars and promotional banners that load after the page renders push content down
  • Web fonts loading late - Custom fonts that swap in after system fonts cause text to reflow. Use font-display: swap with appropriate fallback fonts
  • Dynamic content injection - Review stars, trust badges, and social proof widgets that pop in after page load

The fix: Reserve space for every element before it loads. Set explicit dimensions on images and videos. Use aspect-ratio CSS for embedded content. Load app-injected content in fixed containers rather than letting it push things around.


Step 7: Enable Prefetching

Prefetching pre-loads the next page when a user hovers over a link, making navigation feel nearly instant. The actual page load time doesn’t change, but the perceived speed improves dramatically because the next page is already loaded before the click.

Two ways to get this:

  1. Tiny SEO’s asset preloading - Built into the app alongside image compression and code minification. One tool for multiple speed improvements.
  2. Booster Page Speed Optimizer - A free, dedicated prefetching app. Install it in addition to your image optimizer for maximum impact.

Both approaches are lightweight and won’t slow your store down. Prefetching is one of the highest-impact, lowest-effort speed improvements you can make.


Step 8: Use Shopify’s CDN (You Already Have It)

Every Shopify store automatically uses Shopify’s global CDN (powered by Cloudflare) to serve static assets - images, CSS, JavaScript - from edge servers close to your customers. You don’t need to configure anything, but you can make sure you’re not working against it:

  • Serve images through Shopify’s CDN - Use Shopify’s image_url or img_url Liquid filters rather than linking to external image hosts
  • Don’t self-host fonts - Use Shopify’s font library or Google Fonts (both CDN-served) rather than uploading font files to your theme
  • Avoid third-party CDN apps - Shopify’s built-in CDN is already fast. Layering another CDN on top usually adds complexity without improving speed

The Speed Optimization Checklist

Use this as a checklist. Work through it top to bottom - the items at the top have the biggest impact.

  • Test your current speed - Run our speed test and note your LCP, CLS, and INP scores
  • Compress all images - Use Tiny SEO or similar to compress existing and future product images
  • Remove unused apps - Audit every installed app and uninstall ones that aren’t earning their keep
  • Clean up ghost code - Check theme code for leftover snippets from uninstalled apps
  • Minify CSS and JavaScript - Strip unnecessary characters from code files
  • Preload the hero image - Make your LCP element load as fast as possible
  • Add image dimensions - Set width/height on all images to prevent layout shift
  • Lazy load below-the-fold images - Defer off-screen images
  • Defer non-essential scripts - Analytics, chat, and social proof scripts can load last
  • Enable prefetching - Pre-load pages on link hover for instant-feeling navigation
  • Test again - Compare before/after scores and verify improvement

How Much Speed Is Enough?

Perfection isn’t the goal. A perfect 100 Lighthouse score is nearly impossible for a real Shopify store with apps, analytics, and dynamic content. And you don’t need it.

What you need:

  • LCP under 2.5 seconds - This keeps you in Google’s “good” range and prevents the worst conversion losses
  • CLS under 0.1 - No page jumping that frustrates customers
  • INP under 200ms - Pages respond quickly to clicks and taps

If you hit these three thresholds, you’re ahead of most Shopify stores and you’ve eliminated the biggest speed-related revenue leaks. Everything beyond that is incremental.

The real benchmark isn’t a Lighthouse number - it’s whether your speed is costing you sales. Run the numbers: check your bounce rate on mobile vs desktop. If mobile bounce rate is 10+ percentage points higher than desktop, speed is likely a factor. Every percentage point of bounce rate you reduce by improving speed translates directly to more customers seeing your products and more revenue.

Stop leaving money on the table. Fix your speed today.

Want to see which speed apps can help? Check our 10 Best Speed Optimization Apps for Shopify for a detailed comparison, or test your store now with our free speed test.

Frequently Asked Questions

What is a good speed score for a Shopify store?

A Lighthouse score of 50-70 is average for Shopify stores, and anything above 70 is considered good. Scores above 90 are rare for stores with apps and dynamic content. But the score itself matters less than real-world metrics: aim for Largest Contentful Paint under 2.5 seconds, Cumulative Layout Shift under 0.1, and Interaction to Next Paint under 200ms. These Core Web Vitals directly affect your Google rankings and your customers' experience.

Do Shopify apps slow down my store?

Yes, most apps add JavaScript that loads on every page. The average Shopify app adds roughly 200-500ms to page load time and around 400KB of JavaScript. On bloated stores, 60-80% of loaded JavaScript goes unused on any given page. Apps that inject scripts into your storefront (pop-ups, chat widgets, review badges, tracking pixels) have the biggest impact. Backend-only apps like Shopify Flow have minimal effect. Audit your apps regularly and remove anything you're not actively using.

How much revenue am I losing from a slow store?

The math depends on your traffic and conversion rate. A site loading in 1 second converts at roughly 5x the rate of one loading in 10 seconds. Even small improvements matter - a 0.1-second improvement in mobile speed increases retail conversions by 8.4% according to Deloitte. If your store does $50,000/month at a 2% conversion rate and you improve speed enough to lift conversions to 2.2%, that's an extra $5,000/month - $60,000/year - from the same traffic.

Should I change my Shopify theme for better speed?

If you're using a heavy, outdated theme, switching to a lightweight Online Store 2.0 theme can make a significant difference. Shopify's Dawn theme is the performance benchmark - it's free and scores 95+ on Lighthouse out of the box. But before switching themes, try optimizing what you have first: compress images, remove unused apps, and defer non-essential scripts. A theme switch is disruptive and should be a last resort after you've exhausted simpler fixes.

Marcus Webb
Written by
Marcus Webb
Shopify Consultant & E-commerce Strategist

Shopify consultant with 6+ years of hands-on experience testing and reviewing 200+ apps to help merchants find the right tools for their stores.

View full profile →