Speed and SEO Guide 11 min read

How to Audit Shopify Apps That Slow Down Your Store

Audit the Shopify apps that slow down your store: list what each one loads, measure its cost, find leftover code, then keep, replace or remove it.

In this guide

Key takeaways

  • An app slows your store by what it loads on your pages, not by being installed. List what each app adds before you judge it.
  • Measure each app without touching your store: block its domain in Chrome DevTools and compare Lighthouse results on the same page.
  • Uninstalling does not always remove an app's code. Search your theme for the app's name and domain to find what was left behind.
  • Sort every app into keep, replace or remove, and write down who uses it, what it costs each month and what store data it can read.
  • Shopify stops running script tags on storefronts on March 1, 2027, so ask each vendor whether its app has moved to an app embed.

To find the Shopify apps that slow down your store, list every app and what it puts on your pages, measure each one’s cost without changing anything, look for code left behind by apps you already removed, then sort every app into keep, replace or remove. Most of it needs no code and fits in an afternoon. You finish with an audit sheet and a short list of changes to make in a duplicate theme.

What a Shopify app can add to your store

An app costs speed only through what it adds to your pages. Apps add things in a few different ways, and the way tells you where to look and what happens when you remove the app.

How the app adds it What you see Removed when you uninstall?
App embed A toggle under App embeds in the theme editor. Usually JavaScript that loads on every page: chat, popups, tracking, review scripts. Yes. Shopify removes an app’s blocks from your themes.
App block A block you place in a section, such as a review carousel on the product page. Yes, for the same reason.
Script tag (the older method) Nothing in the editor. The script just loads. Yes. Shopify removes the script tags an app created.
Code written into your theme Snippets, extra files and lines in theme.liquid. Not always. Shopify warns that some apps leave code behind.

App embeds and app blocks come from theme app extensions, the method Shopify’s developer documentation recommends for apps that change the storefront. The same page lists changing theme code through the Asset API as “not recommended”, and warns that it can take a theme off its upgrade path.

Three more things matter for the audit even though they are not theme code. An app proxy lets an app show content from its own server at an address on your store. A web pixel is tracking code for analytics and conversions. A webhook is a message Shopify sends to the app’s servers when something happens, such as a new order. A webhook adds nothing to your pages, so it costs no speed, but it does mean the app receives your store’s data. The section on data access below returns to that.

Script tags are on a deadline

Shopify has deprecated script tags. Since October 1, 2026, apps cannot create or update them. On March 1, 2027, Shopify stops running them on storefronts. After that date the script does not load, and any feature that depends on it stops working for that store, according to Shopify’s deprecation notice.

The replacement is an app embed, which you switch on in the theme editor, or a web pixel for scripts that only collect tracking data. The notice describes no list of script tags in the admin. So the practical check is to ask each vendor in writing whether its app still uses script tags and, if it does, by when it will move. A developer can list a store’s script tags with the Admin API’s scriptTags query, which Shopify says keeps working.

Do not confuse script tags with Shopify Scripts, the separate checkout feature that Shopify scheduled to stop on June 30, 2026. The Black Friday readiness checklist covers that one.

Step 1: List every app and what it does

Open Settings and then Apps in your Shopify admin. Sales channels and custom apps are listed separately, so check those too. For each app, fill in one row of an audit sheet. Copy this into a spreadsheet:

Column What to write
App and plan The name, the plan you pay for and the monthly cost
Job The one thing it does for the store, in one sentence
Owner Who on your team uses it, and when they last did
How it loads App embed, app block, script tag, theme code, or nothing on the storefront
Pages affected Every page, or only some templates such as product pages
Speed cost Blocking time or kilobytes from your test in the next step
Data access What store data it can read (see the data section below)
Decision Keep, replace or remove, and the date you decided

Three questions settle most rows. What breaks if it is gone? Who would notice? What does it cost each month? An app with no clear owner and no clear job is the first candidate for removal. Free trials that nobody cancelled, apps an agency installed years ago and apps added to try one feature are the usual finds.

Step 2: Measure what each app costs

