</> JMS Dev Lab
Services Pricing About Blog Contact Get in Touch
Get in Touch
  1. Home
  2. /
  3. Blog
  4. /
  5. 5 Signs of Dead App Code

5 Signs Your Shopify Theme Is Full of Dead App Code (And How to Check)

14 April 2026

I used to run a jewellery retail business. We had three shops, a website, and a long history of trying tools that looked promising and then quietly abandoning them. The digital equivalent of that — on Shopify — is uninstalling apps and assuming the job is done.

It is not done. The apps are gone but their code almost always stays behind, buried in your theme files, running on every page load without doing anything useful.

Most merchants do not realise this is happening until something forces them to look: a performance audit, a developer poking around the theme, or a PageSpeed score that should not be that low. By then, the code has often been accumulating for a year or two.

These are the five most reliable signs that your Shopify store is carrying dead app code — and a quick check for each one you can do yourself right now, no tools required.

Disclosure: ThemeSweep is built by JMS Dev Lab, the publisher of this blog. I will mention it at the end, but you do not need it to do any of the checks below.

Sign 1: Your PageSpeed Score Dropped After Uninstalling an App

This sounds backwards, but it is surprisingly common. You uninstall a heavy app expecting your score to improve — and it does not. Sometimes it gets worse.

What is happening: the app is gone, but the JavaScript it injected into your theme is still loading. In some cases, that script is now failing — trying to connect to the app’s servers, getting a timeout or a 401 error, and retrying. A live app at least returns a fast response. A dead app’s script just hangs.

I have seen a store go from a PageSpeed mobile score of 72 down to 58 after uninstalling a reviews app. The app’s widget was still trying to load on every product page, failing after a 3-second timeout, and blocking the rest of the page from rendering.

Quick check: Run your store through Google PageSpeed Insights. Then open Chrome DevTools (F12 or right-click → Inspect), go to the Network tab, reload your page, and filter by Status: failed or look for any requests showing 400–499 or 500–599 status codes. Failed requests from app CDNs or external domains are a strong indicator of orphaned scripts still trying to phone home.

Sign 2: You See JavaScript Console Errors on Your Storefront

Your customers do not see these. But your browser does — and they slow your store down.

When an app is uninstalled but its JavaScript is still in your theme, the script loads and immediately starts looking for DOM elements that no longer exist. Things like document.getElementById('app-widget-container') returning null because the app was responsible for creating that element. The script throws an error, which can block subsequent scripts from executing cleanly.

Multiple orphaned scripts doing this simultaneously — each one throwing errors, each one adding to your Total Blocking Time — and you have a store that feels sluggish even with fast hosting and compressed images.

Quick check: Open your storefront in Chrome. Press F12 to open DevTools. Click the Console tab. Reload the page. Look for red error messages. If you see errors referencing app names you do not recognise — or referencing JavaScript files hosted on domains like cdn.someapp.io or static.appname.com — those are almost certainly orphaned scripts from uninstalled apps. Write down the domain names. You will use them in check 4 below.

Sign 3: Your Theme Has More Files Than You Can Account For

A standard Shopify theme has a predictable file structure: templates, sections, snippets, assets, config, layout, locales. When you add apps, they inject additional files. When you uninstall apps, those files usually stay.

The giveaway is when you open your theme code editor and find dozens of snippet files with names like bold-product.liquid, loox-widgets.liquid, judgeme_widgets.liquid, or upsell-popup.js. If you have not heard of these apps or you uninstalled them months ago, these files have no reason to exist.

The number alone is telling. A fresh Dawn theme has around 60–70 files. Stores with a long history of app experimentation can accumulate 120, 150, sometimes over 200 files. The extra files are not doing anything useful. They are just weight.

Quick check: In your Shopify admin, go to Online Store → Themes → Actions → Edit Code. Click through the Snippets and Assets folders. Count the files. Then look for anything with an obvious app name in the filename. Cross-reference against your currently installed apps (visible in your Shopify Apps section). Any file that references an app you no longer have installed is a candidate for removal.

Sign 4: Your Store Loads Slowly Even Though Your Images Are Optimised

Images are the first thing merchants optimise when their store is slow, and rightly so — uncompressed images are responsible for most avoidable load time. But if you have already compressed and sized your images correctly and your store is still slow, the problem is probably JavaScript.

