Improving your Shopify store speed comes down to four levers: serve smaller images, ship less JavaScript, pick a lean theme, and meet Google’s Core Web Vitals thresholds. Everything else is a variation on those four. This guide walks through each one with specifics you can act on today, plus the testing tools that tell you whether the changes actually worked - and a measurement workflow most guides skip for pinning down exactly which apps are dragging you down.

Why it matters: Google uses page experience as a ranking signal, and Deloitte’s 2020 milliseconds-make-millions study found a 0.1-second improvement in mobile load time lifted retail conversions by 8.4%. If your store takes 5+ seconds to load on mobile, you’re not just losing SEO - you’re losing sales at the cart.

Key Takeaways
1
Compress and convert images to WebP; oversized hero images are the #1 cause of slow Shopify stores.
2
Audit and remove apps you don’t actively use - each one injects JavaScript on every page.
3
Aim to pass Core Web Vitals: LCP under 2.5s, INP under 200ms, CLS under 0.1.
4
A lightweight theme like Dawn consistently outperforms feature-heavy themes before you change anything else.

1. Compress Images and Switch to WebP

Images are almost always the biggest chunk of what loads on a Shopify page. A single uncompressed hero banner can be 2 MB on its own - more than most browsers want to download over mobile data.

What to actually do:

  • Convert to WebP. WebP is typically 25-35% smaller than JPEG at the same visual quality. Shopify fully supports it and serves it automatically when the browser allows.
  • Resize before upload. Don’t upload a 4000px-wide product photo if it’ll display at 800px. Resize to the largest size you actually need.
  • Compress without losing quality. Tools like TinyPNG, Squoosh, or ImageOptim can shave 40-70% off a file with no visible difference.
  • Write real alt text. “Women’s merino wool sweater in oatmeal” beats “IMG_4421.jpg” for accessibility and SEO alike.

2. Audit Your Apps (Ruthlessly)

Every Shopify app you install typically injects its own JavaScript and CSS into every page - not just the page it’s used on. A store with 20 apps is loading 20 scripts on the homepage even if only two are actually being used there.

Do this once a quarter:

  1. Open your app list and note which apps you’ve opened in the last 30 days.
  2. For each app you haven’t touched, ask: “Does this save me time or revenue?” If the answer is no, uninstall it (uninstall, not just disable - disabled apps often leave code behind).
  3. For the apps you’re keeping, check whether any two are doing the same job (e.g., two popup tools, two reviews widgets). Consolidate.

Most stores see their biggest single speed gain here - sometimes a full second shaved off LCP from removing 3-5 unused apps.

3. How to Pinpoint Exactly Which Apps Are Slowing You Down

“Audit your apps” is good advice, but most merchants don’t know how to actually attribute slowness to a specific app. The Shopify admin doesn’t show per-app performance impact. Here’s a workflow that does.

Step 1: Run a baseline. Before changing anything, run PageSpeed Insights on your homepage and one product page. Write down the LCP, INP, CLS, and total blocking time numbers. This is your before.

Step 2: Use Chrome DevTools Coverage. Open your store in an incognito Chrome window. Press F12 to open DevTools, then Cmd+Shift+P (Mac) or Ctrl+Shift+P (Windows) and search “Coverage.” Click the reload icon in the Coverage panel and let the page finish loading. You’ll get a list of every JavaScript and CSS file loaded, with the percentage of code actually used. Files showing 80%+ unused code that come from app domains (e.g., cdn.shopify.com/s/files/.../app-name.js or third-party domains) are dead weight.

Step 3: Disable suspect apps one at a time. Most apps add their scripts to the theme via a script tag or app embed block. In your theme editor, go to App embeds and toggle one app off. Re-run PageSpeed Insights. If your numbers improve significantly, that app is part of the problem. Repeat for each suspect.

Step 4: Read the Network waterfall. In DevTools’ Network tab, sort by Time descending. The slowest few requests are your real bottleneck. If three of the top five are from the same app’s CDN, that app is the issue regardless of what its product page says about being “lightweight.”

Step 5: Don’t trust app-store performance claims. Many apps advertise “no impact on speed” but inject scripts on every page anyway. The DevTools Network tab is the only honest measurement.

This 30-minute workflow consistently saves merchants from uninstalling the wrong app or, worse, hiring a developer to “optimize” a problem that’s just one bad embed.

4. Pick a Lightweight Theme

Themes are the single biggest architectural decision affecting speed, and it’s often easier to switch themes than to retrofit a bloated one. Shopify’s own Dawn theme consistently scores well on PageSpeed Insights because it ships with less JavaScript out of the box. Many premium themes are beautiful but loaded with carousels, videos, and animations that tank mobile performance.

If you’re on a heavy theme and can’t migrate, at minimum strip the homepage down to essentials: one hero, one collection grid, one value-prop section. No auto-playing videos. No five-slide carousels. If you’re shopping for a new theme, you can use our Shopify theme detector to see what competitors run, and compare options in our theme-speed guides.

5. Lazy-Load Below-the-Fold Images and Videos

