Why does my Shopify store still load scripts from apps I already uninstalled?

Uninstalling an app removes its access to your store, not the scripts and snippets it left behind in your theme files.

app-bloatperformancetheme-cleanuppage-speed

What's going on

My store feels sluggish, and when I look at the page source there's a bunch of script tags and snippet includes from apps I uninstalled months ago. Why is this still here, and is it actually slowing anything down, or am I just being paranoid about clutter?

This is a genuinely common situation, and it's not paranoia. When you delete an app in Shopify Admin, you're revoking that app's access to your store, not asking Shopify to reach into your theme and remove the script tags, Liquid snippets, or CSS and JS asset files that app added when you installed it. If the app injected code directly into theme.liquid, your header, or your footer, or added its own snippet and asset files, that code just sits there, inert or worse, still trying to load a script from a server that no longer recognizes your store.

Why it happens

Historically, many Shopify apps injected themselves using the ScriptTag API, or instructed merchants to manually paste a snippet into theme.liquid. Both approaches attach code to your theme rather than to the app's own sandboxed space, so Shopify has no reliable way to know that code belongs to a specific app or that it's safe to remove automatically when the app is uninstalled.

Shopify has been moving apps toward theme app extensions and app embed blocks, which live inside the Theme Editor's App Embeds section and are designed to be added and removed cleanly alongside the app itself. Older apps, apps installed before you switched to an Online Store 2.0 theme, or apps that never migrated off the legacy ScriptTag approach are the most common source of leftovers, and Shopify has also been tightening restrictions on where legacy scripts can still run, which is part of why this cleanup work keeps surfacing for merchants right now.

5 ways to fix it

1

Manually audit your theme code first (it's free)

In the Theme Editor, use Edit Code to search theme.liquid, your header and footer sections, and the Snippets and Assets folders for anything named after apps you no longer use (a snippet called something like "appname-tracking.liquid" or a stray script tag pointing at an unfamiliar domain is a giveaway). Delete the reference in theme.liquid or the section that calls it, then delete the orphaned snippet or asset file itself. Duplicate your theme first so you have a rollback if something turns out to still be load-bearing.

2

Check App Embeds in the Theme Editor before you touch code

Open the Theme Editor and look at the App Embeds section in the sidebar. Embeds left behind by an uninstalled app are inert but still listed there, so turn them off. Apps built using theme app extensions are meant to have their embeds and blocks cleaned up automatically when uninstalled, but that hand-off doesn't always complete cleanly, especially for apps installed before you moved to an Online Store 2.0 theme, so it's worth checking manually every time you remove an app.

3

Use your browser's dev tools to find scripts that are actually still firing

Leftover Liquid markup only matters if it's still loading something. Open your storefront in an incognito window, open the Network tab, reload the page, and look for requests to third-party domains you don't recognize. Anything still pinging an old app's server, such as an analytics pixel, popup script, or review widget, is worth tracing back through your theme code and removing, since that's the actual source of the slowdown, not just clutter sitting in a file list.

4

Run a theme cleanup pass with a code-audit app if the manual search gets tangled

If many apps have cycled through your store over the years, a file-by-file search gets tedious and risky, since it's easy to delete something a currently installed app still relies on. A theme-cleanup or leftover-code scanning app can map which snippets, assets, and script tags trace back to which app and flag the ones with no matching installed app, which is faster and safer than guessing from file names alone. Treat any such tool's suggestions as a list to verify, not something to apply blindly.

5

Prevent the buildup going forward

When you uninstall an app, check its support docs first; reputable apps often tell you exactly what manual cleanup, if any, is needed. When choosing new apps, favor ones that describe themselves as using theme app extensions or app embeds rather than ones that ask you to paste a script into theme.liquid yourself. The former are designed to clean up after themselves on uninstall; the latter usually are not.

Bottom line

There's no single Shopify control that finds and removes every trace of every app you've ever installed. Uninstalling an app revokes its access to your admin, but any code it (or you, following its setup instructions) added directly to your theme files has to be found and removed separately. A theme code audit, done manually or with a scanning tool, is a normal and worthwhile maintenance task every year or two, not a sign you did something wrong.

Still Stuck?

Browse the rest of the problem library, run a free storefront scan to catch issues like this automatically, or email us and we'll work out a custom solution for it.