You installed a reviews app, a currency converter, an upsell popup, a countdown timer, a loyalty programme, and an analytics tracker. Your Shopify store now takes 6 seconds to load, your Core Web Vitals are failing, and you're wondering why your conversion rate dropped. The answer is almost certainly your apps.
Every Shopify app you install has the potential to inject JavaScript, CSS, and third-party requests into your storefront. Some apps are well-optimised and add minimal overhead. Others add hundreds of kilobytes of render-blocking scripts to every single page load. The problem is that Shopify doesn't tell you which is which.
How Shopify Apps Affect Your Page Speed
When you install a Shopify app that affects your storefront, it typically adds resources in one or more of these ways:
1. Theme App Extensions and App Blocks
Modern Shopify apps use Theme App Extensions to inject functionality into your store. These are the "right" way to add storefront features — they load through Shopify's infrastructure and can be managed from the theme editor. However, even well-built app blocks add JavaScript and CSS that contribute to your total page weight.
2. ScriptTag API (Legacy)
Older apps use the ScriptTag API to inject JavaScript files into every page of your store. This is the most common source of performance problems because:
- Scripts load on every page, even pages where the app's functionality isn't needed
- Scripts are often render-blocking, meaning the browser can't display your page until they've downloaded and executed
- Multiple apps using ScriptTag can create a waterfall of blocking requests that compounds load times
- Some apps load additional third-party scripts (analytics, fonts, CDN resources) that add further latency
3. Inline Liquid Code
Some apps inject Liquid snippets directly into your theme files during installation. These can add inline CSS, JavaScript, and HTML to your pages. The concern here isn't just performance — it's that uninstalling the app may not fully remove these code injections, leaving orphaned scripts behind.
The Real Cost: Core Web Vitals and Conversions
Google's Core Web Vitals — Largest Contentful Paint (LCP), Cumulative Layout Shift (CLS), and Interaction to Next Paint (INP) — are ranking factors. They're also direct indicators of user experience. Here's how bloated apps affect each metric:
Largest Contentful Paint (LCP)
LCP measures how long it takes for the largest visible element to render. Every render-blocking script an app adds pushes this number higher. Google considers a good LCP to be under 2.5 seconds. A store with five poorly-optimised apps can easily push LCP past 4 seconds — into the "poor" range that affects search rankings.
Interaction to Next Paint (INP)
INP replaced First Input Delay (FID) as a Core Web Vital in 2024. It measures how responsive your page is to user interactions. Heavy JavaScript from multiple apps creates long tasks on the main thread that block user input processing. When a customer taps "Add to Cart" and nothing happens for 300ms, that's INP failure — and it's usually caused by JavaScript from installed apps competing for execution time.
Cumulative Layout Shift (CLS)
Apps that inject visual elements — review widgets, trust badges, popup overlays, notification bars — frequently cause layout shifts as they load asynchronously. The page renders, the customer starts reading, and then elements jump around as app widgets appear. Google penalises this, and customers find it frustrating.
The Conversion Impact
Multiple studies have shown that page speed directly correlates with conversion rate. Research from Google and Deloitte indicates that a 0.1-second improvement in mobile site speed can increase conversion rates by up to 8%. For a Shopify store doing £50,000/month in revenue, that could mean thousands of pounds in additional sales — just from removing app bloat.
How to Identify Which Apps Are the Problem
Method 1: Chrome DevTools Network Tab
Open your store in Chrome, press F12, go to the Network tab,
and reload the page. Filter by JavaScript files. Look for scripts that aren't part of
your theme — they'll typically have URLs containing the app's domain or Shopify's CDN
with app-specific paths. Note the file sizes and load times.
Method 2: Shopify Theme Inspector
Shopify's built-in Theme Inspector for Chrome shows you how long each Liquid component takes to render on the server side. While it doesn't measure client-side JavaScript impact, it reveals which app blocks are adding server-side rendering time to your pages.
Method 3: The Disable-and-Measure Approach
The most reliable method is to temporarily disable apps one at a time and measure the impact using Google PageSpeed Insights or Lighthouse. This is tedious but gives you definitive answers:
- Run a Lighthouse audit with all apps enabled — record your LCP, INP, CLS, and Performance score
- Disable one app (or toggle off its theme blocks)
- Run Lighthouse again and compare the scores
- Re-enable that app and repeat for the next one
This process reveals exactly how many points each app costs you. You'll often find that one or two apps are responsible for 80% of the performance degradation.
Method 4: Google PageSpeed Insights
PageSpeed Insights provides both lab data (simulated) and field data (real user measurements from the Chrome User Experience Report). The "Reduce unused JavaScript" and "Eliminate render-blocking resources" sections will often call out specific app scripts by URL.
What to Do About It
Audit Your Installed Apps
Start by listing every app installed on your store. For each one, ask:
- Is it actively being used? Many stores have apps installed from months ago that nobody uses anymore. Uninstall them.
- Does it add storefront scripts? Some apps only operate in the admin (like bulk editors or reporting tools) and have zero storefront impact. These are fine to keep.
- Is there a lighter alternative? If you're using a heavyweight app for a simple feature, there might be a more performance-conscious option or even native Shopify functionality that does the same thing.
- Can it be loaded conditionally? Some apps let you choose which pages they load on. A reviews widget only needs to load on product pages, not your homepage or collection pages.
Remove Orphaned Code
When you uninstall a Shopify app, it should clean up after itself — but many don't.
Check your theme's layout/theme.liquid file and snippets/
folder for references to apps you've already removed. Orphaned
<script> tags and Liquid snippets from uninstalled apps are dead
weight that still affects your page load time.
Prioritise Native Shopify Features
Shopify has been rapidly adding native functionality that eliminates the need for third-party apps:
- Shopify Markets — replaces many currency converter apps
- Shopify Forms — replaces contact form apps
- Built-in discount functions — replaces simple discount apps
- Metafields and metaobjects — replaces some custom field apps
- Shopify Search & Discovery — replaces some product recommendation apps
Every app you can replace with native functionality is one less set of scripts loading on your storefront.
Choose Performance-Conscious Apps
When you do need third-party apps, look for ones that:
- Use Theme App Extensions instead of ScriptTag API
- Load scripts asynchronously (with
asyncordeferattributes) - Only load on pages where they're needed
- Minimise third-party requests
- Publish their performance impact transparently
The Bigger Picture
Shopify store performance isn't just a technical concern — it's a business one. Every 100ms of additional load time costs you customers. Every failing Core Web Vital pushes you down in Google search results. Every layout shift erodes the trust you've worked to build with your brand.
The apps you install should add more value than the performance they cost. A reviews app that drives social proof and increases conversion by 15% is worth the 80KB of JavaScript it adds. A countdown timer that nobody clicks on is not.
Measure, evaluate, and be ruthless about what stays installed on your store. Your customers — and your search rankings — will thank you.