Services Work About Team Blog ⚡ Speed & App Estimator Tutorials FAQ Chat on WhatsApp

Home / Blog / Performance / How to Find and Remove Zombie Shopify App Code (The Hidden Speed Killer)

ShopifyWeb PerformanceLiquidCore Web Vitals

How to Find and Remove Zombie Shopify App Code (The Hidden Speed Killer)

When an e-commerce merchant clicks “Delete app” inside the Shopify Admin, they assume the app is gone forever.

Unfortunately, in the architecture of Shopify themes, that is almost never true.

While Shopify’s modern App Bridge and Theme App Extensions have made app installations cleaner, the vast majority of popular marketing, review, tracking, and countdown apps still inject permanent modifications directly into your theme’s code files (theme.liquid, snippets/, and assets/).

When you uninstall the app, Shopify cuts off the app’s billing and admin dashboard—but it cannot automatically edit your custom theme files to undo the injected code.

The result? Zombie App Code.


What Is Zombie App Code?

Zombie app code refers to orphaned Liquid snippets, JavaScript tags, and CSS files that remain inside your theme long after you’ve cancelled the service.

Every time a potential customer visits your store on their mobile phone, their browser:

  1. Parses abandoned Liquid {% include %} or {% render %} tags.
  2. Initiates DNS lookups to abandoned third-party CDNs.
  3. Downloads dead JavaScript bundles that execute, look for DOM elements that no longer exist, and crash silently in the background.
  4. Fails network requests with HTTP 404 or 502 errors, holding browser connections open.

On a budget mobile phone connected over a standard 4G network, this zombie overhead easily adds 300ms to 1,200ms of unnecessary Total Blocking Time (TBT) and delays your Largest Contentful Paint (LCP).


Step 1: Discovering Your Dead Network Requests

Before touching any code, identify the ghost requests your store is already firing:

  1. Open your Shopify store in Google Chrome using an Incognito Window.
  2. Right-click and select Inspect, then switch to the Network tab.
  3. Check Disable cache and set throttling to Fast 4G.
  4. Filter by Fetch/XHR or JS, and refresh the page.
  5. Sort the network table by Status.

Look for requests returning:

  • 404 Not Found
  • 403 Forbidden (common when an app server shuts off an uninstalled merchant’s API key)
  • Failed or Pending timeouts

If you see requests pinging domains like api.loox.io, judge.me, privy.com, or klaviyo.com for apps you uninstalled months ago, you have confirmed zombie code.


Step 2: Where App Developers Hide Code

Zombie app snippets typically hide in three primary locations inside your Shopify theme:

1. layout/theme.liquid

Look between the <head> and </head> tags, as well as immediately before the closing </body> tag. App developers frequently insert global loaders here:

{% comment %} ZOMBIE CODE EXAMPLE {% endcomment %}
{% include 'judgeme_core' %}
<script src="https://cdn.abandoned-app.com/tracker.js" async></script>

2. The snippets/ Directory

App developers often create standalone snippet files named after their app. Open your code editor and look for filenames like:

  • snippets/bold-common.liquid
  • snippets/yotpo-subs.liquid
  • snippets/privy.liquid
  • snippets/currency-switcher.liquid

3. assets/ Directory

Some apps bundle static JavaScript or stylesheet overrides directly into your theme assets:

  • assets/app-name.min.js
  • assets/custom-popup.css

Step 3: The Safe Step-by-Step Cleanup Protocol

CRITICAL RULE: Never edit your published live theme directly. Always work on a duplicate.

Step 3.1: Create a Theme Duplicate

In your Shopify Admin, navigate to Online Store > Themes. Click the menu next to your current theme and click Duplicate. Rename the duplicate to Clean Performance Audit — [Date].

Step 3.2: Search and Remove Injected Snippet Calls

Open the code editor on your duplicate theme. Use the search bar in the left sidebar to search for the name of uninstalled apps.

When you find orphaned tags like:

<!-- REMOVE THIS -->
{% render 'old-reviews-app' %}
{% include 'deleted-countdown-timer' %}

Carefully delete the line.

Step 3.3: Delete Orphaned Snippets

Navigate to the snippets/ directory. If you find .liquid files that belong solely to an app you no longer subscribe to, delete the file entirely. This prevents any inadvertent rendering calls from compiling.

Step 3.4: Clean Up Injected Asset Loads

Inspect theme.liquid for <script> or <link> tags pointing to external CDNs that you no longer use. Delete the script tags or wrap them in comments:

{% comment %}
<script src="https://some-old-tool.com/embed.js"></script>
{% endcomment %}

Step 4: Verifying the Cleanup

Once you have cleaned your duplicate theme, preview it:

  1. Click Preview on your clean duplicate theme.
  2. Test critical customer user flows:
    • Add a product to the cart.
    • Open the slide-out / drawer cart.
    • Proceed to the checkout page.
    • Verify that your active marketing pixels (Meta, Google, TikTok, Klaviyo) still fire.
  3. Run Google PageSpeed Insights on the preview URL (?_ab=...&_fd=0&_sc=1).
  4. Compare your Total Blocking Time (TBT) against the live store. In most stores that have been active for more than 2 years, purging zombie code shaves 300ms–800ms of blocking time instantly.

Want Us to Clean Your Store’s Codebase?

If you don’t feel comfortable editing theme Liquid files or want a guaranteed sub-second mobile store, our engineers can handle it for you.

We provide full theme code refactoring, zombie app purging, and guaranteed 90+ Mobile Core Web Vitals with zero risk to your active marketing stack:

Mobile Performance Guarantee

Losing mobile orders to slow page loads?
We guarantee a 90+ PageSpeed score.

Every 100ms of mobile latency costs real revenue. We audit your JavaScript bloat, decouple marketing trackers, and optimize critical rendering paths without deleting the apps you rely on.

⚡ Test App Bloat Estimator View Speed Optimization →

Technical Blog

Explore all 50+ engineering tutorials

All Articles ↗

Looking for custom
Shopify engineering craft?

Let's build
your store right.

Let's start with a free 30-minute call. No commitment, no templates, no compromises.

Free 30-min call. No commitment. No templates.

Book your free call → Chat on WhatsApp

The craft in every click.