Skip to content
Speed & Performance

Why Is Your Shopify Store So Slow? 10 Common Causes

You run a speed test, get a red score, and have no idea which of the forty things you’ve added to your store over the past two years is actually to blame. That’s the frustrating part of Shopify speed problems, the platform itself is fast, but almost everything a merchant installs, uploads, or configures on top of it has the potential to slow it down.

The good news is that slow Shopify stores tend to fail in a small number of predictable ways. In our experience running Shopify performance audits, the same handful of culprits show up again and again, regardless of the store’s size or niche. This post walks through the ten most common causes, in roughly the order we see them do the most damage, so you can work out which ones apply to your store before you start fixing anything.

We’ll also draw a clear line between what Shopify controls (hosting, CDN, checkout infrastructure) and what’s entirely down to the merchant (theme code, apps, images, third-party scripts), because that distinction changes what you can actually do about each problem.

Shopify’s infrastructure vs. what you control

Shopify hosts every store on its own global CDN and server infrastructure. That means things like server response time, SSL, basic uptime, and checkout performance are largely out of merchant hands, and generally solid, since Shopify invests heavily in this layer. What Shopify does not control is what you build on top of it: theme code, app installs, image sizes, embedded scripts, and content decisions. In our experience, well over 90% of the speed issues we find during an audit sit in this second category. That’s actually good news, it means most slowdowns are fixable without switching platforms or paying for better hosting.

With that context, here are the ten causes we see most often.

1. Unoptimised product and banner images

This is the single biggest cause of slow Shopify stores. A merchant uploads a 4MB DSLR photo straight from a photoshoot, Shopify displays it at 400 pixels wide on the product grid, and the browser downloads the full file anyway unless the theme is set up to serve responsive sizes. Multiply that by a homepage with a hero banner, a few collection tiles, and twelve products above the fold, and you can easily be loading 15-20MB of images before a visitor sees anything useful.

Fix: Compress images before upload (aim for well under 200KB for most product shots), use modern formats like WebP where your theme supports it, and make sure your theme is using Shopify’s image_url and srcset responsive image features rather than fixed full-size files.

2. Too many apps, or apps that were never removed

Every Shopify app you install can inject its own JavaScript and CSS into your storefront, often on every single page, not just the pages where it’s needed. A reviews app, a currency converter, an upsell popup, a countdown timer, and a live chat widget can each add their own render-blocking script tag. Worse, when merchants uninstall an app, the app doesn’t always clean up after itself, leftover code snippets, orphaned metafields, and unused theme sections can linger in the theme code long after the app is gone.

Fix: Audit your installed apps every quarter. For each one, ask whether it’s earning its keep and whether a native Shopify feature could replace it. After uninstalling an app, check Online Store > Themes > Edit code for leftover snippets and script tags it may have left behind.

3. Bloated or poorly built theme code

Not all Shopify themes are created equal. Some free and paid themes are built with dozens of unused features, sections, and JavaScript files bundled in “just in case”, features you’ll never use but that still get downloaded by every visitor. Custom themes built without performance in mind can be just as bad, particularly if multiple developers have worked on the theme over time without anyone cleaning up dead code.

Fix: A theme performance review should look at what’s actually being loaded versus what’s actually being used. This is usually where a genuine code-level cleanup, rather than another app, makes the biggest difference.

4. Render-blocking JavaScript and CSS

When a browser hits a <script> or <link rel="stylesheet"> tag in the <head> of a page, it typically has to stop and process that file before it can keep building the page. If your theme or your apps load CSS and JS synchronously in the head rather than deferring or asynchronously loading it, visitors stare at a blank or half-rendered page while the browser works through the queue.

Fix: Non-critical scripts should load with defer or async attributes, and CSS that isn’t needed for the initial viewport should be loaded after the page renders. This is theme-code work, not a setting you toggle in the admin.

5. Too many third-party tracking pixels and scripts

Facebook Pixel, Google Ads conversion tracking, TikTok Pixel, Pinterest tag, Google Analytics, a heatmap tool, a customer data platform, it’s common for a growing store to be running six or more tracking scripts simultaneously, each one making its own network request and often loading additional scripts of its own.

Fix: Audit your tracking stack the same way you audit apps. Consolidate where you can (for example, using Shopify’s native pixel manager or a tag manager to control loading behaviour), and remove pixels for platforms you’ve stopped advertising on.

6. Oversized hero videos and image sliders

Autoplaying hero videos and homepage sliders look impressive in a design mockup, but they’re one of the heaviest, most common causes of a slow homepage. A slider with five full-width images means the browser may load all five even though the visitor only sees one at a time, and a background video can add several megabytes on its own.

Fix: If you use a slider, lazy-load every slide except the first. Consider whether a static hero with a strong headline and a single optimised image would convert just as well as a slider, since sliders also tend to underperform on click-through rates regardless of speed.

