How Shopify App Bloat Quietly Kills Your Conversion Rate
Every app adds scripts to every page. Here is how to audit what your apps actually cost, decide what to cut, and remove them without leaving orphaned code behind.
- Written by
Fahad, CEO & Head of Development- Published
- Reading time
- 3 minutes

The average Shopify store runs six apps. Stores doing over $1M/year often run fifteen or more. Each one felt justified at install time. Collectively they are usually the single largest drag on the storefront.
Why apps cost more than they look like they cost
An app is not a feature you switch on. It is a third-party script that:
- Loads on every page, including ones where it does nothing.
- Runs on the same main thread as your theme, competing for the tap the customer just made.
- Often injects its own copy of a library your theme already loads.
- Frequently leaves markup, CSS and Liquid snippets behind when uninstalled.
That last point is the one that catches people. Uninstalling an app removes it from your admin. It does not always remove the code it injected into your theme.
How to audit what your apps actually cost
- 01Open your storefront in Chrome with DevTools on the Network tab, filtered to JS.
- 02Hard-reload and let it settle. Sort by transfer size.
- 03Anything not served from `cdn.shopify.com` under your own theme is third-party. Note the domain.
- 04Switch to the Performance tab, record a reload, and look at the Main thread track for long tasks.
- 05Attribute each long task to a script. That is your cost, per app, in milliseconds.
Deciding what to cut
Score each app on two axes: what it costs in milliseconds, and what it earns in revenue you could actually attribute. Most stores find at least three apps that cost real time and earn nothing measurable — usually a legacy popup tool, an abandoned A/B testing app, and something installed during a redesign two years ago.
| App type | Typical cost | Usual verdict |
|---|---|---|
| Reviews | 150–400ms | Keep — but load below the fold |
| Upsell / cross-sell | 200–600ms | Keep if attributable, else cut |
| Popup builder | 100–300ms | Usually replaceable with 30 lines of code |
| Page builder | 300–900ms | Replace with native sections |
| Currency converter | 80–200ms | Use Shopify Markets instead |
| Legacy analytics | 50–250ms | Cut — you have GA4 |
Replacing apps with native code
Several of the most common apps do things Shopify now does natively, or that take a modest amount of custom work to build properly. Popups, size charts, trust badges, sticky add-to-cart bars, FAQ accordions and simple bundles are all better as theme code than as third-party scripts — they load with the page instead of after it, and they inherit your design system instead of fighting it.
This is most of what our custom development work actually is: taking the four apps a merchant is paying $180/month for and building the two features they actually use directly into the theme.
Removing an app cleanly
- 01Duplicate the live theme first. Always.
- 02Search the theme for the app's handle across all Liquid, CSS and JS files.
- 03Remove its snippets, its `{% render %}` calls, and any leftover `<script>` tags in `theme.liquid`.
- 04Check `settings_data.json` for orphaned blocks.
- 05Uninstall from the admin, then re-run your speed test to confirm the script is genuinely gone.
The fastest code is the code you deleted. On a typical store, removing three apps beats a week of micro-optimisation.
We audit your app stack, tell you exactly what each one costs in milliseconds, and remove or replace the ones slowing your store down.
See speed optimization


