The problem in one sentence
When you uninstall a Shopify app, Shopify only revokes the app's API access — not the code the app wrote into your theme. So every uninstalled app leaves traces that slow down your store.
How to prove it
You can verify the effect in any Shopify store:
- Open Chrome DevTools → Network tab → hard reload your homepage
- Filter by
.jsand.css - Click each file: where does it come from?
- You'll often find requests to
cdn.judge.me,static.klaviyo.com,assets.loox.io,cdn.bold.com— even though you uninstalled those apps long ago.
Alternative: open your store in Lighthouse or PageSpeed Insights. Under "Unused JavaScript" you'll often see 200-500 KB of dead code from unknown sources. That's ghost code.
Why does this happen?
When an app installs, it writes assets into the theme: script tags, JSON entries in settings_data.json, Liquid snippets, JavaScript bundles. Shopify only allows this for apps with the write_themes scope.
At uninstall Shopify deliberately takes only one step: revoke API access. Why? Because Shopify can't know what customizations you made to the theme code in the meantime. Automatic deletion could destroy your own work.
The logic: installing is easy — cleanup is your responsibility.
The usual suspects
From our analysis of 200+ pattern signatures, these are the most common ghost-code offenders:
- Judge.me / Loox / Stamped / Yotpo — review widgets with heavy JavaScript
- Klaviyo / Omnisend / Privy — signup forms, tracking pixels
- Bold Upsell / ReCharge / Recart — upsell and subscription apps with complex script bundles
- PageFly / GemPages / Shogun — page builders that deposit their own section files and assets
- Swym / Gorgias — wishlist and helpdesk widgets
- Tracking apps: Meta Pixel, TikTok Pixel, Google Tag Manager with app-specific configs
The more of these apps you've tried and removed over the years, the heavier your theme drags.
Measurable costs
Every 100ms of additional load time costs up to 7 % of your mobile conversion rate according to Akamai. Deloitte/Google prove in Milliseconds Make Millions that 0.1 seconds faster means 8.4 % more retail conversions and 9.2 % higher AOV.
For a DACH store at €500k yearly revenue, typical ghost-code bloat of 300-800 KB translates to LCP +0.5-1.5 seconds, revenue loss €10,000-€30,000/year.
Your cleanup options
Option 1: Manual
- Duplicate theme as backup
- Search all Liquid files for app names
- Clean up assets folder
- Carefully edit
settings_data.json(risk: break theme editor) - Test, test, test
Time: 3-5 hours per store. Risk: high.
Option 2: Agency
- €300-€1,500 per store for professional audit
- Real-world experience from the Shopify community: agencies solve it, but expensive and unscalable.
Option 3: Automated with GhostCode
- Free scan in 30 seconds
- Findings with file path, line and diff
- One-click cleanup (bulk or selective)
- Automatic backup before every change
- Restore in under 30 seconds if needed
- Time: under 3 minutes.
Details: GhostCode — Shopify Theme Cleanup
What you should do today
- Run a scan (manual or automated) to know how much ghost code is in your store
- Measure Core Web Vitals before (Lighthouse or PageSpeed Insights)
- Clean up
- Measure after — typical improvement: 0.5-1.5s LCP reduction, 15-40 % less JavaScript payload
Critical: Shopify deactivates legacy ScriptTags by August 2026. Anyone who hasn't cleaned up ghost code by then will see 404 errors for dead script sources.
Further reading: Ghost Code in Shopify — the invisible speed killer · GhostCode on the Shopify App Store