“Free” refers to the price tag, not the cost to your store. Every app you install on Shopify, free or paid, adds code that has to load, parse, and run in the customer’s browser before they can see or use your page. Some apps are lean and well built. Many are not, and the ones marketed as free are frequently the worst offenders, because there’s less incentive to invest in engineering when there’s no subscription revenue funding it.
This post explains, in plain technical terms, what actually happens to your theme when you install an app, how to work out which of your installed apps are dragging your store down, and how to clean things up without breaking functionality you actually rely on.
You don’t need to be a developer to do most of this. You do need about an hour, a willingness to disable things temporarily, and a clear head about which apps are actually earning their keep versus which ones snuck in eighteen months ago and never left.
What Actually Happens When You Install a Shopify App
Shopify apps that touch your storefront (as opposed to purely admin-side apps like accounting tools) typically hook into your theme in one or more of these ways:
- App embed blocks and app blocks, Online Store 2.0 themes let apps inject blocks directly into your theme via the theme editor, without a developer manually editing Liquid. This is more manageable than the old method, but each active embed still loads its own JavaScript and CSS bundle.
- Injected
<script>and<link>tags, Older or less disciplined apps insert script tags directly intotheme.liquidor into every page via the Shopify admin’s script tag API. These often load on every single page, whether or not the app’s feature is even used on that page. - Additional HTTP requests, Every app asset (JS file, CSS file, font, tracking pixel, API call back to the app’s own servers) is a separate network request. On a mobile connection, each extra request adds real, measurable latency, not just download time.
- Render-blocking assets, If an app’s CSS or JS loads in the
<head>withoutasyncordefer, the browser has to stop and process it before it can continue rendering the page. This is one of the most common causes of a blank white screen or layout shift on first load. - Third-party server round trips, Apps like reviews widgets, upsell tools, and personalisation engines often call out to their own APIs after your page loads, which is why a page can look “loaded” but keep jumping around for a second or two afterwards.
None of this makes apps bad. Apps exist because building every feature from scratch in Liquid is impractical for most merchants. The problem is accumulation, a store that’s been live for two or three years has usually tried, kept, and forgotten more apps than the owner remembers installing.
How Many Apps Is “Too Many”?
There’s no fixed number, and anyone who gives you one is guessing. A single badly coded app can do more damage than ten well-built ones. That said, in our experience running Shopify performance audits, stores that feel sluggish almost always share a pattern: somewhere between eight and twenty installed apps, several of which are:
- Installed for a promotion or feature that ended months ago and never got removed
- Duplicating functionality that’s already native to Shopify (for example, a dedicated “size chart” or “trust badge” app when this could be a simple theme section)
- Loading on every page of the store when they’re only needed on one template, like the product page or checkout
The fix isn’t “delete apps until you hit some target number.” It’s identifying which specific apps are contributing meaningful weight and deciding, one by one, whether the feature they provide is worth the load-time cost.
How to Audit Which Apps Are Slowing Your Store Down
Step 1: Run Shopify’s built-in speed report
In your Shopify admin, go to Online Store > Themes, and click View report next to your published theme, or check Analytics for the store speed comparison against other stores in your size bracket. This gives you a baseline and, more usefully, is generated from real Shopify data rather than a single simulated test.
It won’t tell you app-by-app impact, but it’s the right starting point because it reflects Shopify’s own scoring methodology, which is a factor Shopify itself has indicated plays into boost/search visibility considerations over time.
Step 2: Run a Lighthouse or PageSpeed Insights test, properly
Open your homepage, a representative collection page, and your best-selling product page in Google’s PageSpeed Insights (or run Lighthouse directly from Chrome DevTools). Do this on mobile, not desktop, since mobile is both stricter and more representative of real customer conditions.
Look specifically at:
- Total Blocking Time (TBT), this is usually where app JavaScript shows up as a problem
- Largest Contentful Paint (LCP), often affected by render-blocking app CSS or a hero image, more on that below
- The “Reduce unused JavaScript” and “Eliminate render-blocking resources” sections, these will frequently name the actual app script file, which is your smoking gun
Step 3: Use Chrome DevTools to see exactly what’s loading
Open DevTools (F12), go to the Network tab, and reload the page with cache disabled. Sort by size or by time. You’ll typically see a cluster of requests to domains that aren’t yours, cdn.shopify.com is expected, but things like widget.someappname.com or cdn.someapp.io are third-party app assets. This is the single clearest way to see which specific apps are contributing the most weight, because you can see the file names and, usually, work out which app they belong to.
Step 4: Manually disable apps and re-test (the most reliable method)
This is slower but it’s the ground truth, because synthetic tools estimate impact while this measures it directly:
- Pick a representative page (usually your highest-traffic product page).
- Run a Lighthouse test and record the score, LCP, and TBT.
- Go to the app’s settings and disable its theme embed (Online Store > Themes > Customize > App embeds), or temporarily uninstall it if it doesn’t have an embed toggle.
- Reload the page and re-run the same test.
- Record the difference.
- Re-enable the app before moving to the next one, and repeat.
This takes time if you have fifteen apps, but you only need to do it once every six to twelve months, and it’s the only method that tells you the actual, not estimated, cost of each app on your specific theme.
Step 5: Check the theme inspector for embed-level detail
Shopify’s Theme Inspector (accessible via Shopify CLI, or through the performance tab in some newer admin tooling) breaks down Core Web Vitals contributions by theme section and app block on Online Store 2.0 themes. If you’re comfortable with Shopify CLI, running shopify theme dev locally and reviewing performance data at the section level is the most precise non-developer-adjacent option available.
A Practical Checklist for Cutting App Bloat
Once you know which apps are the heaviest, work through this sequence rather than removing things at random:
- List every installed app and note the last time you or your team actually used or changed its settings.
- Flag anything unused for 90+ days as a removal candidate.
- For each remaining app, ask: is this feature native to Shopify or my theme already? Many themes now include size charts, trust badges, countdown timers, and basic upsells natively, check your theme documentation before assuming you need an app for it.
- Check for page-specific loading. Some apps let you restrict where their script loads (e.g. only on product pages, not the homepage). If the app only matters on checkout or product pages, don’t let it load storefront-wide.
- Uninstall properly, not just disable. Uninstalling an app should remove its script tags and embeds, but always check your theme.liquid and app embeds afterwards, some older apps leave orphaned code behind that a plain uninstall doesn’t clean up.
- Re-test after each batch of changes, not just once at the end, so you know which specific change actually moved the needle.
- Set a recurring six-monthly app audit as a standing task, not a one-off clean-up.
When to Bring In a Specialist
Manually toggling apps and reading Lighthouse reports gets you a long way, and most merchants can do the audit steps above themselves. Where it gets harder is when the slow-down isn’t from an obviously heavy app but from an accumulation of small things, a few kilobytes of render-blocking CSS here, an unoptimised third-party font there, a well-meaning app that’s technically lightweight but loads at the wrong point in the page lifecycle.
Untangling that kind of layered performance debt, especially on a theme that’s been customised over several years by different developers, is exactly the kind of work our Shopify performance optimisation service is built for, going beyond disabling apps to fixing how your theme actually loads, renders, and prioritises content.
Frequently Asked Questions
Do free Shopify apps really perform worse than paid ones?
Not automatically, but there’s a real pattern. Paid apps generally have revenue funding ongoing engineering work, including performance fixes, while many free apps are maintained as a side project or lead-generation tool for a paid upsell. Always judge on the actual code weight and loading behaviour rather than the price tag alone.
Will uninstalling an app immediately speed up my store?
Usually yes, but the improvement varies a lot depending on how the app was loading. An app using a lightweight, deferred embed might make almost no measurable difference when removed, while one injecting a large render-blocking script directly into your head tag can produce a noticeable improvement.
How many apps can I safely run without hurting performance?
There’s no safe number, a store with five badly built apps can be slower than one running twenty well-optimised ones. Focus on auditing actual load impact per app rather than trying to hit an arbitrary total.
Does app performance actually affect my Shopify SEO rankings?
Page experience and Core Web Vitals are part of Google’s ranking considerations, so slow-loading apps can indirectly affect visibility, particularly on mobile. It’s rarely the single deciding factor, but it’s one more reason to keep your app stack lean.
Can I test app impact without any coding knowledge?
Yes. Shopify’s built-in speed report, Google PageSpeed Insights, and manually toggling app embeds on and off in the theme editor are all accessible without touching code. Chrome DevTools’ Network tab requires no coding either, just clicking around.
If you’re not sure how much your app stack is actually costing you, a Shopify audit will give you a clear, prioritised picture of what’s slowing your store down and what’s worth fixing first.