Is Leftover Shopify App Code Hurting Your Page Speed and SEO Rankings?
Your Core Web Vitals score has been drifting downward for months, and you have not touched your theme in weeks. You go looking for the culprit and the usual suspects check out fine — the hero image is optimised, the app widgets you actually use are behaving, nothing obvious jumps out.
The real cause is often the code you cannot see: leftovers from apps you do not even have installed anymore.
Disclosure up front: ThemeSweep is built by JMS Dev Lab, the publisher of this blog, so I have a horse in this race. But the underlying problem exists whether you ever use our tool or not, and most of this post is about understanding it and checking for it yourself.
Uninstalling an app removes the app, not what it wrote into your theme
When you install a Shopify app, it usually does two things: it connects to your store through Shopify’s API, and it writes code into your theme — a Liquid snippet here, a JavaScript file there, a block of CSS, sometimes a whole custom section.
When you uninstall it, Shopify cleanly handles the first part. It revokes the app’s access, stops the billing, and takes it out of your admin. The second part — the code sitting inside your theme files — it generally leaves alone, and there is a sensible reason for that. Shopify cannot always tell which lines of your theme belong to which app, especially when an app has inserted a snippet into a shared file like theme.liquid. Deleting the wrong line could break your live store, so the safe default is to leave everything where it is.
An app developer can write a clean-up routine that removes its own code on uninstall, but there is no requirement to, and many do not. So the practical result is this: most apps you have ever trialled and dropped have probably left something behind, and that something still loads on every page.
One leftover snippet is harmless. The issue is accumulation. A year of trying review apps, upsell apps, currency converters, and countdown-timer apps — keeping a couple, dropping the rest — leaves a layer of code your current store does not need and never asked for.
Why this is a Core Web Vitals problem, not just a tidiness one
It is tempting to file dead code under “housekeeping” and forget about it. But orphaned code is not inert — the browser still has to deal with it, and that shows up in the exact metrics Google measures.
- Largest Contentful Paint (LCP). Extra JavaScript and CSS files still have to be fetched and processed before the browser can get on with rendering your main content. Render-blocking scripts and styles that belong to an app you removed months ago are pure overhead added to the moment that matters most for perceived speed.
- Cumulative Layout Shift (CLS). Orphaned scripts that load late, or that try to inject or reference elements that no longer exist, can nudge your layout around or leave gaps — the visual jumpiness CLS is designed to catch.
- Wasted main-thread work. Even a script for a deleted app still gets parsed and executed. It looks for elements that are not there, sometimes errors out, and occasionally keeps trying to reach servers that no longer answer — all of it competing for the same main thread your real page needs.
Google has been explicit that Core Web Vitals form part of how it assesses pages. So a store carrying a season’s worth of dead app code is quietly competing at a disadvantage against a cleaner store in the same niche — and because the slowdown creeps in gradually, it is easy to blame the algorithm or the season when the cause is sitting in your own theme’s file list. It is the same drag that makes it worth clearing this out before a big sale, when your traffic — and the cost of a slow page — peaks.
Why “flag anything old” scanners make it worse
Once you accept there is dead code to find, the obvious move is to reach for a scanner. Here is where a lot of them let you down: a tool that flags any code matching a known app pattern will happily flag code from apps you are still actively using. Those false positives are not a minor annoyance — they are how the whole exercise falls apart.
Face a report full of warnings about apps you rely on and you do one of two things: you learn to ignore every warning (so the real dead code stays), or you trust the tool, delete something live, and break a feature customers use. Either way you are worse off than when you started.
The fix for that specific failure is to check findings against reality before flagging them. ThemeSweep cross-references the code it finds against your currently installed app list, so it distinguishes between code from an app you are still running (leave it) and code from one you removed three months ago (a candidate to clear). That cross-reference is the whole point — it is also the difference we go into in more depth in ThemeSweep vs Cleanify Code, so I will not re-run the full comparison here.
What the free scan actually gives you today
The free ThemeSweep scan is a read-only diagnostic. It reads your theme, cross-references it against your installed apps, and hands you a report of what looks orphaned — which files, and which former app they appear to belong to. It does not edit your theme, it does not delete anything, and it does not need a card.
One thing to be plain about: this is a standalone feature at themesweep.com right now, not a Shopify App Store install. It is not currently listed on the Shopify App Store. You can run the scan today from the standalone site; you just will not find it in the App Store yet.
What to do with the results
Treat the report as a to-review list, not an auto-delete list. A scan is very good at surfacing suspects; you are the one who confirms them. Before you remove anything from a live theme:
- Duplicate your theme first. In your Shopify admin, go to Online Store > Themes > Actions > Duplicate so you have a backup to fall back to.
- Verify each flagged item. Confirm the app really is uninstalled and that the snippet or file is not shared with something you still use.
- Remove in your duplicate, then preview. Click through your key pages — home, a product page, cart, checkout — before you publish anything live.
- Re-check afterwards. Run your store through Google PageSpeed Insights before and after so you can see the difference for your store rather than take anyone’s word for it.
If you would rather not touch theme code at all, that is a perfectly reasonable line to draw — a Shopify developer can take the report and do the removal cleanly. The scan is still worth running either way, because you cannot decide what to do about dead code until you can see what is actually there.
Frequently asked questions
Does a ThemeSweep scan touch my live theme?
No. The free scan is read-only — it reads your theme and produces a diagnostic report. It does not edit, delete, or publish anything. Any changes are yours to make, in your own time, after you have reviewed the report.
Will the scan flag apps I am still using?
It is designed not to. ThemeSweep cross-references what it finds against your currently installed app list, so code belonging to an app you are still running should not be flagged as orphaned. That cross-reference is what separates genuinely dead code from code that is still doing a job.
Is ThemeSweep on the Shopify App Store?
Not yet — it is not currently listed on the Shopify App Store. Today it is available as a free, read-only diagnostic scan on the standalone site at themesweep.com, with no card required.
The short version
If your page speed has been sliding and you have ruled out the obvious things, look at the code you did not add on purpose. Uninstalling an app does not clean up what it wrote into your theme, and that leftover weight lands squarely on the metrics Google measures. You can check for it by hand, or run a free read-only scan and start from a list of what is genuinely orphaned — then decide, calmly and with a backup in place, what is safe to remove.
Related reading
- The Hidden Cost of Uninstalling Shopify Apps — how to check your own theme for leftover app code by hand, step by step.
- ThemeSweep vs Cleanify Code — a closer look at why cross-referencing against installed apps matters for accuracy.
- Speed Up Your Shopify Store Before a Sale — where dead code fits among the fixes worth making before your traffic peaks.
Have an awkward problem like this one?
Send us one workflow. JMS Dev Lab will recommend the most sensible next step: build, buy, automate or wait.
— or leave your email for one practical reply, with no newsletter —