Measure before you change anything. Shopify’s guide to auditing third-party scripts uses Chrome DevTools for this. I use the same method because it changes nothing in your store.

  1. Pick the pages that carry the revenue: the home page, your busiest collection, your busiest product page and the cart. Use a private window so browser extensions do not skew the result.
  2. Run Lighthouse in DevTools three times on one page and keep the median. Write down Total Blocking Time, which is how long the page was too busy to respond while loading, and the page’s total JavaScript. After the run, click View Treemap to see the JavaScript grouped by origin, with sizes.
  3. Open the Network request blocking panel from the DevTools Command Menu. Tick Enable network request blocking and add the domain the app loads from. You can find it in the Treemap or the Network tab.
  4. Reload and run Lighthouse three times again. The difference is what that app’s files cost on that page.
  5. Open More tools and then Coverage to see how much of each file the page never uses.

The blocked page may look broken. That is fine, because you are measuring a cost, not shipping the result.

Here is a made-up example to show the arithmetic. If blocking a review widget’s domain lowers Total Blocking Time on your product page from 900 milliseconds to 600, the widget costs about 300 milliseconds of blocking time there. Your own numbers will differ.

Lab numbers show the cost. Field data shows whether visitors feel it. Shopify’s web performance reports and Search Console show real-visit LCP, INP and CLS, and the guide to a slow Shopify store on mobile explains how to read them.

You can also test an app by switching it off in a copy of your theme. Duplicate the live theme from Online Store, Themes and the theme’s actions menu. Open the copy in the theme editor, click App embeds, switch the embed off and save. App embeds are switched on per theme, so check which ones are on in the copy before you compare.

This table maps what you see to what to do:

What you see What it usually means Next step
Blocking the app cuts time on every page A site-wide embed or script Ask whether it can load only where it is used
The cost shows up on product pages only A block or script tied to that template Check that you need it on every product
Almost no change The app is cheap in the browser Judge it on monthly cost and data access instead
The app’s domain still loads after you removed the app Code left behind Find it with the next section

How do you find code left behind by apps you removed?

Uninstalling an app in the admin does not always remove its code. Shopify’s help page says some apps add code to your theme that is not removed automatically, and its performance guide names the places to look.

  1. In Online Store and Themes, open the theme’s actions menu and choose Edit code. Search for the app’s name and for the domain it loaded from.
  2. Check layout/theme.liquid for script tags the app added.
  3. Check the snippets/ folder for files with the app’s name in the filename.
  4. Look for {% render %} or {% include %} tags in sections and the layout that load those snippets.
  5. Check Custom Liquid sections in the theme editor. App setup instructions sometimes tell you to paste code there.
  6. Open the live page, view the source and search for the app’s domain. If it appears, something still loads it.

Work in a duplicate theme. Remove the render tag first, save, check the page, and only then delete the snippet file. If a snippet has a name you do not recognize, search the theme for what refers to it before you delete anything.

Keep, replace or remove: how to decide

With cost, owner and data access written down, most decisions are quick.

Situation Decision What to do next
It does a job nothing else does, and you can tie it to orders or a legal need Keep Ask the vendor whether it can load only on the pages that use it
Two apps do the same job, such as two review tools Remove one Keep the one with an owner and the better results
Your theme or Shopify now does the job Replace Check the theme settings first, then test in a duplicate
Nobody can say who uses it Remove Switch it off in a duplicate, then uninstall after a few quiet days
It still relies on script tags Ask for a date, or replace It has to move before March 1, 2027
It is slow but needed Replace with a lighter one, or delay its load Run the same blocking test on two or three alternatives

When you compare alternatives, check whether an app is in Shopify’s Built for Shopify program. Its requirements say an app must not reduce the storefront Lighthouse performance score by more than ten points (requirement 2.2.1). That is a minimum standard, not a promise about your store, so run the same blocking test on your own pages.

Sometimes the best replacement is a small piece of theme code instead of another app. For a simple feature such as a size chart, that trades a monthly fee and a third-party script for code you own and have to maintain. What drives custom Shopify development cost helps you judge whether that trade pays off.

What can each app read, and who keeps your data?