Lazy loading means images and videos don’t download until the visitor scrolls to them. Shopify themes built in the last few years handle this natively via the HTML loading="lazy" attribute - but only on images added through the theme editor. Images embedded in rich text blocks sometimes miss it.

Quick check: open your product page, view source, search for loading=. Every below the fold should have loading="lazy". Hero images above the fold should NOT be lazy-loaded - lazy-loading your LCP image hurts it.

6. Cut Third-Party Scripts

Third-party scripts - chat widgets, analytics, trust badges, heatmap tools, ad pixels - are the silent killers of Shopify speed. Each one phones home to an external server on page load.

A realistic audit: keep one analytics tool (GA4 or Shopify’s built-in), one chat tool if you actually staff it, and your ad pixels. Cut everything else. If you need heatmaps, run Hotjar for a week of research then turn it off.

7. Optimize Fonts

Custom fonts add character but also add requests and bytes. Three rules:

  • Pick one or two font families maximum. Mix weights within a family instead of mixing families.
  • Use system fonts where it doesn’t matter (body text on long pages).
  • Preload your primary font so text doesn’t flash invisible (FOIT) or swap mid-load (FOUT). Themes with good font handling do this automatically.

8. Server Response Time on Shopify (Why TTFB Still Matters)

Time to First Byte (TTFB) is how long the server takes to send the first byte of HTML after a request. On most platforms it’s a hosting question. On Shopify, it’s a different conversation - you don’t pick the server, but several things you do still affect it.

What’s in your control:

  • App-driven server load. Apps that hook into Liquid rendering (loyalty programs, dynamic pricing, currency converters) run server-side on every page request. A store with five Liquid-injecting apps has a measurably higher TTFB than one with none.
  • Theme complexity. Heavy theme code with deep loops over collections, large metafield reads, or excessive section rendering increases server-side rendering time. A bloated theme hurts TTFB even before any JavaScript runs.
  • Plan tier. Shopify Plus and the higher tiers get priority routing during traffic spikes. Lower-tier plans see more variable TTFB during peak hours, especially Black Friday week.

What’s NOT in your control: Shopify’s edge servers, DNS, the underlying database. Don’t waste time looking for “Shopify hosting upgrades” - they don’t exist outside of Plus.

How to measure it: WebPageTest.org gives you a precise TTFB reading per request. Aim for under 600ms on a desktop connection and under 1.2s on simulated mobile. If you’re consistently over those thresholds, the fix is almost always app reduction or theme cleanup, not anything Shopify support can do for you.

9. Hit Core Web Vitals Thresholds

Google’s Core Web Vitals are the concrete targets you’re actually optimizing for:

  • LCP (Largest Contentful Paint) ≤ 2.5 seconds - how fast your main content (usually the hero image) shows up.
  • INP (Interaction to Next Paint) ≤ 200ms - how quickly the page responds when someone taps or clicks.
  • CLS (Cumulative Layout Shift) ≤ 0.1 - whether stuff jumps around while loading (ads, late-loading images without dimensions, etc.).

If you pass all three in the “Good” bucket, you’re in rare company among Shopify stores. Most of the time, fixing LCP means image work (sections 1 and 5), fixing INP means cutting scripts (sections 2 and 6), and fixing CLS means setting explicit width and height on images and avoiding late-inserted banners.

10. Use the Shopify CDN (You Already Are)

One good-news item: every Shopify store already runs on Shopify’s global CDN, so your images, CSS, and JS are served from a location near the visitor. You don’t need to install a third-party CDN on top. What you DO need to avoid: hosting images on your own WordPress blog or Google Drive and hotlinking them - you lose CDN benefits and add a DNS lookup.

11. Test Speed With the Right Tools

You can’t improve what you don’t measure. Run these regularly:

  • PageSpeed Insights (pagespeed.web.dev) - Google’s own tool, tests real-user Core Web Vitals data, free.
  • Shopify’s Online Store Speed Report (Admin → Online Store → Themes → three-dot menu) - gives you a Shopify-specific score and compares to similar stores.
  • Lighthouse in Chrome DevTools - run locally for instant feedback while you iterate on changes.
  • GTmetrix - good for waterfall analysis to see which specific files are slow.
  • WebPageTest - the most precise TTFB and connection-stage breakdown if you suspect server-side issues.

Test on mobile, not desktop. Mobile numbers are what Google ranks on.

12. Common Mistakes That Kill Shopify Speed

  • Uploading video to the homepage as an auto-playing background.
  • Installing a “speed optimization” app that just adds more scripts.
  • Running two reviews apps because you didn’t fully uninstall the first.
  • Using a slideshow with 5+ slides above the fold.
  • Loading multiple font weights you never use.
  • Keeping demo content (and its images) from a theme install.
  • Trusting an app’s marketing copy over what Chrome DevTools actually shows you.

Speed optimization on Shopify is maintenance, not a one-time project. Schedule a 30-minute audit each quarter, run PageSpeed Insights, run the Coverage workflow on any new app you install, and remove the one heaviest thing you can live without.