Slow Shopify store: why your fixes aren't enough anymore
You've already compressed the images, removed apps, and switched themes, and the PageSpeed score is still orange. Surface fixes plateau once the theme itself is the bottleneck, and a theme rebuild is what brings load time down.
The short answer
A Shopify store stays slow after image compression and app removal when the problem is the theme itself: a generic theme loads unused code on every page, and each app adds its own script with no coordination with the others. Measure your Core Web Vitals (LCP, CLS, INP) on PageSpeed Insights and in the Search Console report to find out where the problem sits. Past a certain point, only a custom-built theme brings load time down for good.
Why is my Shopify store still slow when I've already tried everything?
You've compressed your images to WebP, uninstalled the apps you no longer needed, maybe switched themes last year. The PageSpeed Insights score is still orange on mobile, sometimes red. The store still takes three to four seconds to load. You've done what the guides recommend. What's missing is the right diagnosis.
Most of the advice you find online targets visible symptoms (heavy images, too many apps, badly configured caching) and misses causes that run deeper. On a store that's been touched up over the years by several different providers, those fixes buy you a few tenths of a second and then stop: the speed has sat in the same range for months.
Why do quick fixes plateau?
Compressing images and removing zombie apps works, up to a point. Each installed app loads its own script on every page, even the ones where it does nothing. Theme sections add their own stylesheets, and third-party scripts block rendering for a few hundred milliseconds.
Taken one at a time, each element looks harmless. The weight adds up: on a store running twelve to fifteen active apps, the total weight becomes unmanageable, and no amount of image compression fixes that. Cleaning up apps trims part of the real weight, but it assumes the underlying theme is sound to begin with.
The usual culprit: a generic theme with apps piled on top
A Shopify theme, even a premium one, is built to work across thousands of different stores, with dozens of settings you can toggle on or off in the editor. You pay for that flexibility with conditional code everywhere, sections that are never used but still load, stylesheets that cover use cases your store will never need.
Add a dozen paid apps on top, each one injecting its own script with no coordination with the others, and the store downloads several megabytes of code before it even shows the first product. When we audit an existing store, we rarely find a single badly coded app or one oversized image. We usually find layers piled on top of each other, which is why each isolated fix falls short. The full approach is covered in /guides/shopify-sans-applications-payantes.
How do you measure your Shopify store's speed yourself?
Two free tools are enough for a first diagnosis. PageSpeed Insights tests one specific page (test a product page as well as the homepage) and gives you a score plus three measurements. The Core Web Vitals report in Search Console shows real data from your actual visitors, grouped by status: good, needs improvement, poor.
The three measurements that matter are the Core Web Vitals, a Google ranking signal since 2021. LCP measures how long it takes for the largest visible element to load, usually your product image. CLS measures layout shifts, like a button jumping right before you click it. INP measures the delay between a click and the page's reaction.
The exact thresholds are published by Google on web.dev, and reproduced in the table below. A store sitting in the orange or red on mobile loses visitors before any visual problem becomes obvious, and the slowness shows up first in the bounce rate.
| Measurement | Good | Needs improvement | Poor |
|---|---|---|---|
| LCP (load time) | ≤ 2.5 s | 2.5 to 4 s | > 4 s |
| INP (responsiveness) | ≤ 200 ms | 200 to 500 ms | > 500 ms |
| CLS (visual stability) | ≤ 0.1 | 0.1 to 0.25 | > 0.25 |
What you can fix yourself, without an agency or a full rebuild
Some fixes still pay off even on a store built on a generic theme, and none of them require touching the code. The ones below bring a measurable gain without a rebuild, listed in the order they're usually applied.
- Compress and resize images to their real display size. A 4,000-pixel product photo uploaded straight from the shoot is still the cheapest fix available.
- Remove unused apps and check what they leave behind. Uninstalling an app doesn't always remove the code it injected into the theme.
- Merge features that overlap. Reviews, a stock counter, a pop-up: each of these apps loads its own script; keeping just one that covers all three already cuts the weight.
- Defer non-essential scripts. Live chat and extra ad pixels can often load after the initial page render, with no functional loss.
When the theme needs rebuilding
If the JavaScript weight loaded before the page renders is still high after that cleanup, the problem lies in the theme itself. A generic theme customized over several years, with sections added and settings never removed, loads code your store no longer uses but that the editor still keeps active.
The lasting fix is a theme written for a single store, with Liquid code that only loads what each page needs. Sonho removes ghost sections and stylesheets for disabled features, and shows customer reviews without relying on an app.
Some apps stay, since payment or logistics have no reasonable custom-code alternative. For each app, ask whether a few dozen lines of code could cover the feature without an external dependency. If so, removing that app is a permanent gain.
Two Shopify stores we rebuilt
On Pimo Care, a bilingual France/Switzerland store, we rebuilt the product and collection pages in full, so they load only what the initial render needs. Details are on /realisations/pimo-care.
On Grillé, the features that used to rely on apps are coded directly into the theme. The team runs its pages and catalog without a developer, as detailed on /realisations/grille. In both cases, the speed came from how the theme was written.
What should you do now?
You have two options. You can keep treating symptoms (one more compressed image, one more uninstalled app) knowing the gains will stay small if the theme is the problem. Or you can have the theme and the apps audited together, to find out whether a custom rebuild is justified.
Either choice can make sense depending on where your store stands, as long as you stop repeating the same surface fix for months. At Sonho, a custom Shopify redesign takes 4 to 6 weeks. Get in touch for an audit that shows where the problem comes from.
Frequently asked questions
- Is compressing my images enough to fix a slow Shopify store?
- It's often enough when the problem comes from oversized images: that's the most common cause on newer stores. A 4,000-pixel product photo displayed at 800 pixels wide carries hundreds of kilobytes it doesn't need, and compressing it to WebP remains the cheapest fix available. If your theme loads unused code on every page and your store runs on a dozen active apps, image compression brings a limited gain, often a few tenths of a second, that doesn't address the underlying cause. Measure before you fix: open PageSpeed Insights and check the weight of the JavaScript loaded before the first product renders. If it's still high after that cleanup, the problem sits in the theme's structure, and only a theme rebuild solves it for good.
- How do I know if the problem is the theme or the apps?
- Open Chrome DevTools, go to the Network tab, reload a product page, and check the total weight of the JavaScript loaded before the page renders. If that weight stays high after uninstalling the apps you don't need, the theme itself is probably the culprit: a generic theme, customized over several years by different providers, often loads code for sections or settings your store no longer uses. A second check: compare the Core Web Vitals report in Search Console before and after removing apps. If mobile LCP barely moves, the cause lies elsewhere. Both checks are free and take ten minutes. They tell you whether to keep cleaning up or move to a theme rebuild.
- What are LCP, CLS, and INP?
- These are the three Core Web Vitals, the measurements Google uses to evaluate the real experience of your visitors, a ranking signal since 2021. LCP (Largest Contentful Paint) measures how long it takes for the largest visible element to load, usually your product image: a good score is 2.5 seconds or less. CLS (Cumulative Layout Shift) measures layout jumps, like a button shifting right before you click it: a good score stays under 0.1. INP (Interaction to Next Paint) measures the delay between a click and the page's visible reaction: a good score is 200 milliseconds or less. All three can be measured for free on PageSpeed Insights or in the Core Web Vitals report in Search Console, where Search Console uses real data from your visitors.
- Do you need to remove all your Shopify apps to go faster?
- No. Some apps cover needs with no simple custom-code alternative, like payment or logistics: removing them would break more than it would fix. For each app, ask whether the feature could be covered by a few dozen lines of code written directly into the theme, with no external dependency. A stock counter or a simple review carousel are typically features a whole app doesn't need to carry. A split-payment module or a logistics connector fully justifies its script. Sort them feature by feature. A store with five well-chosen essential apps is faster than a store with two apps if one of them duplicates something the theme could handle on its own.
- How much does a Shopify rebuild cost to fix a structural speed problem?
- At Sonho, a custom Shopify rebuild costs from €3,000 excl. VAT, delivered in 4 to 6 weeks. What moves the final quote above that floor is mostly the complexity of the catalog and the number of features to carry over: a store with ten active apps and three years of customizations doesn't start from the same place as a recent, well-kept one. That figure is only given after a discovery call that assesses the real state of the theme and the apps in place. The scope covers a full rebuild of the theme, section by section.





