Before you remove any app to speed up Shopify, audit the third-party scripts first — don’t delete blindly. A proper audit does three things in order: it identifies the owner of every external script (which app or tag added it), measures its real cost (size, blocking time, main-thread impact), and confirms what breaks if it’s gone. Only then do you decide to remove, defer, replace or keep it. Skipping this is how merchants delete the review widget that closes sales, or the tracking pixel their ads depend on, and lose more than the speed they gained. Audit, then act.
Why audit before you remove
There’s a real tradeoff here: speed versus revenue. Third-party scripts are usually the heaviest drag on a Shopify storefront — but many of them earn their weight. A reviews widget, a currency converter, a live-chat tool, a conversion pixel, a subscription selector: each one is a script, and each one might be directly tied to sales or attribution.
Rip them out based on a PageSpeed score alone and you can quietly break checkout tracking, kill social proof on product pages, or lose the data your ad campaigns optimize against. The fastest store in the world doesn’t help if it no longer converts. The goal isn’t the fewest scripts — it’s the right scripts, loaded well. That’s what an audit tells you. If you’re carrying more tools than you use, too many Shopify apps is the companion read on why app sprawl piles up in the first place.
How to see every third-party script
You can’t audit what you can’t see. Three tools surface the full list:
- Chrome DevTools — Network panel. Load a product page, filter to
JS, and sort by size and by time. Each request shows its host domain, transfer size and how long it took. The third-party rows are the ones served from domains that aren’t your*.myshopify.comor Shopify’s CDN. - Chrome DevTools — Performance panel. Record a page load, then read the main-thread flame chart. Long yellow “Scripting” blocks are JavaScript execution. Hover to see which script owns each block — this is where you find what’s actually blocking rendering, not just downloading.
- PageSpeed Insights third-party report. Run your URL through PSI (or Lighthouse) and open the “Reduce the impact of third-party code” audit. It groups requests by owner and shows main-thread blocking time per provider — the fastest way to see who the biggest offenders are.
- A request waterfall. A WebPageTest-style waterfall lays every request end to end, so you can see what loads early and render-blocking versus what loads late. It makes script ownership and sequencing obvious at a glance.
Run these on a real product or collection page, not just the homepage — that’s where most stores carry the most app scripts.
How to identify each script’s owner
A list of domains is useless until you know who owns each one. Map them:
- Match the domain to the app. Most apps load from their own domain or a recognizable CDN host. Search the script URL for the vendor name; often it’s right there in the hostname or path.
- Cross-reference installed apps. Open your Shopify admin app list and line it up against the domains you found. Most external scripts will map cleanly to an app you recognize.
- Check app embeds. In the theme editor, open App embeds in the left panel. Each active embed is an app injecting code — this is a direct owner-to-script map for the modern app system.
- Look for tags and pixels. Not every script is an app. Analytics, ads and marketing pixels often come from a tag manager or hard-coded snippet. Trace those back to the tool that owns them too.
Anything you can’t place is a red flag — it may be residue from an app you already removed. Orphaned code that keeps loading after uninstall is common enough to have its own playbook: Shopify app leftover code covers how to find and clean it.
How to measure impact
“Slow” isn’t a number. Score each script on what actually hurts:
- Transfer size. How many KB it downloads. Big, but the least important of the four — download is cheap compared to execution.
- Main-thread blocking time. How long the script ties up the main thread parsing and executing. This is what makes a page feel unresponsive and directly drags INP (Interaction to Next Paint).
- Render-blocking behavior. Does it load in the
<head>and hold up first paint? Scripts that block rendering delay LCP (Largest Contentful Paint) — your biggest visible content. - Effect on Core Web Vitals. Tie each script back to LCP and INP specifically. A heavy script that runs after the page is interactive matters far less than a small one blocking the head.
If your interactivity scores are the problem, Shopify poor INP explains what main-thread work does to responsiveness — most of it is third-party JavaScript. And if the store just feels slow with no obvious cause, why is my Shopify store so slow frames the whole diagnostic.
The audit table
Put it all in one place. For every third-party script, fill a row — this is the artifact your decision comes from:
| Script / domain | Owner (app or tag) | What it does | Cost (size · blocking) | Verdict |
|---|---|---|---|---|
reviews.cdn.example | Reviews app | Product-page star ratings | 90 KB · 210 ms | Keep — drives conversions |
chat.example.io | Live-chat app | Support widget | 140 KB · 320 ms | Defer — load on interaction |
popup.example.net | Old popup app | Nothing (app uninstalled) | 60 KB · 140 ms | Remove — orphaned |
currency.example.com | Currency app | Price conversion | 45 KB · 90 ms | Replace — native markets |
px.ads.example | Ad pixel | Conversion tracking | 30 KB · 70 ms | Keep — revenue attribution |
The point of the table is that every “remove” is a decision backed by owner + cost + consequence — never a guess.
How to test safely
Never edit your live theme to test a removal. Work with a safety net:
- Duplicate your live theme. Do all testing on the copy. It’s your instant rollback.
- Disable one script at a time. Turn off a single app embed, or comment out one snippet — not everything at once. If something breaks, you know exactly what caused it.
- Re-measure. Re-run DevTools and PageSpeed on the duplicate. Confirm the speed gain is real and worth it — some scripts cost less than you feared.
- Confirm nothing revenue-critical breaks. Load the homepage, a product page, the cart and go through to checkout. Verify reviews still render, tracking still fires, currency still converts, chat still opens. A speed win that breaks attribution or social proof is a loss.
How to decide: remove, defer, replace, keep
Every script lands in one of four buckets:
- Remove. Orphaned scripts, dead pixels, apps you no longer use. Pure dead weight — delete them.
- Defer. Useful but not needed for first paint: chat widgets, non-critical trackers. Load them lazily, on interaction or after the page is interactive, so they stop blocking the initial render.
- Replace. A heavy app doing something Shopify now does natively (currency via Markets, simple bundles, basic tracking) — swap the script for the built-in.
- Keep. Revenue-critical features that earn their cost. Reviews, subscriptions, verified conversion tracking. Optimize how they load, but keep them.
Common mistakes
- Removing blindly. Deleting apps by PageSpeed score without checking what each script does — the fastest way to break a converting feature.
- Keeping everything. The opposite failure: never auditing, so scripts from a dozen old trials stack up forever and every page pays for them.
- Testing on the live theme. No rollback, and every shopper sees your mistakes in real time.
- Ignoring leftover code. Assuming uninstall removed the script. It often doesn’t — verify with a page-source scan.
When to get help
Do it yourself if you can confidently map every script to an owner and you’re comfortable testing on a duplicate theme. Bring in help when the store carries residue from many apps, when scripts are hard to trace, when removals cause errors you can’t explain, or when you can’t afford to gamble with a live storefront. A full speed-up your store engagement audits the whole page — third-party scripts, images and Core Web Vitals together — so you cut what’s actually costing conversions and keep what earns its place.
Not sure which scripts are safe to remove? Send us your store URL — we’ll audit every third-party script, map it to its app, measure its cost, and tell you what to cut, defer or keep. Get a free profit audit.