Your Shopify store is almost always slow because of what's installed on top of it, not Shopify itself. The biggest culprit is third-party app scripts, followed by large unoptimized images and a heavy theme. Stores running more than 8 front-end apps typically show a mobile LCP above 3 seconds; stores with 3 or fewer usually stay under 2 seconds. Fix the apps, images, and render-blocking code — in that order — and most stores pass Core Web Vitals.
If your Shopify store feels sluggish, you're not imagining it, and you're not alone. Most Shopify stores score between 25 and 45 on mobile in Google PageSpeed Insights, with a Largest Contentful Paint sitting somewhere between 3.2 and 5.1 seconds — comfortably above the threshold Google wants to see. The frustrating part is that the platform usually isn't the problem. According to the HTTP Archive's 2024 Web Almanac, 75% of Shopify sites pass Core Web Vitals, versus just 43% of WordPress sites. So when a Shopify store is slow, the cause is nearly always something the merchant added — an app, an image, a theme, a snippet of tracking code.
This guide walks through exactly why Shopify stores slow down, how to diagnose your own store in about fifteen minutes, and a prioritized fix-it checklist you can work through today. It's the same diagnostic order we use on client stores in our Shopify speed & Core Web Vitals work.
What "slow" actually means on Shopify
Before you fix anything, it helps to know what you're measuring. "Slow" isn't a feeling Google acts on — it's three specific metrics called Core Web Vitals, measured on real visitors, not a lab test. These have been a confirmed Google ranking factor since the 2021 Page Experience update. They're a modest signal on their own, but they act as a tiebreaker between pages of similar quality, and poor scores drive up bounce rates in a way that hurts rankings indirectly.
| Metric | Measures | "Good" threshold | Where Shopify fails |
|---|---|---|---|
| LCP Largest Contentful Paint | How fast the main content appears | < 2.5 s | Almost always here |
| INP Interaction to Next Paint | How fast the page responds to taps | < 200 ms | Sometimes (heavy JS) |
| CLS Cumulative Layout Shift | How much the page jumps while loading | < 0.1 | Rarely |
LCP is where Shopify stores fail. Real-user data across thousands of Shopify stores shows the same pattern: stores that fail Core Web Vitals almost always fail on LCP specifically, while CLS and INP usually sit fine. So if you only have time to fix one thing, fix what's slowing down your largest content element — usually your hero or main product image.
INP replaced First Input Delay as a Core Web Vital in March 2024, and it measures the worst interaction responsiveness across a visit — so heavy JavaScript that ties up the browser's main thread hurts it. CLS is the one most stores already pass, though announcement bars and app widgets that load late can still cause it.
Why is my Shopify store slow? The 6 real causes
Performance advice tends to arrive as a list of forty things, half of which don't apply to Shopify. In practice, the failures cluster around a handful of causes. Here they are, in the order they most often matter.
1. Too many third-party apps (the #1 cause)
This is the big one. Every app that injects a script into your theme adds weight, and many add it to every single page, whether that page uses the app or not. The correlation is stark: on average, a single new Shopify app adds 50KB to 150KB of JavaScript to every page load. For a store sitting right at the 2.3–2.5 second LCP line, installing one more app can be enough to push it into failing territory.
Review apps, upsell and cross-sell apps, popups, loyalty widgets, and analytics tags are the usual suspects. Some insert synchronous scripts that literally hold up the page from rendering until they finish loading. Each front-end app costs roughly 3–8 mobile PageSpeed points. Ten to twenty-five render-blocking scripts — not unusual on a store that's been around a few years — can slow the average Shopify store by 1 to 3 seconds on their own.
2. Large, unoptimized images
Images are often the biggest single opportunity, and the easiest to fix. On most Shopify stores the LCP element is an image — the homepage hero or the main product photo. If that image is a 2MB PNG when it could be a 150KB WebP, your LCP suffers directly. The good news is that Shopify's built-in image tools (via Liquid's image_url and image_tag filters) can automatically serve properly sized, compressed, responsive images — if the theme is coded to use them correctly. Many themes aren't.
3. Render-blocking CSS and JavaScript
Render-blocking resources are CSS, JavaScript, and font files that the browser must download and process before it can show any content. When critical CSS and non-deferred scripts sit in the <head>, the page stays blank longer, and LCP climbs. This is a major issue for heavy, feature-dense themes and for stores carrying scripts from apps they've since stopped using.
4. A heavy or outdated theme
Some themes — particularly older ones or those crammed with every feature imaginable — carry large amounts of unused code and inefficient Liquid logic that slows every page regardless of how many apps you run. A lightweight Online Store 2.0 theme like Dawn or Refresh typically scores 10–20 mobile points higher than a heavy third-party theme carrying the same content.
5. Inefficient Liquid code
Because Shopify renders pages server-side from Liquid templates, deeply nested loops and complex Liquid logic increase server-side render time. You can't change Shopify's servers, but you can reduce how hard your templates make them work. Anti-flicker snippets (often added for A/B testing tools) and a lazy-loaded LCP image are two common Liquid-level mistakes that quietly delay rendering.
6. Too many redirects and third-party fonts
Each 301 redirect adds roughly 100–300ms. A chain of them — common after a migration that wasn't cleaned up — adds real delay. Custom fonts loaded in a blocking way also push out LCP, since text can't paint until the font arrives.
per page
mobile LCP
(rarely the issue)
pass CWV
What you can't control (and why that's good news)
It's worth being clear about the constraints, because they narrow your fix list. On Shopify you cannot change the server or hosting, configure server-level caching, or adjust infrastructure settings — Shopify runs on its own platform. But that's fine, because Shopify's server response time (TTFB) is genuinely good, usually under 300ms for most regions. Shopify also injects some mandatory JavaScript into every page that you can't remove.
The takeaway: since you can't touch the infrastructure and the infrastructure is fast anyway, essentially every speed problem worth fixing lives in your apps, images, theme, and code. That's a much shorter, more actionable list than "optimize everything."
How to diagnose your slow Shopify store (15 minutes)
Don't guess — measure. The right way to audit Shopify performance in 2026 is to triangulate across three tools rather than trusting any single score.
- Shopify's Web Performance Dashboard (in your admin, under Online Store). Launched in 2024, it's free, built in, and pulls from real shopper data — the same kind of field data Google uses to rank you. Start here for the store-wide trend across LCP, INP, and CLS.
- Google PageSpeed Insights. Enter a URL to see both field data (real Chrome users, at the top) and lab data (a diagnostic simulation below). The field data is the authoritative part. Test one representative URL per template — one product page, one collection page, the homepage — not every page.
- Chrome DevTools Lighthouse. PageSpeed tells you what is slow; Lighthouse's render trace and unused-JavaScript report tell you which line of code or which app is responsible.
Mobile scores always look worse than desktop — that's normal. Google's mobile test applies aggressive 4× CPU throttling and simulated 4G, which punishes JavaScript-heavy sites. A mobile PageSpeed score above 60 is healthy for a real store with apps and product photography; above 80 is excellent. Chase your Core Web Vitals field data, not a perfect lab score.
One more piece of context that saves wasted effort: work at the template level. Shopify stores render from shared templates — fix the product template and you improve every product page at once. And if your store gets fewer than 100 sessions a day, Shopify's own guidance is to focus on driving traffic first; at low volumes the ranking impact is small and the real-user data is too thin to be reliable.
The Shopify speed fix-it checklist
Here's the prioritized checklist, ordered by impact. Work top to bottom — the failures on Shopify follow this order (LCP before INP before CLS), and LCP has the highest direct impact on both rankings and conversions.
⚡ Fix-it checklist — in priority order
How to know it worked
After each change, re-run PageSpeed Insights — the lab data updates within minutes, so you get instant feedback on whether a fix moved the number. But the score that affects your rankings is the field data, and that comes from Google's Chrome User Experience Report on a 28-day rolling average. So expect Google Search Console's Core Web Vitals report to take up to four weeks to fully reflect your improvements. Don't judge the real result on day one.
Then keep monitoring. Performance regressions on Shopify are almost always caused by something recently added — a new app, a theme update, a seasonal campaign. Re-test after each of those events, because the most common cause of a store slipping back into failing Core Web Vitals is a newly installed app quietly injecting JavaScript across every page.
Speed isn't a vanity metric. Conversion rates drop sharply once load time passes 2–3 seconds, and the case studies use measured data, not recycled stats: Rakuten 24 reported +53% revenue per visitor and +33% conversion after investing in Core Web Vitals; Vodafone saw an 8% sales lift from a 31% LCP improvement. And increasingly, AI shopping assistants fetch pages on a time budget — a slow store gets abandoned by the bots the same way it gets abandoned by shoppers. Fast pages are becoming table stakes for being found at all.
Should you fix it yourself or hire help?
Many of the fixes above — auditing apps, compressing images, reserving space for banners — are genuinely DIY-friendly, and you should start there. You can move your numbers meaningfully in an afternoon.
But there's an honest ceiling. If your mobile PageSpeed score is below 40, or your LCP is over 4 seconds, the in-house fixes will help but rarely get you past 60 without theme-level work — deferring scripts correctly, inlining critical CSS, restructuring Liquid, and untangling app code. That's work that needs someone who knows Liquid and Shopify's render lifecycle, because a wrong move (like a script-checking delay on your LCP image) can make things worse.
That's the point to bring in a specialist. Our Shopify Speed & Core Web Vitals service does exactly this work — diagnosing the real bottleneck with field data, then fixing it at the theme level — and for stores that need ongoing performance monitoring, a dedicated developer on retainer keeps you in the green as you add apps and run campaigns.
Founder-led Shopify design, development, and performance work. We tune Core Web Vitals as part of every build and keep an eye on it through the same field data Google uses.