7. Large, unoptimised custom fonts

Custom fonts loaded from Google Fonts or uploaded as brand assets can add real weight, especially when a theme loads four or five font weights and styles when only two are actually used on the page.

Fix: Trim your font weights down to what you actually use, use font-display: swap so text isn’t invisible while fonts load, and self-host fonts through Shopify’s asset system rather than pulling from an external font CDN where possible.

8. Unoptimised third-party embeds

Instagram feed widgets, YouTube embeds, review carousels, and live chat widgets from external providers often load their own iframe, which brings an entirely separate page’s worth of scripts and stylesheets with it. These are notorious for adding hundreds of milliseconds to load time for a feature that many visitors never interact with.

Fix: Lazy-load embeds so they only load when a visitor scrolls near them, or when they’re clicked (for example, showing a static YouTube thumbnail that loads the actual video player on click).

9. Poor app configuration, not just app volume

Sometimes it’s not the number of apps but how they’re configured. An app that’s set to run on every page when it’s only needed on the checkout or cart page, or an app loading its full script bundle when only a lightweight version is required, does more damage than the app itself needs to.

Fix: Check each app’s settings for page-targeting options, and ask app support (or your developer) whether a lighter-weight loading method is available.

10. Checkout and cart drawer overload

Cart drawers with live shipping calculators, upsell modules, and multiple third-party integrations stacked on top of each other can slow down the exact moment in the funnel where speed matters most for conversion.

Fix: Treat your cart and checkout experience as a performance-critical zone. Every app or script added here should be justified against the conversion lift it delivers, not just added because it’s available.

A quick diagnostic checklist

Before you start fixing anything, run this sequence to work out where your store’s real bottlenecks are:

  1. Run your homepage, a collection page, a product page, and the cart through Google PageSpeed Insights or GTmetrix, speed problems often differ significantly by page type.
  2. Note the total page weight and number of requests for each page type.
  3. Open your theme’s Edit code panel and check the <head> section of theme.liquid for script and stylesheet tags loading synchronously.
  4. List every installed app and cross-check against apps you actually use day to day.
  5. Spot-check your five heaviest product images and your homepage hero for file size.
  6. Review your tracking/pixel setup for duplicates or unused platforms.

If that list turns up more than two or three issues, or if the fixes involve editing Liquid templates and JavaScript directly, it’s usually worth bringing in a specialist rather than guessing your way through theme code. This is exactly the kind of diagnostic and remediation work our Shopify performance optimisation service is built around, we go through each of these causes systematically, fix what’s fixable at the code level, and give you a clear picture of what’s actually worth changing versus what’s a minor issue not worth the engineering time.

Frequently asked questions

Does adding more apps always slow down my store?
Not necessarily, a well-coded app that only loads on the pages where it’s needed can have minimal impact. The problem is usually volume combined with poor configuration: apps loading on every page regardless of whether they’re needed, or apps that were never properly removed.

Will switching Shopify themes fix my speed problems?
Sometimes, but not always. A better-built theme can help, but if your slowdown is mostly caused by apps, images, and tracking scripts, a new theme won’t solve those on its own. It’s worth diagnosing the actual cause before assuming a theme change is the fix.

How fast should my Shopify store actually be?
There’s no single universal number, but as a general guide, aim for your Largest Contentful Paint under 2.5 seconds and keep total page weight as lean as your design allows. Google’s Core Web Vitals thresholds are a reasonable benchmark to work towards rather than a strict pass/fail test.

Can I fix these issues myself without a developer?
Some of them, yes, image compression, app cleanup, and reviewing your tracking scripts are things most merchants can tackle directly in the Shopify admin. Fixes involving theme code, like render-blocking scripts or Liquid inefficiencies, generally need someone comfortable editing theme files safely.

Is Shopify itself the reason my store is slow?
Rarely. Shopify’s own infrastructure, hosting, CDN, checkout, is generally fast and reliable. In almost every audit we run, the slowdown comes from what’s been added on top: apps, images, scripts, and theme code, not the platform underneath it.

Ready to find out what’s actually slowing you down?

Guessing which of these ten causes applies to your store wastes time you could spend fixing the real problem. A Shopify audit gives you a clear, prioritised list of what’s actually slowing your store down and what to fix first, book a call with our team to get started.

Niraj Raut
Written by Niraj Raut SEO Manager

Niraj Raut is the SEO Manager and co-founder at Nexly. He helps Australian Shopify and Shopify Plus brands earn durable organic growth through technical SEO, search-led store architecture and content that ranks. He writes about what actually moves rankings for ecommerce.

Connect on LinkedIn

Got a Shopify project? Let's talk.

Tell us your store and goals, a senior Shopify strategist replies within one business day.

Have a Shopify project? Chat with us, takes 30 seconds.