Storefront Speed Journal

Reviewed November 4, 2026

Too Many Apps Slowing Your Store: How to Find the Culprits

Judge apps by what they inject into the storefront, not by how many are installed. Backend only apps cost the shopper nothing. The culprits are apps that load JavaScript and CSS on every page, load early, or duplicate each other. Measure per app by disabling embeds one at a time in a copied theme and re-running a lab test on the same template.

Count your apps and you will get a number that tells you almost nothing. A store with six apps can be slower than a store with twenty, because slowness lives in the payload each app pushes into the page, and payloads vary from a few kilobytes that load on interaction to hundreds that block the first render for everyone.

The audit question is never how many. It is which ones, loading what, where, and whether the revenue they support exceeds the speed they spend. Most stores have never asked it app by app, which is why the same two or three culprits survive every cleanup.

Separate storefront apps from backend apps

First pass: sort the installed list into apps that touch the storefront and apps that work in the admin, on orders, shipping, accounting, reporting. The second group cannot slow a shopper down and should leave the suspect list immediately. Attention is scarce; spend it on the injectors.

For each storefront app, note the templates it loads on. The expensive pattern is global loading: code on home, collection, product, cart, and content pages alike, for a feature used on one of them. A quiz that loads everywhere to serve a single landing page is paying rent in every shopper's pocket.

Measure by subtraction in a copied theme

Duplicate the theme, then disable app embeds one at a time in the copy and re-run the same lab test on the same product page URL pattern. Record total JavaScript, blocking time, and LCP per step. Subtraction is slower than guessing and it ends arguments, because each app gets a number with its name on it.

App blocks and theme app extensions make this easier than it used to be, since they can be toggled in the editor. Older script tag installs need a developer's care to disable cleanly. Either way, do the work in the copy. A live theme is not a laboratory, and shoppers are not test subjects.

Decide with a keep, move, or remove rule

Keep apps whose function earns and whose load is proportionate. Move what you can to load on interaction or on the templates that use it; chat, quizzes, and fit finders rarely need to block the first paint. Remove duplicates first, two review tools and three popup systems are more common than anyone admits, and remove the orphaned code of apps already uninstalled.

Re-run the audit after every app install from now on, as a habit attached to the install itself. App weight is not a spring cleaning problem. It is an intake problem, and it is cheaper to weigh each arrival than to periodically evict the accumulated crowd.

Related reading

Related reading: Preload the LCP Image on Collection Pages, and Nothing Else, INP on Product Pages: The Add to Cart Click Is Your Worst Interaction, and fetchpriority High on the Hero Image: The One Attribute That Moves LCP.

Frequently asked questions

How many apps is too many for a Shopify store?

There is no magic count. What matters is the combined storefront payload. A handful of heavy globally loading apps can slow a store more than a long list of backend and on demand tools, so audit by injected weight, not by installs.

How do I find which app is slowing my store?

Work in a duplicated theme and disable app embeds one at a time, re-running the same lab test on the same template after each change. The apps whose removal moves JavaScript weight and blocking time the most are your culprits.

Do uninstalled apps leave code behind?

They can. Apps that wrote code into theme files do not always remove it on uninstall, and that leftover code keeps loading for shoppers. A periodic theme audit for snippets and script references from removed apps is part of the cleanup.

Can I keep a heavy app if it makes money?

Yes, if the trade is measured and deliberate. Try loading it later or only where it is used first. If it still earns after paying its full speed cost, keep it with the number recorded, and revisit when either side of the trade changes.