Skip to content

Shopify Performance

Why Your Shopify Store Is Slow

And what to do about the six things that are actually causing it.

/ Theory Digital

A slow Shopify store isn't just annoying - it's expensive. Every extra second of load time costs you conversions, ad efficiency, and SEO visibility. Here's where the speed problems actually come from and how to fix them.

The uncomfortable truth about Shopify store speed is that the platform itself isn't the problem. Shopify's infrastructure is fast. The CDN is solid. The servers are built for eCommerce. When a Shopify store is slow, it's almost always because of what's been bolted on top.

We've optimized performance on hundreds of Shopify stores, and the culprits are remarkably consistent. If your Google PageSpeed score makes you wince, one or more of these six issues is almost certainly the cause.

Why Speed Matters More Than You Think

Before we get into the fixes, let's talk about why this matters. Site speed isn't a vanity metric. It hits your revenue in three places:

  • Conversion rate - Every extra second of load time on mobile costs you conversions. And the damage isn't linear. Going from 1s to 3s hurts way more than going from 3s to 5s, because you lose your most impatient (and often highest-intent) visitors first.

  • Ad efficiency - If you're running paid traffic to a slow landing page, you're burning ad spend on visitors who bounce before seeing your offer. Improving speed can effectively lower your cost per acquisition without changing your ad strategy at all.

  • SEO rankings - Google uses Core Web Vitals as a ranking signal. A slow store with poor LCP and CLS scores will lose organic visibility to faster competitors, especially on mobile.

The Six Usual Suspects

1. App Bloat

This is the number one speed killer on Shopify stores, and it's not close. Every app you install can inject JavaScript, CSS, and API calls into your storefront - even apps that only do something on the backend.

We regularly audit stores running 25-30+ apps when 10-12 would do the same job. The worst offenders are review apps, loyalty programs, live chat widgets, and pop-up tools - not because they're bad products, but because they each add render-blocking scripts that compete for the browser's attention.

The fix: Audit your app list quarterly. For each app, ask: "Is this directly contributing to revenue or operations?" If the answer is "maybe" or "we installed that a year ago," cut it. One thing to watch out for: uninstalling an app doesn't always remove its code. You may need to clean up leftover scripts in your theme manually.

2. Unoptimized Images

Shopify automatically serves images in WebP format and provides responsive sizing through its CDN. But that only works if you're using Shopify's image handling correctly. Custom sections, manually coded images, and images embedded in rich text fields often bypass these optimizations entirely.

The other common issue: uploading 4000x4000px product images when the largest they'll ever display is 800px. The browser downloads the full file before resizing it, wasting bandwidth and delaying render.

The fix: Make sure all images use Shopify's image_url filter with proper width parameters. Lazy-load everything below the fold. Preload hero images for LCP. And set a max upload size for your team. 2000px wide is plenty for most product shots.

3. Third-Party Scripts

Beyond apps, most Shopify stores load a collection of third-party scripts: Facebook Pixel, Google Analytics, Google Tag Manager, Hotjar, Klaviyo tracking, TikTok pixel, and more. Each one adds weight and blocks rendering to some degree.

The problem isn't any single script - it's the cumulative effect. We've seen stores loading 15+ third-party scripts, some of which were duplicated or no longer connected to active campaigns.

The fix: Open up your network waterfall and look at every third-party script. Kill anything that's not actively used. Defer or async-load the non-critical ones. GTM can help you control when scripts fire, but be careful with it. GTM itself adds overhead if you're not thoughtful about the setup.

4. Render-Blocking CSS and JavaScript

When the browser encounters a CSS or JavaScript file in the <head> of your page, it stops rendering until that file is downloaded and processed. This is called "render-blocking," and it's one of the biggest contributors to slow Largest Contentful Paint (LCP) scores.

Theme CSS and JavaScript are the main culprits, but app-injected styles compound the problem. If your theme loads a 200KB CSS file before anything appears on screen, you're starting with a handicap.

The fix: Inline critical CSS for above-the-fold content and defer the rest. Use async or defer on JavaScript where possible. This is dev work, not something you can do from the Shopify admin, but the gains are usually worth it.

5. Web Fonts

Custom fonts are essential for brand consistency, but loading them poorly is a common performance pitfall. Loading 4-5 font weights, using font files hosted on external servers, or not preloading your primary font can all contribute to layout shifts (CLS) and delayed text rendering.

The fix: Keep it to 2-3 font weights max. Self-host your font files instead of loading from Google Fonts (eliminates a DNS lookup). Use font-display: swap so text shows up immediately. Preload your primary font in the document head.

6. Liquid Template Complexity

This one's less obvious but increasingly common as stores customize their themes. Complex Liquid loops, excessive conditional logic, and deeply nested sections all increase server-side render time. Shopify gives each page a 50ms Liquid rendering budget, and complex templates can blow right past it.

The fix: Cut down on nested Liquid loops. Avoid for_loop inside for_loop. Restructure data to reduce metafield lookups. If your collection pages are the slow ones, look at the product card partial first. It's usually making expensive calls on every single product in the loop.

How to Measure What Matters

Shopify's built-in speed score is a rough directional indicator, but it won't tell you what to actually fix. These are the tools we use:

  • Google PageSpeed Insights - Run your homepage, a collection page, and your top product page through it. Focus on the "field data" section (real user data) over the lab data.

  • Core Web Vitals (CrUX report) - Three metrics matter: LCP (how fast the main content loads), CLS (how much the layout shifts), and INP (how responsive the page is to clicks). All three need to be "Good" for Google's ranking benefit.

  • WebPageTest.org - For a deep dive into the loading waterfall. This shows you exactly which requests are blocking rendering and how long each takes. Set the test location to where your customers are and use a mobile connection profile.

The Optimization Priority Stack

If you're tackling speed for the first time, don't try to fix everything at once. Work through this list in order. It's ranked by effort-to-impact:

  1. Remove unused apps - Biggest impact, lowest effort. Just uninstall and clean up residual code.

  2. Optimize images - High impact, moderate effort. Implement proper image sizing and lazy loading.

  3. Audit third-party scripts - Moderate impact, moderate effort. Remove duplicates, defer non-critical scripts.

  4. Fix render-blocking resources - High impact, higher effort. Usually requires theme-level development work.

  5. Optimize fonts - Moderate impact, low effort. Self-host and preload your primary font.

  6. Refactor Liquid templates - Variable impact, highest effort. Only worth it if server render time is a bottleneck.

What "Fast Enough" Actually Looks Like

Perfection isn't the goal. A PageSpeed score of 100 on a Shopify store is nearly impossible once you add tracking, reviews, and payment widgets - and chasing it will drive you crazy. What matters is being fast enough:

  • LCP under 2.5 seconds on mobile

  • CLS under 0.1

  • INP under 200ms

  • PageSpeed mobile score above 50 (on a real Shopify store with tracking, that's genuinely good)

Hit those targets and you're outperforming the vast majority of Shopify stores. And more importantly, your speed won't be a bottleneck on your conversion rate.

Want Us To Speed Up Your Store?

We'll run a full performance audit, identify what's slowing you down, and give you a prioritized plan to fix it.