Skip to content
Storemend

Guide · Shopify speed

Why is my Shopify store so slow? 7 real causes (and how to tell which is yours)

Written by Astrid, Shopify developer Last updated: 2026-06-16

The short version

Most slow Shopify stores aren’t slow because of one big thing — they’re slow because of accumulation. The usual culprits, in order of how often I find them: oversized uncompressed images, leftover “ghost” code from apps you uninstalled, too many apps loading on every page, and render-blocking scripts and fonts that delay the first paint. The good news is that almost all of it is fixable on your existing theme. Below are the seven real causes, how to measure which one is hitting you, and what you can do yourself versus when it’s worth bringing in a developer.

How to actually measure your Shopify speed first

Before you change anything, get a baseline — otherwise you’re fixing by feel and you’ll never know if it worked. Two free tools do the job:

  • Google PageSpeed Insights (pagespeed.web.dev) — paste your URL and it grades your homepage, a product page, and a collection page. Run all three; they’re usually slow for different reasons.
  • Lighthouse — built into Chrome (right-click → Inspect → Lighthouse tab). Same engine, but it runs locally and shows you the specific files and scripts costing you time.

Two things that trip people up. First, test mobile, not desktop — that’s where most of your traffic is and where slow stores lose sales. Second, your phone’s real-world experience matters more than any single number, so don’t obsess over the score. Look at what the report flags as the biggest opportunities; that list is your to-do list, and it maps almost one-to-one onto the seven causes below.

Cause 1: Oversized, uncompressed images

This is the single most common one, and on product-heavy stores it’s usually the biggest win. People upload photos straight from a camera or phone — a 4,000-pixel-wide, 5 MB JPEG — into a slot that only ever displays at 800 pixels. The browser still downloads the whole giant file before shrinking it on screen. Multiply that by a dozen products on a collection page and you’ve got megabytes of wasted weight.

The fix is compressing images to a sensible size, serving modern formats (WebP), and lazy-loading anything below the fold so the browser only fetches it when the shopper scrolls toward it. How to tell it’s you: PageSpeed flags “Properly size images,” “Serve images in next-gen formats,” or “Defer offscreen images,” and your total page weight is several megabytes.

Cause 2: Ghost code left behind by apps you removed

This one surprises almost everyone. When you uninstall a Shopify app, Shopify removes the app — but it does not always remove the code that app injected into your theme. Snippets, scripts, and leftover Liquid keep sitting in your theme files, loading on every single page, doing nothing except slowing you down. I’ve opened theme files for stores carrying scripts from three or four apps the merchant swears they deleted a year ago.

Cleaning out that ghost code is one of the most reliable speed wins I do, and it’s a core part of the Speed Optimization Quick Wins task. How to tell it’s you: you’ve installed and removed a handful of apps over the store’s life (review apps, upsell apps, popup builders are the worst offenders), and Lighthouse lists script files whose names don’t match any app you currently use.

Cause 3: Too many apps loading on every page

Every app you actively run adds its own JavaScript, CSS, and sometimes external network requests — and most of them load on every page whether that page needs them or not. Your product-review widget doesn’t need to load on the checkout. Your currency converter doesn’t need to run on a blog post. But many apps load everywhere by default.

The honest fix here is partly editorial: audit what each app actually earns you, and remove the ones that don’t pull their weight. A developer can also scope some apps to load only where they’re needed. How to tell it’s you: you’ve got 15+ apps installed, PageSpeed shows a lot of “third-party” or “reduce unused JavaScript” weight, and your Total Blocking Time is high.

Cause 4: Render-blocking scripts and fonts

“Render-blocking” means the browser stops drawing your page until it finishes downloading and running a particular file. If a script or a font sits at the top of the queue and blocks rendering, your shopper stares at a blank or half-built screen even though everything technically loaded.

The fixes are unglamorous but very measurable: defer non-critical scripts so they load after the page paints, load each font once (not the same family three different ways), and preload the handful of assets that genuinely need to come first. How to tell it’s you: PageSpeed flags “Eliminate render-blocking resources” or “Ensure text remains visible during webfont load,” and your First Contentful Paint is sluggish even though total weight isn’t crazy.

Cause 5: Heavy theme and slider/animation code

Some themes are just heavier than others — especially older premium themes loaded with carousels, mega-menus, parallax effects, and animation libraries you may not even be using. Image sliders are a classic offender: they often load every slide up front and pull in a big animation library to do it.