JavaScript is render-blocking by default. When a browser loads your page, it stops rendering when it hits a script tag until that script is downloaded and executed. Modern themes use async and defer attributes to mitigate this, but orphaned app scripts often do not — they were injected by the app’s installer, which may not have followed best practices.

A single render-blocking script from an uninstalled app can add 800ms–1.5 seconds to your page load on mobile. Five of them, and your store is noticeably slow regardless of what else you optimise.

Quick check: Open your store’s homepage in a browser and right-click → View Page Source (the raw HTML, not Inspect Element). Use Ctrl+F to search for <script. Count how many script tags appear before the closing </head> tag. More than 8–10 is worth investigating. Then look at the src attributes on those script tags — any pointing to external CDN domains you do not recognise are potential dead app scripts.

Also search the page source for the names of apps you have uninstalled. Try the app name, the company name, and common URL patterns. If you find them, that code is loading on every page.

Sign 5: Your Lighthouse Score Dropped After Adding Apps, and Never Recovered

This one is about patterns over time rather than a single snapshot. Merchants who track their Lighthouse scores regularly notice a creeping decline — the score was 88 when they launched, then 81, then 74, with no obvious single cause.

The culprit is usually app churn. Each new app install adds a small amount of code. Each uninstall leaves a small amount of code behind. Over 18 months of trying new tools, that accumulation becomes significant.

The tricky part is that no single app is obviously responsible. The score did not drop sharply when you uninstalled the reviews widget last month. It dropped by 3 points. And by 2 points the month before, and by 4 points six months ago. The damage is distributed across multiple orphaned scripts, making it hard to diagnose without a systematic audit.

Quick check: Run your store through PageSpeed Insights and look at the Opportunities and Diagnostics sections. Pay specific attention to:

  • Eliminate render-blocking resources — lists scripts and stylesheets that are blocking your page render. Any app CDN URLs in this list that belong to uninstalled apps are dead code.
  • Reduce unused JavaScript — shows the actual kilobytes of JavaScript being downloaded but not executed. This is often the clearest signal of orphaned scripts.
  • Reduce unused CSS — same for stylesheets. Orphaned app CSS is a common contributor.

If PageSpeed is flagging large amounts of unused JavaScript from external domains, you have accumulated dead code. How much depends on how many apps you have tried over the lifetime of your store.

What to Do About It

You have three paths once you confirm you have dead code.

Manual cleanup is free and gives you full control. Open your theme code editor, identify the orphaned files and script tags, and delete them carefully. Back up your theme first — always. This approach works well if you have a short app history and a simple theme. Budget 2–3 hours for a thorough manual audit.

Hiring a developer is the safest manual option. A Shopify developer who knows their way around Liquid and theme architecture can audit and clean up your theme without breaking anything. Expect £150–£400 for a one-off cleanup.

Using a dedicated tool is the fastest and most repeatable approach. This is what we built ThemeSweep for. ThemeSweep scans your theme using five detection strategies, cross-references what it finds against your currently installed apps, and only flags code from apps you no longer have. The cross-referencing step is important — it eliminates false positives, so you are not accidentally removing code from apps you are still paying for. It backs up your theme automatically before any cleanup and gives you a one-click rollback if anything looks wrong.

The initial scan is free and takes about 60 seconds. You will immediately see exactly what is sitting in your theme. Plans start at $4.99/month with a 14-day free trial.

If you found any of the five signs above in your own store, it is worth running the scan just to see the full picture. Most merchants are surprised by how much has accumulated.

Related Reading

  • The Hidden Cost of Uninstalling Shopify Apps — The full technical explanation of why app code stays behind, what it does to your performance, and what you can do about it.
  • ThemeSweep vs Cleanify Code — A head-to-head comparison of the two main tools for removing orphaned app code from Shopify themes.

Need Help?

If you are not sure what you are looking at in your theme code, or you want a second opinion on your PageSpeed results, get in touch. Happy to take a look.

</> JMS Dev Lab

Custom software for businesses that are too unique for off-the-shelf tools and too small for enterprise pricing.

Services
Custom Development JewelryStudioManager StaffHub Jewel Value SmartCash Pitch Side RepairDesk GrowthMap QualCanvas
Company
About Blog Contact
Legal
Privacy Policy Terms of Service Pay Invoice
© 2026 JMS Dev Lab. All rights reserved.