Tr?id=1076949064639753&ev=PageView&noscript=1
$56M+ Revenue Generated for Clients 450+ Happy Clients 30+ Team Members AI Powered Services
Article · CRO & UX

Shopify Speed Optimisation: Removing App Bloat Without Losing Features

A step-by-step way to audit apps, clean up leftover code and hit Core Web Vitals targets on Shopify

Raghav Mittal
Contributor Raghav Mittal Oct 5, 2026 · 7 min read
Illustration of a product page, checkout flow and conversion heatmap

In short

  • Third-party apps and leftover app code are the most common avoidable cause of slow Shopify stores.
  • Measure with Shopify's web performance report and PageSpeed Insights against Google's Core Web Vitals targets before changing anything.
  • For each app, decide whether to keep, replace with a native feature, defer until needed or remove it.
  • Shopify says some apps leave code behind after uninstalling, so clean up theme code on a duplicate theme.
  • Shopify will stop injecting legacy script tags into storefronts on 1 March 2027, so check which apps still rely on them.

Shopify speed optimisation is mostly about apps, not hosting. Shopify serves your theme and images from its own global infrastructure, so the biggest avoidable slowdowns usually come from third-party app scripts, leftover code from apps you have uninstalled and widgets loading on pages that don't need them. You can remove most of that bloat without losing features by auditing every script, replacing apps with native Shopify features or lightweight theme code, and delaying the rest until a shopper actually needs them.

What "fast enough" means

Google's Core Web Vitals give you three clear targets, measured at the 75th percentile of real visits (web.dev):

MetricWhat it measuresGoodPoor
Largest Contentful Paint (LCP)How quickly the main content, usually the hero or product image, appears2.5 s or lessOver 4 s
Interaction to Next Paint (INP)How quickly the page responds to taps, such as variant selection or Add to cart200 ms or lessOver 500 ms
Cumulative Layout Shift (CLS)How much content jumps around while loading0.1 or lessOver 0.25

App bloat hurts all three. Extra scripts compete with your hero image (LCP), keep the browser busy when shoppers tap (INP) and inject banners and widgets that push content down (CLS). Our overview of Core Web Vitals in 2026 explains each metric in more depth.

Step 1: Measure the real baseline

Start with real-user data, not a single lab test. Shopify's web performance report shows your store's LCP, INP and CLS based on real visits over the past 30 days, rated Good, Moderate or Poor. You'll find it under Online Store or Analytics, Reports, and you need the Reports staff permission to view it (Shopify Help Center).

Then run PageSpeed Insights on your three most important templates: the homepage, a top collection and your best-selling product page. Save the reports so you can compare after each change. Always look at the mobile results first.

Step 2: Build an app and script inventory

Open a spreadsheet and list every installed app. For each one, record:

  • What it does and who in the team relies on it.
  • Whether it loads anything on the storefront, and on which pages.
  • What it costs per month.
  • Whether a native Shopify feature or your theme could do the same job.

To see what actually loads, open your product page in Chrome, then DevTools, Network tab, filtered to JS. Sort by size and look at the domains. Each unfamiliar domain should map to an app on your list. The Coverage tab in DevTools also shows how much of each script is actually used on that page.

It is common to find scripts from apps that were uninstalled months ago, duplicated tracking pixels and review or chat widgets loading on every page, including the cart.

Step 3: Decide keep, replace, defer or remove

DecisionWhenExample
KeepThe app drives revenue or operations and is already efficientYour reviews app, loading only on product pages
ReplaceShopify or your theme now does the job nativelyA filter app replaced by Shopify's Search & Discovery app
DeferThe feature is needed, but not in the first secondsA chat widget that loads only when the shopper taps a chat button
RemoveNobody uses it, or its value doesn't justify the costA countdown timer app from last year's sale

Common replacements that keep the feature

  • Filters and search: Shopify's free Search & Discovery app handles storefront filters, synonyms and product recommendations, which may let you drop a heavier third-party filter app. Check its limits for large catalogues first.
  • Trust badges, size charts and USP blocks: build them as theme sections or blocks fed by metafields. They render with the page and add no extra script.
  • Announcement bars and simple pop-ups: most modern themes include these natively.
  • Tracking pixels: move them to Shopify's customer events (app pixels or custom pixels) and remove any hard-coded duplicates from theme.liquid.
  • Free shipping bars: a few lines of theme code using the cart total can replace a dedicated app.