Sometimes the answer is trimming the theme’s unused features; sometimes the theme’s own architecture is the ceiling and no amount of patching gets past it. That’s the line between quick wins and deeper work — more on that below. How to tell it’s you: you’ve already compressed images and cleared ghost code, but the remaining weight in Lighthouse traces back to the theme’s own JS/CSS files rather than apps.

Cause 6: Third-party tracking and chat widgets

Analytics, ad pixels, heatmap tools, and live-chat widgets all phone home to someone else’s servers, and you’re at the mercy of how fast those servers respond. Stack a few of them — and duplicate pixels are everywhere; I find the same Meta or Google tag fired two or three times constantly — and they quietly tax every page load.

The fix is removing duplicates, loading what’s left as efficiently as possible, and cutting tools you’re not actually using. (Duplicate tracking is also a data problem, not just a speed one — it inflates your numbers.) How to tell it’s you: Lighthouse’s “Reduce the impact of third-party code” section lists a long roster of external domains.

Cause 7: What is NOT your fault (checkout speed)

Here’s the one nobody tells you: checkout speed is hosted and controlled by Shopify itself. You can’t optimize it, and neither can any developer — it lives on Shopify’s infrastructure, not in your theme. If your storefront feels fast but checkout feels slow, that’s not something you broke and not something to pay anyone to “fix.”

What you (and I) can speed up is everything leading up to checkout: your home, product, and collection pages. That’s where slow load times actually cost you sales, because that’s where shoppers bounce before they ever decide to buy.

What you can fix yourself vs when to bring in a developer

A fair amount of this is genuinely DIY. Here’s an honest split:

You can do this yourself Worth a developer
Compressing and resizing images before upload Removing ghost code from uninstalled apps (it’s buried in theme files)
Uninstalling apps you don’t use Deferring render-blocking scripts and fixing font loading safely
Auditing which tracking tools you actually need Scoping apps to load only where needed; trimming theme code
Running PageSpeed/Lighthouse to find your baseline Deciding whether the theme itself is the ceiling — and what a fix really involves

The rule of thumb: anything that touches your theme’s code is where it gets risky to DIY, because a wrong edit on your live theme can break the storefront for shoppers. When I do this work, it all happens on a duplicated, unpublished copy of your theme — your live store keeps selling, untouched — and you preview the faster version before anything goes live. The quick-wins task tackles causes 1 through 4 and 6 in one pass and comes with a Lighthouse/PageSpeed before-and-after report on the same pages, so you see real movement, not vibes. If that report shows the remaining weight lives in the theme itself (cause 5), that’s when deeper Shopify speed optimization work is worth scoping — and only then.

One thing worth saying plainly, because the speed market is full of it: be skeptical of anyone guaranteeing a specific PageSpeed score on a store they haven’t even looked at. Your achievable score depends on your theme and the apps you genuinely need. I guarantee the listed work and a measured improvement — not a number I can’t honestly promise.

Not sure which cause is yours?

Send me your store URL in the chat and describe what feels slow — “my site takes forever on phones” is a complete brief. I’ll tell you straight what’s dragging it down, whether it’s a quick-wins job or something deeper, and if it’s not worth paying for, I’ll say that too.

FAQ

Common questions about Shopify speed

Does uninstalling a Shopify app make my store faster?

Not always — uninstalling an app doesn’t remove the code it injected into your theme. Those leftover snippets keep loading on every page long after the app is gone. Cleaning out that “ghost code” is one of the most common speed wins I do, and it’s part of the Speed Optimization Quick Wins task.

Can you guarantee a 100 PageSpeed score?

No, and anyone who guarantees a specific score on a store they haven’t audited is selling the promise, not the work. Your score depends on your theme and the apps you actually need. I guarantee the listed work and a measured before/after improvement on the same pages — not a number.

How long does Shopify speed optimization take?

The quick-wins task is usually about 1 to 2 business days from store access, and it comes with a Lighthouse/PageSpeed before-and-after report. Deeper theme performance work runs roughly 2 to 5 business days and is only worth buying if the report shows the remaining weight lives in the theme itself.

Why is my Shopify checkout slow — can that be optimized?

Checkout speed is hosted and controlled by Shopify, so it’s out of scope for any developer to optimize directly. What I can speed up is everything leading to checkout — your storefront, product, and collection pages — which is where slow load times actually cost you sales.

Keep reading

More plain-English answers in the guides library.