· 11 min read

Why Is My Shopify Store Slow With All These Apps?

Why Is My Shopify Store Slow With All These Apps? | Ecomm Decoded

Your store speed isn’t a theme problem. It’s an app problem — and the fix starts with knowing what’s actually loading.

Thank you for reading this post, don't forget to subscribe!

Your Shopify store is slow because every app you installed added JavaScript that loads on every page — whether the app is doing anything useful on that page or not.

That’s the core of it. It’s not your theme. It’s not your images. Those matter, but they’re rarely the reason a store that used to feel fast now crawls. The reason is usually 20+ apps installed over the life of the store, each one adding its own scripts, widgets, and third-party network requests.

I’ve been auditing e-commerce stores for over a decade. When a founder tells me their store feels slow, the first place I go is the app list — not the theme settings. Every time, without exception, I find apps that are either unused, duplicating something else already installed, or loading aggressively on pages where they add zero value.

This post walks through exactly what’s happening and how to find it.

TL;DR Every Shopify app installs JavaScript that runs on your storefront, adding load time whether the app is active or not. The main offenders are review apps, chat widgets, loyalty programs, upsell tools, and social proof popups — especially when multiple apps in the same category are installed. You can diagnose this in under 20 minutes using Google PageSpeed Insights and your browser’s network tab. The fix is an honest audit: remove unused apps, replace heavy apps with lighter alternatives, and stop installing apps you haven’t scoped against your actual conversion data.

Speed Isn’t a Technical Problem. It’s a Revenue Problem.

Every second your store takes to load, you lose a percentage of the people who were there to buy. That’s not an opinion — it’s documented at scale across thousands of e-commerce studies. The specific numbers vary, but the direction never changes: slower store, lower conversion rate.

1 second

One additional second of page load time reduces e-commerce conversion rates by 7% on average.
At $1M in annual revenue, that’s $70,000 per second of slowness — per year.

The problem isn’t just that people leave. It’s that they leave before you ever get to make your case. Your product photography, your copy, your offer — none of it matters if the page hasn’t finished loading by the time someone decides to go elsewhere.

Mobile makes this worse. A significant percentage of your traffic is on a phone, often on a connection that isn’t as fast as your office WiFi. When you test your store on a desktop with fast internet and it “seems fine,” you’re not seeing what most of your customers are seeing.

The stores I audit that have the biggest speed problems are rarely small. It’s usually stores that have been operating for two or three years, added apps consistently as they grew, and never done a systematic review of what was still in use. The app list becomes a record of every problem someone tried to solve, whether the solution stuck or not.

What Apps Are Actually Doing to Your Load Time

To understand the problem, you need to understand what happens when a Shopify app installs. Most apps work by injecting JavaScript into your storefront. That script loads every time a page loads — homepage, product page, collection page, all of it — and it executes in the customer’s browser.

Each script does a few things that cost load time:

It makes a network request to a third-party server

Your store loads from Shopify’s servers. But every app that calls home — for product recommendations, for chat availability, for review data, for loyalty point balances — makes a separate request to that app’s own servers. Each request takes time. Each server has its own reliability and response speed. None of them are Shopify’s CDN.

Install ten apps. Your storefront is now making ten additional network requests before it can finish loading. Stack those on a slow mobile connection and the numbers get uncomfortable fast.

It blocks rendering while it loads

Some app scripts are render-blocking — meaning the browser stops building the visible page while it waits for the script to load and execute. The customer sees a blank or partially built page until the script finishes. Even a script that loads in 300ms can feel noticeably slow if it’s sitting in the critical path of your page render.

It runs whether the app is active or not

This is the one that surprises people most. When you uninstall a Shopify app, the app is removed from your admin — but the code it injected into your theme often stays behind. I regularly find script tags in store themes pointing to apps that were uninstalled six months ago. The app is gone. The code is still loading. The performance cost is still there.

And the inverse is also true: apps that are installed but effectively unused — a chat widget you turned off, a loyalty program you abandoned after 90 days, an upsell tool you replaced with something else — are still loading scripts on every page.

From the Field I audited a store doing around $800K per year. Their Shopify speed score had dropped from 62 to 38 over 18 months and nobody had touched the theme. When I pulled up their network waterfall in Chrome DevTools, the page was making 34 third-party requests before it finished loading. I went through the app list: 26 apps installed. Nine of them were apps the founder either didn’t recognize or described as “I think we stopped using that.” Three more were duplicating each other — two review apps, two upsell tools. After removing 11 apps and cleaning the leftover scripts from the theme, the speed score went to 61. No theme changes. No image compression. Just removing the weight. The store had been paying for apps that were actively hurting it.

The App Categories That Tend to Do the Most Damage

Not all apps are equal in how aggressively they load. Some are well-built and lightweight. Others — usually the ones with the most visual components — load significant resources on every page regardless of whether those components are visible.

Chat and support widgets

Live chat apps consistently show up as some of the heaviest scripts on any storefront. They load an iframe, they poll for agent availability, they load conversation history. On a product page, most of your customers never open the chat window — but they all paid the load time cost of having it ready.

Review and social proof apps

Review apps load star ratings, review carousels, and photo galleries. The heavy ones pull in external fonts, their own CSS framework, and image assets. If you’re running a review app with photo reviews and a separate social proof popup app showing recent orders, you’re loading two complete widget ecosystems that largely overlap in purpose.

