Nobody sets out to install thirty apps. It happens one reasonable decision at a time: a review widget for social proof, an upsell app for AOV, a currency switcher for that market you tested, a page builder because the theme could not do the thing, a loyalty app the previous marketing manager chose.
Three years later the storefront ships a lot of third-party JavaScript, the monthly app bill is a line nobody scrutinises, and at least four apps are still injecting scripts for features that were switched off long ago. This is the audit we run, and the scoring that makes the decisions defensible rather than personal.
Step 1: Get the Real Total
Start with the number, because it is usually larger than anyone expects and it makes the rest of the conversation easy. Pull your last three Shopify invoices and list every app charge, including usage-based ones.
Then add the charges that do not appear there: apps billed directly by the vendor outside Shopify's billing, annual plans paid on a card, and anything a contractor expensed. In our experience the off-invoice apps are between a fifth and a third of the real total, and they are disproportionately likely to be the abandoned ones.
Do this before you look at performance. A finance conversation gets an app audit approved far faster than an engineering one.
Step 2: Measure What Each App Costs the Storefront
Shopify's own Web Performance dashboard tells you the direction of travel; it will not tell you which app is responsible. For that, use a browser's network and performance panels on a product page and a collection page, and attribute each third-party request to its owner.
- Transfer size per app, on the templates that matter — collection and product pages, not the homepage
- Main-thread blocking time, which is what actually damages INP and therefore what a shopper feels
- Whether it loads on every page or only where it is used — a review widget loading on your Contact page is pure waste
- Whether it blocks rendering or defers politely
The pattern is consistent: two or three apps account for most of the third-party weight, and they are rarely the ones people suspect. Chat widgets, page builders and personalisation scripts are the usual top three. Review widgets are usually lighter than their reputation.
Uninstalling an app does not always remove its code. Theme edits and script tags frequently survive the uninstall. After removing any app, search your theme files for its name — orphaned snippets from long-dead apps are one of the most common findings in this audit.
Step 3: Establish Whether Anyone Actually Uses It
This is the step that gets skipped, and it is the one that finds the money. For each app, answer two questions with evidence rather than memory: when did someone last open its admin, and can you measure the behaviour it exists to produce?
- Upsell and bundle apps: what share of orders in the last 90 days contained an upsell the app attributes to itself?
- Popup and email-capture apps: how many captures last month, and how many became customers?
- Loyalty apps: how many members redeemed anything in the last quarter?
- Page builders: how many live pages actually use it — and would rebuilding those few in the theme cost less than a year of subscription?
- Currency and market apps: what proportion of revenue comes from the markets they serve?
Expect to find two or three apps with no measurable output at all. Those are free money, and removing them requires no trade-off conversation.
Step 4: Score and Decide
Score every app on three axes, then place it. Keep it crude — the point is a defensible decision, not a spreadsheet.
- Value (1–5): measurable contribution to revenue, or to an operational cost you would otherwise pay in hours
- Cost (1–5): subscription plus the page weight and blocking time it adds
- Fragility (1–5): how much would break if it disappeared tomorrow, and how alive its vendor looks
Then place each app in one of four buckets:
- Keep. High value, proportionate cost. Most stores have four to eight of these and they are genuinely earning their place.
- Replace natively. The capability now exists in Shopify itself — metaobjects and metafields cover a surprising amount of what page builders and spec-table apps were bought for, and Shopify Functions covers discount logic that used to need an app. Every one of these you fold back into the theme is a subscription cancelled and a script removed.
- Consolidate. Three apps doing overlapping jobs, usually because they were bought by different people at different times. One vendor covering all three is normally cheaper and always lighter.
- Remove. No measurable output, or the feature is switched off and only the script remains.
Step 5: Remove Carefully
App removal has a failure mode: you delete something, nothing appears to break, and six weeks later you discover the abandoned-cart emails stopped.
- Export any data the app holds — reviews, loyalty balances, subscriber lists, generated pages — before you touch anything. Some vendors delete on uninstall.
- Remove one app at a time, with a few days between, so a regression can be attributed.
- Clean the theme afterwards. Search for the app's name in your theme files and remove orphaned snippets and script tags.
- Re-measure. Confirm the weight actually left, rather than assuming it did.
- Watch conversion for a fortnight on the templates the app touched — and be honest if the number moved the wrong way.
Removing the theme leftovers is the step that produces the visible speed gain. Skipping it means you have cancelled a subscription and kept the page weight, which is the worst of both.
What Good Looks Like Afterwards
A healthy Shopify app stack on a mid-size store is usually six to twelve apps, each with an owner who can state what it does and point at the number that proves it. Third-party JavaScript is a minority of storefront weight rather than the majority. And there is a standing rule that new apps get a review date, so the estate does not silently regrow.
That last rule is what makes the audit stick. Without it you will be doing this again in two years, from the same starting position.
The performance side of this work overlaps heavily with our page speed practice, and when the audit concludes that the theme itself is the constraint rather than the apps, that is a different project — our Shopify development team can tell you which of the two you have. If the audit is really telling you the platform has been outgrown, our Shopify platform work covers that conversation honestly.
Frequently asked questions
How many Shopify apps is too many?
There is no universal number — an app that loads only on the pages it serves and returns measurable value is not a problem at any count. The useful test is whether each app has a named owner who can point at the number justifying it. Stores that fail that test usually have between twenty and forty apps.
Does uninstalling an app remove its code from my theme?
Often not. Apps that made theme edits or installed script tags frequently leave them behind. Always search your theme files for the app's name after uninstalling — orphaned snippets from apps removed years ago are among the most common findings in this audit.
Which app categories usually cost the most performance?
In our audits, chat widgets, page builders and personalisation scripts are consistently the heaviest, because they load early and run substantial JavaScript on the main thread. Review widgets are usually lighter than their reputation suggests.
Can we replace apps with native Shopify features?
More than most merchants realise. Metaobjects and metafields cover much of what spec-table and page-builder apps were bought for, and Shopify Functions handles discount and shipping logic that previously needed one. Each replacement removes both a subscription and a script.
How often should we re-run the audit?
Annually, and whenever the marketing team changes. Give every newly installed app a review date at the point of installation — that single habit prevents the estate quietly regrowing to where it started.
Want the Audit Run For You?
We will attribute every third-party request on your storefront to the app responsible, reconcile it against your invoices, and hand you the scored list. Talk to our team; we reply within a business day.