Speed is only one cost. Each app also gets access to your store’s data, and it is worth a second look while you have the list open.

  • Open Settings, Apps, then the app, and find Activity and permissions. It shows which areas of your store the app can view or edit, and when it last used each one. Access it has not used in 30 days appears under Unused access. Shopify tracks this only for third-party apps.
  • On the app’s page, the Privacy section lists the personal data the app can access, grouped by category, and links to the developer’s privacy policy.
  • If an app asks for access it does not seem to use, ask the vendor why. A vague answer is a reason to replace it.

When you uninstall an app, the vendor still holds whatever it stored. Shopify’s developer rules require the app to erase a store’s data after an uninstall, and Shopify sends the app that request 48 hours later. Some apps also keep data you cannot get back after uninstalling, so export anything you need first. Cancel any billing that happens outside Shopify too, because uninstalling does not stop it.

This is not legal advice. What your own privacy duties are is a question for a qualified advisor. Start with each vendor’s privacy policy.

Remove apps safely and check the result

Work in this order:

  1. Pause edits to the live theme. If anyone changes it while you work in a copy, publishing the copy overwrites their work.
  2. In the duplicate theme, switch off the app’s embed, remove its blocks and delete leftover code.
  3. Walk through the home page, a collection, a product page, the cart and checkout up to the payment step. Check anything the app used to do, such as a size chart or a free-shipping bar.
  4. Publish the copy when it passes.
  5. Uninstall the app from Settings and Apps using the three-dot menu next to it. Check first whether the app lists extra uninstall steps.
  6. View the live page source and search for the app’s domain. It should be gone.
  7. Run Lighthouse on the same pages and log the before and after. Check field data about four weeks later, because it covers a rolling 28-day window.

If a sale is less than two weeks away, remove only the apps you can verify within a day, and leave replacements for January. The Black Friday readiness checklist shows where this fits in a three-week plan. If tracking is part of the clean-up, the GA4 tracking audit for Shopify covers the pixels and tags that apps add.

When it is worth bringing in help

Most of this audit is work a store owner can do. Bring in a developer when:

  • The theme is heavily customized and you cannot tell what an app’s code touches.
  • Removing one app breaks another.
  • An app you need is slow, and the vendor cannot load it later or in fewer places.
  • INP is the failing metric. It usually means changing JavaScript, not settings.
  • A vendor still depends on script tags and has not given a date.
  • A sale or theme migration leaves little time.

Performance work was part of my role on the Cosmo Together Shopify Plus store, which you can read about in selected work. If you want a second pair of eyes, send me the store address and a few lines about the symptoms. I will reply with what I think is causing it and what I would check first. How I work on Shopify speed, SEO and tracking describes the usual process.

Common questions

How many apps is too many for a Shopify store?

There is no safe number. What matters is what each app loads on your pages. A store with four heavy apps can be slower than one with twenty light ones, so count scripts and their blocking time, not app names.

Does uninstalling a Shopify app remove all of its code?

Not always. Shopify removes the script tags an app created and the blocks that come from theme app extensions. Code an app wrote directly into your theme files can stay behind, and Shopify's own help page warns about this. After you uninstall, search the theme for the app's name and domain.

Will my store break on March 1, 2027 if an app uses script tags?

If an app still depends on a script tag, its script stops loading on that date and any feature that relies on it stops working. Ask each vendor whether the app now uses an app embed. If it does, you switch the embed on in the theme editor under App embeds.

Can I turn an app off without uninstalling it?

Sometimes. If the app uses an app embed, open the theme editor, click App embeds, switch it off and save. If it places a block in a section, remove the block. If it wrote code into your theme files there is no switch, so block its domain in DevTools to test it, or remove the code in a duplicate theme.

Sources and further reading

Tell me what's not working.

Send the store address and a few lines about the problem. I'll reply with what I think is causing it, what I'd do first, and whether I'm the right person for the job.

Email
hi@m-ali.dev
Based in
Islamabad, Pakistan, UTC+5. I usually reply within one business day.

This opens your email app with the message filled in.

I use your details only to reply to you. Privacy notice

Keep reading