Loyalty and rewards programs

Loyalty apps typically load a floating widget on every page so customers can check their points. Even for customers who aren’t in the program — or who have zero points — that widget is loading, calling the loyalty platform’s API, and waiting for a response before it can confirm there’s nothing to show.

Upsell and cross-sell apps

These apps have to load product recommendation logic, often pulling from a third-party recommendation engine. They load on product pages, cart pages, and sometimes the homepage. If you have more than one installed — which is common, because founders try multiple before committing — they’re both loading even if only one is visually active.

Countdown timers and urgency tools

These are usually lightweight individually but frequently installed in stacks — one countdown timer app, one stock scarcity app, one “X people are viewing this” popup. Each one is small. Three of them together is noticeable.


How to Find What’s Slowing Your Store

You can get a clear picture of your speed problem in under 20 minutes without touching code.

The App Performance Audit
  1. Run PageSpeed Insights on your product page. Go to pagespeed.web.dev and paste in a product page URL — not your homepage. Product pages have the most apps active. Look at the mobile score (not desktop) and the “Reduce unused JavaScript” section. It will list the specific scripts contributing the most to load time, often by domain. Those domains are your apps.
  2. Open your store in Chrome, right-click → Inspect → Network tab. Filter by “JS.” Reload the page. Sort by Size. You’re looking at every JavaScript file loading on this page. Scripts loading from domains like apps.shopify.com, cdn.judge.me, loyalty.yotpo.com, or any domain that isn’t your store are app scripts. Count them. Note the file sizes.
  3. Cross-reference against your app list. In Shopify Admin → Apps, take a screenshot of every installed app. Now go through that list and for each app, ask: Is this active? Is this being used? When was the last time anyone looked at its data? Apps you can’t immediately account for are candidates for removal.
  4. Check for leftover scripts from uninstalled apps. In Shopify Admin → Online Store → Themes → Edit Code, open theme.liquid and search for script tags. Any <script src="https://..."> pointing to an external domain that isn’t one of your current active apps is dead weight. These need to be removed manually — uninstalling the app doesn’t clean them up automatically.
  5. Check for duplicate-category apps. Look for any category where you have more than one app doing the same job: two review apps, two upsell tools, two email capture popups. This is more common than most founders realize, especially in stores that have tested multiple solutions. Pick one. Remove the others completely, including any leftover code.

What to Do Once You’ve Found the Problem

The fix is mostly about discipline, not technical skill. Here’s the framework I use when cleaning up an app stack.

Remove anything you’re not actively using

If you don’t know what an app does, or you stopped using it months ago, remove it. Not pause it — remove it. A paused app still has its scripts in your theme unless you manually clean them up. Removal through the Shopify App Store removes the app from your admin, but check the theme code afterward to confirm the scripts are gone.

For apps you’re keeping, check if there’s a lighter alternative

Some of the most common Shopify apps have significantly lighter competitors. Heavy review platforms have leaner alternatives. Full-featured loyalty platforms have simpler point systems that load a fraction of the weight. If an app is important to your operations but its performance impact is significant, it’s worth evaluating whether a lighter tool can do 80% of what you need at 20% of the load cost.

Ask every new app to justify its load time

Before installing any new app, ask: what problem is this solving, and do I have data showing that problem is costing me revenue? Apps installed to solve hypothetical problems — “I should probably have a loyalty program” — add real load time for speculative returns. Install apps to solve measured problems.

Clean up theme code after any removal

After removing an app, go into your theme’s theme.liquid and any app-specific snippet files the app may have added. Search for the app’s name or domain. Remove any script tags, stylesheet links, or liquid includes that reference it. If you’re not comfortable editing theme code directly, a Shopify developer can do this in under an hour — it’s worth the cost.


The Honest Truth About App Stacks

The goal isn’t zero apps. Apps solve real problems. A well-configured review app builds trust. A quality upsell tool increases AOV. These are legitimate contributions to your store’s performance.

The problem is that app stacks grow by addition and rarely shrink. Every new problem gets an app. Apps from failed experiments stay installed. Categories get covered twice because someone tested a replacement and never removed the original. Over two or three years, a store that should have eight or ten active apps ends up with twenty-five.

The question to ask isn’t “which apps can I remove?” — it’s “which apps are earning their load time cost?” If an app adds 400ms to your load time, it needs to be returning more than 400ms worth of value in conversion improvement, AOV lift, or operational savings. Most stores have never done that math. They’re paying in page speed for apps that stopped being useful long ago.

A lean app stack — ten or fewer, each with a clear job and measurable impact — almost always outperforms a sprawling one. Not because fewer is inherently better, but because every app you add is a trade-off. The stores that manage it well are the ones that treat that trade-off seriously from the start.

Your store’s operational layer needs a real diagnosis, not a guess.

My Operations Sprint covers app stack audits, theme code cleanup, speed diagnostics, and the operational infrastructure decisions that compound over time — delivered in 14 days with a clear prioritized action plan.

See the Operations Sprint →
JV
Jenn Velez — Ecomm Decoded 10+ years in e-commerce operations. I work with DTC founders and e-commerce managers doing $500K–$5M — diagnosing what’s actually broken in their store before they scale it. Based in Sydney, Australia. About Jenn →

Ready to fix what's broken?

Stop guessing and get a real diagnosis. Book a Growth Audit or jump straight into a Sprint.