Each replacement should be tested on a duplicate theme before going live, with the same content and behaviour as the app it replaces.

Step 4: Clean up what apps leave behind

Uninstalling an app doesn't guarantee its code is gone. Shopify's own guidance says some apps add code to your theme that isn't automatically removed when you uninstall, and recommends checking with the developer for any extra steps (Shopify Help Center).

  1. Duplicate your live theme before editing anything.
  2. Check the theme editor's App embeds panel and switch off embeds for apps you no longer use.
  3. Search the code in theme.liquid, snippets and assets for the app's name or domain. Look for render tags pointing to old app snippets.
  4. Remove the leftovers on the duplicate theme, preview every template, then publish.
  5. Re-run your measurements and record the change.

Check for legacy script tags before 2027

Older apps inject scripts through Shopify's ScriptTag API. Shopify has announced that from 1 October 2026 apps can no longer create or update script tags (existing ones keep running), and that on 1 March 2027 Shopify will stop injecting script tags into storefronts altogether (Shopify developer changelog). Any feature that still depends on a script tag will stop working then, so this is a good moment to ask each app developer whether they have moved to theme app extensions or app embeds, and to replace those that haven't.

Step 5: Optimise what you keep

Once the bloat is gone, tune the remaining pieces:

  • Load apps only where needed. A reviews widget belongs on product pages, not the cart. Many app embeds and blocks can be limited to specific templates.
  • Delay non-essential widgets until interaction or until the page is idle: chat, social feeds, loyalty launchers and exit-intent pop-ups.
  • Prioritise the LCP image. Don't lazy-load the first product or hero image, and serve responsive sizes with Shopify's image_url filter and srcset so phones don't download desktop-sized images.
  • Reserve space for review stars, badges and banners so they don't shift layout when they load.
  • Limit fonts to one or two families and the weights you actually use.
  • Swap sliders for static layouts where the carousel isn't earning its weight, especially in the homepage hero.

A worked example

Consider an illustrative store running 28 apps. The inventory shows six apps that are uninstalled but still loading code, two separate apps both installing the Meta pixel, a chat widget on every page and a filter app that Search & Discovery could replace. The plan:

  1. Remove leftover code from the six uninstalled apps and the duplicate pixel.
  2. Replace the filter app and the free shipping bar app with native features.
  3. Delay the chat widget until a shopper taps "Chat with us".
  4. Limit the reviews app to product pages.

No customer-facing feature is lost, the monthly app bill drops and there are far fewer scripts competing with the product image on mobile. The exact speed gain will vary by store, which is why you measure before and after each step rather than relying on predictions.

Keep it from creeping back

  • Make one person responsible for approving new apps.
  • Test every new app on a duplicate theme and record its impact on your key templates.
  • Review the app list and the web performance report monthly.
  • Remove campaign apps as soon as the campaign ends.

Get a faster store without losing features

Speed work is part developer discipline and part business decision about which features earn their place. If you'd like an experienced team to audit your apps, clean up theme code and rebuild features natively, talk to our Shopify development team. For a broader look at which apps are worth keeping, see our Shopify automation stack for 2026.

Frequently asked questions

Shopify's infrastructure is fast, but everything added on top affects speed: third-party app scripts, tracking pixels, large unoptimised images, heavy sliders and custom fonts. Leftover code from uninstalled apps is a frequent culprit. Auditing scripts on your key templates usually reveals where the time is going far better than changing themes.

Duplicate your theme, then check the App embeds panel in the theme editor and switch off anything unused. Search theme.liquid, snippets and assets for the app's name or domain, and look for render tags pointing to old snippets. Remove them on the duplicate, preview every template and publish only once everything works.

Google's published targets are LCP of 2.5 seconds or less, INP of 200 milliseconds or less and CLS of 0.1 or less, measured at the 75th percentile of real visits. Shopify's web performance report shows your store's real-user results against these thresholds, so use it to track progress over time.

It can if you remove something another feature depends on, which is why you should work on a duplicate theme and preview every template before publishing. Check with your team what each app is used for, and replace features before removing the app. Test cart, checkout and tracking after every change.

Shopify has announced that from 1 October 2026 apps can no longer create or update script tags, though existing ones keep running. On 1 March 2027 Shopify will stop injecting script tags into storefronts. Features that still rely on them will stop working, so ask app developers whether they've moved to app embeds.

Want this applied to your store?

Get a free audit of your biggest conversion and SEO leaks, or size the upside with our CRO calculator first.