Your Shopify app stack is a subscription stack. Every icon in that admin list is a line item that quietly compounds — $19 here, $49 there, another “just while we try this” that never got uninstalled. I’ve seen this enough times to treat an app audit as the highest-ROI hour you can spend on the store this month.
The honest answer is: most stores I look at carry roughly 8–15 apps, and the monthly total often lands somewhere between $200 and $800 once you include the ones that bill outside Shopify’s neat little screen. That’s not a published statistic — it’s what shows up when I export the list with owners and we actually read the numbers out loud.
Why the stack gets fat and stays fat
Here’s the thing. Shopify makes installing trivial and uninstalling psychologically hard. Every app promises a lift — speed, SEO, bundles, reviews, popups, upsells, email capture. Some deliver. Many deliver a sliver of value for a fat monthly fee. A few were installed for a Black Friday three years ago and never left.
There’s also overlap. Two loyalty apps. Two “SEO” apps that both inject metadata and fight in the theme head. A page builder sitting on top of a theme that already has sections. I’m not anti-app — I’m anti-paying rent twice for the same square metre.
Ownership matters too. In agencies I’ve watched hand over stores, the app list sometimes reflects their preferences, not yours — extra analytics, a favourite upsell widget, a “growth stack” that made sense in their portfolio pitch. You inherit it. Nobody schedules a meeting to remove it. Six months later it’s just “how Shopify works now”, except your margin is thinner and your console has new warnings.
The compounding part isn’t only money — it’s cognitive load. Every app is another login, another billing email, another place where permissions can drift. I’ve had owners who couldn’t name half the icons in admin. That’s a signal: if you don’t know what it does, it’s not working for you; you’re working for it.
The audit I run — you can copy it this weekend
Block an hour. Turn your phone face-down. Open Shopify admin → Apps. For each app, answer four questions in a spreadsheet: what it claims to do, what it actually does for you, what it costs (including USD → NZD reality), and the last time you knowingly used an outcome it produced.
- Export or screenshot the full app list with prices — don’t rely on memory.
- Tag each app: revenue-critical, operational, marketing, nice-to-have, unknown.
- Check for duplicates — same job, different logo.
- Sort by monthly cost descending. Start from the top — money and scripts both concentrate there.
- For each expensive app, open its dashboard. If you haven’t clicked it in 90 days, flag it red.
- Before you uninstall anything red, read the “delete carefully” bit below — don’t yank wires without looking.
Categories of apps that should make you suspicious
Redundant apps — same surface area, different vendor. These love to fight. You’ll see it as odd theme behaviour, double tracking, or checkout friction you can’t quite reproduce.
Abandoned apps — still billing, no longer part of anyone’s workflow. Often installed by a previous agency or a summer intern situation.
Seasonal apps — genuinely useful for three weeks a year, left on for twelve months. Fine if you calendar the uninstall — rare that anyone does.
Bloated suites — fifty features, you use one. The worst combination of UX noise and script weight. This is where custom code or a narrower app often pays back fast (same topic I walk through in Liquid vs apps).
Keep vs kill — practical heuristics
| Usually worth keeping (for a while) | Question hard — often kill or replace | |
|---|---|---|
| Money plumbing | Payments, tax, subscriptions, accounting bridges your bookkeeper actually uses | “SEO score” dashboards that don’t tie to revenue |
| Customer trust | Reviews with a real collection workflow | Popups that annoy everyone for a 0.3% email lift |
| Operations | Shipping labels / fulfilment that staff touch daily | Duplicate tracking pixels dressed as “analytics” |
| Performance | Image CDNs that measurably shrink payload (verify!) | “Speed” apps that just defer scripts and call it a win — read the speed article before you trust the badge |
Delete carefully — the leftover-code problem
Uninstalling isn’t always a clean break. Plenty of apps inject snippets into theme.liquid, add asset files, create metafields, or leave ghost JavaScript that now errors. Yank three apps in an hour and you can absolutely white-screen a collection template — I’ve been hired to undo exactly that kind of enthusiastic Friday cleanup.
The simplest way to think about it: one uninstall at a time, snapshot the theme first, click around the top three money pages (home, bestseller collection, product, cart), then check the browser console for new red text. If you’re not comfortable reading that console, get someone who is — that’s normal custom support territory.
Some apps also leave data behind in ways that don’t break the theme but do clutter your admin — metafield definitions, customer tags you didn’t ask for, draft automations. That’s not catastrophic; it’s untidy. I still schedule a cleanup pass after a big uninstall wave because messy data has a habit of confusing the next app you install, which then “fixes” things creatively.
If you use a page builder or anything that touched many templates, assume you need a diff review. “It looks fine” on your laptop isn’t the same as “cart still works with a discount code and a gift note field” — click the weird paths customers actually use.
The NZD reality on USD-priced apps
Most app bills are USD. Your bank’s rate isn’t the interbank headline — and the difference shows up over a year. When I model “true cost” for Christchurch owners, I assume each USD line item costs around 10–15% more than the sticker once exchange and fees settle. Not precise to the cent — directionally true, and it changes how you feel about “only $29”.
When custom code replaces three icons
If you’re north of ~$300/month on apps that are mostly doing one bespoke workflow — rate rules, cart logic, integrations — that’s the band where a fixed build often pays back in months. You’re not buying “no maintenance forever”; you’re buying no rent for work that shouldn’t be a subscription.
Custom doesn’t suit everything (loyalty and reviews are still usually app-land), but it’s the right move often enough that I wrote a whole framework for it: Liquid customisation vs Shopify apps. And if your shipping stack is a pile of middleware apps, the shipping guide might save you from buying complexity you don’t need.
Where I’ve seen the cleanest win is replacing three “small” apps with one integration that matches how the warehouse actually thinks — pick/pack rules, courier cutoffs, hold flags. None of the apps were wrong individually; together they fought. The custom path isn’t always cheaper on day one; it’s cheaper on month eighteen when you’re not debugging three vendors for one checkout symptom.
GST doesn’t care how you built the feature — IRD cares that you’re charging correctly. Apps that fiddle with tax display or invoices are in the “touch carefully” bucket: uninstalling can leave you with silent mismatches. If tax is involved, treat the audit like a finance task, not just a tech task — and read GST setup on Shopify for NZ before you assume your admin toggles match IRD’s expectations.
When the stack includes accounting, connecting Xero to Shopify is where GST mapping and payout reconciliation usually need attention — not the theme. And if someone’s pitching a plan upgrade mostly to “unlock” reporting or checkout tweaks, read Shopify Plus vs Advanced before you sign anything; the economics are narrower than the slide deck suggests.
If you’re about to migrate
A migration is the cheat code for app hygiene — not because you should delete everything, but because it’s the one moment owners tolerate re-choosing tooling. Build the new theme clean, install only what you’d pick today, and leave the archaeological layers behind.
I still do the app pass before the new theme ships — otherwise you’re paying to recreate the same barnacles on fresh timber. The list you make this weekend is the same list that should gate installs on launch week.
After you’ve trimmed scripts, rerun your performance checks — app weight shows up in real user metrics more than it shows up in Shopify’s internal speed report. I’m blunt about that in the theme speed piece — read that before you chase tiny Liquid wins on a bloated stack.