Speed Impact Analysis · March 2026

Shopify Apps That Slow Down Your Store: 8 Categories to Audit (2026)

Your apps are probably costing you more in lost sales than their subscription fee. Here's which app categories add the most JavaScript to your storefront — and what to do about it without uninstalling everything.

~14 min read · 3,400 words · Published March 2026

You installed an app to solve a problem. It worked. Then you installed another. And another. Now your speed score is in the 20s and you're wondering what happened.

Here's the truth: it's not any single app that tanks your speed. It's the accumulation of JavaScript from multiple apps, each adding their own scripts, stylesheets, and tracking pixels to every page load. Let's break down exactly which apps are the heaviest offenders and what you can do about it.

How Shopify Apps Actually Slow Down Your Store

When you install a Shopify app that adds functionality to your storefront (a review widget, a chat bubble, a popup), it injects JavaScript and CSS into your theme. This happens on every single page load — not just the pages where the feature is visible.

The problem is how these scripts load. Many app scripts are render-blocking — meaning the browser stops rendering your visible page until the app script finishes downloading and executing. A review widget script that takes 800ms to load? That's 800ms your customer stares at a blank or half-loaded page.

The script loading chain:

  1. Browser requests your page HTML
  2. Browser finds app script tags in the HTML
  3. Browser downloads each script (200-500ms per app, depending on size)
  4. Browser executes each script (100-300ms per app)
  5. Only then does the visible page finish rendering

With 5 apps injecting synchronous scripts, you could add 1.5-4 seconds to every page load. That's the difference between a store that converts and one that bounces.

There are three types of speed impact:

JS Weight

The raw size of JavaScript the app adds. Measured in KB. Anything over 100KB is significant.

Render Blocking

Whether the script blocks page rendering. Synchronous scripts in the <head> are the worst. Async/deferred scripts at the bottom are better.

Network Requests

Extra HTTP requests the app makes (API calls, font loads, image fetches). Each request adds latency, especially on mobile networks.

The 8 Worst App Categories for Shopify Speed

These are the app categories that most consistently hurt speed scores across the hundreds of Shopify stores we've analyzed. For each, we show the typical JavaScript weight, why it's heavy, and faster alternatives.

1. Live Chat Widgets

🔴 200-400KB JS 🔴 Always loads

Heavy offenders: Tidio (~350KB), Zendesk Chat (~300KB), Intercom (~400KB+), Drift (~380KB). These apps load their full chat widget JavaScript on every page, even if no visitor ever clicks the chat button. They also establish persistent WebSocket connections for real-time messaging.

Faster alternatives: Shopify Inbox (built-in, minimal script weight), Chatra (lazy-loads the widget), or Gorgias (loads chat only when triggered). Even better: use Thunder to defer the chat widget script so it loads after the page renders — visitors see the page instantly, the chat bubble appears a moment later.

2. Photo & Video Review Apps

🔴 150-500KB JS 🟡 Product pages

Heavy offenders: Yotpo (~300-500KB with their full suite), Stamped.io (~200KB), Loox (~180KB). The main culprit is image gallery widgets that load multiple customer photos eagerly, plus JavaScript for star ratings, carousels, and review forms.

Faster alternative: Judge.me is the speed champion in this category — lightweight scripts, lazy-loaded images, and a generous free plan. Read our best Shopify apps roundup for a detailed comparison.

3. Popup & Email Capture Tools

🟡 100-300KB JS 🔴 Always loads

Heavy offenders: Privy (~250KB), OptinMonster (~200KB), Justuno (~280KB). Popup apps load their full rendering engine and targeting rules on every page, even if the popup only shows once per session or on exit intent. Many also load additional fonts and images for the popup design.

Faster alternatives: Shopify Forms (built-in, minimal weight), Klaviyo's built-in popups (if you're already using Klaviyo for email), or use Thunder to defer the popup scripts until after the page loads. The popup doesn't need to be ready in the first 100ms — it fires after the visitor has been on the page for a while anyway.

4. Page Builders

🔴 200-600KB JS + CSS 🟡 Builder pages

Heavy offenders: PageFly (~300-400KB), GemPages (~350KB), Zipify Pages (~250KB). Page builders add their own CSS framework and JavaScript rendering engine on top of your theme's existing code. The overhead is especially noticeable on mobile where both the theme CSS and the builder CSS compete.

Faster alternative: Use your theme's built-in sections and blocks. Shopify Online Store 2.0 themes have flexible section-based editing that covers 80% of what page builders do — without any extra JavaScript. If you need a builder, Shogun's code output is slightly cleaner than PageFly's.

5. Analytics & Session Recording Tools

🟡 100-250KB JS 🔴 Always loads

Heavy offenders: Hotjar (~120KB + continuous DOM tracking), Lucky Orange (~180KB), FullStory (~200KB+). Session recording tools track every mouse movement, scroll, and click — which requires a persistent JavaScript process running throughout the entire visit. Read our analysis of whether Hotjar slows down Shopify.

Faster alternative: Microsoft Clarity — free, unlimited sessions, and slightly lighter than Hotjar. Or use Shopify's built-in analytics for basic behavior data. Thunder can defer these tracking scripts so they load after the page renders.

6. Social Proof & Urgency Widgets

🟡 80-200KB JS 🔴 Always loads

Heavy offenders: FOMO (~150KB), Sales Pop (~120KB), countdown timer apps (~80-150KB). These apps display "Someone in New York just bought..." notifications, fake urgency counters, and trust badges. Most load their scripts on every page even though the notifications are simple DOM elements.

Faster alternative: Many of these are also questionable from a conversion standpoint — fake urgency can erode trust. If you want real social proof, use Judge.me review counts or your actual conversion data. If you insist on popup notifications, defer them with Thunder.

7. Currency Converters & Translation Apps

🟡 100-200KB JS 🟡 Every page

Heavy offenders: BEST Currency Converter (~120KB), Weglot (~150KB with translation API calls), Langify (~130KB). Currency apps need to scan and modify every price element on the page. Translation apps need to swap text content. Both require JavaScript that runs after the DOM loads, potentially causing visible content shifts (CLS issues).

Faster alternative: Use Shopify Markets for multi-currency — it handles currency conversion server-side, so there's no client-side JavaScript or content shift. For translation, Shopify's native multi-language feature is lighter than third-party apps.

8. Loyalty & Rewards Programs

🟡 150-300KB JS 🔴 Always loads

Heavy offenders: Smile.io (~200KB), LoyaltyLion (~250KB), Yotpo Loyalty (~300KB+). Loyalty widgets load a floating launcher button, points display, and reward panel on every page. The widget itself is often an iframe with its own CSS and JavaScript bundle.

Faster alternative: Consider whether you actually need a visible loyalty widget on every page. Many loyalty apps let you disable the floating widget and use a dedicated "/rewards" page instead — eliminating the storefront script entirely. Thunder defers loyalty widget scripts effectively since they don't need to load until the visitor interacts with them.

How to Audit Your Shopify Apps for Speed Impact

Before you start removing apps, figure out which ones are actually causing the problem. Here's the process:

Step 1: Run a Baseline Speed Test

Test your store speed and note your current score. Test both your homepage and a product page (product pages usually have more app scripts).

Step 2: Identify All Storefront Scripts

Use our Shopify Analyzer or open Chrome DevTools (F12) → Network tab → filter by "JS" → reload. Count how many script files load and note their sizes. Anything from a domain that isn't cdn.shopify.com or your own domain is likely an app script.

Step 3: Match Scripts to Apps

Most app scripts load from recognizable domains: *.klaviyo.com, *.hotjar.com, *.judge.me, *.tidio.co, etc. Map each script to its app and note the file size. Create a simple list: App Name → Script Size → Render Blocking (yes/no).

Step 4: Decide — Remove, Replace, or Defer

For each app, ask: (1) Is this app generating measurable value (revenue, conversions, customer satisfaction)? If no → remove it. (2) Is there a lighter alternative? If yes → consider switching. (3) Can the script be deferred? If yes → install Thunder and let it handle the deferral automatically.

Fix the Speed Problem Without Removing Apps

Here's the thing most "remove your apps" advice misses: you installed those apps for a reason. Reviews drive conversions. Email capture grows your list. Live chat reduces pre-purchase friction. Removing them to hit a speed score target is optimizing for the wrong metric.

The better approach: keep the apps that deliver value, but change how their scripts load.

⚡ The Thunder Approach

Thunder Page Speed Optimizer automatically defers app scripts so they load after your visible page renders. Instead of blocking the page load, app scripts download and execute in the background once the customer can already see and interact with your store.

This means: your review widget still works, your chat bubble still appears, your popups still fire — but your page loads in 2 seconds instead of 5. Average improvement: +27 points on PageSpeed Insights.

See how Thunder's script deferral works →

Other optimization steps you can take alongside Thunder:

  • Disable app features you don't use. Many apps have toggles for individual widgets. Turn off features you enabled "just in case."
  • Limit apps to specific pages. Some apps let you choose where their widget appears. Show your review widget only on product pages, not the homepage.
  • Remove duplicate functionality. Two review apps? Two popup tools? Pick one and remove the other entirely.
  • Check for leftover scripts from apps you've already uninstalled.

The Hidden Problem: Leftover Code From Deleted Apps

You uninstalled an app, but your store is still slow. Sound familiar? Many Shopify apps inject code snippets into your theme files during installation — and they don't clean up when you uninstall.

Common places leftover app code hides:

  • theme.liquid — Script tags in the <head> or before </body>. Look for app-specific comments like <!-- Begin AppName --> or script src URLs from app domains.
  • Snippets folder — Files named after apps: app-name.liquid, app-name-script.liquid. If you've uninstalled the app, these are dead weight.
  • Assets folder — CSS and JS files uploaded by apps. These don't auto-delete on uninstall.
  • Layout files — Some apps modify checkout.liquid or other layout files.

How to clean it up: Go to Online Store → Themes → Edit Code. Search your theme.liquid file for script tags that reference domains of apps you've removed. Check the Snippets folder for orphaned app files. If you're not comfortable editing theme code, our speed optimization service includes a full cleanup of leftover app code.

We've seen stores recover 10-20 points on PageSpeed Insights just by cleaning up leftover code from 3-4 uninstalled apps. It's one of the quickest wins in speed optimization.

Your theme matters too — some themes handle app scripts better than others. Check our Shopify theme speed comparison to see how 68 themes rank by real-world CWV data. And for the full picture of how apps affect the broader Shopify ecosystem, our 2026 Shopify Speed Report shows that third-party scripts account for 62% of total JavaScript on the average store.

Quick Reference: App Speed Impact Chart

App Category Typical JS Weight Speed Impact Faster Alternative
Live Chat 200-400KB High Shopify Inbox, Chatra
Reviews (Photo/Video) 150-500KB High Judge.me
Popups/Email Capture 100-300KB Medium-High Shopify Forms, Klaviyo built-in
Page Builders 200-600KB High Theme sections (OS 2.0)
Analytics/Heatmaps 100-250KB Medium Microsoft Clarity
Social Proof/Urgency 80-200KB Medium Judge.me review counts
Currency/Translation 100-200KB Medium Shopify Markets
Loyalty/Rewards 150-300KB Medium-High Dedicated page vs. widget

*All categories can be mitigated with Thunder's automatic script deferral.

Frequently Asked Questions

How do I know which Shopify apps are slowing down my store?

Three methods: (1) Use Thunder's Shopify Analyzer at thunderpagespeed.com/tools/shopify-analyzer/ to see every script loading on your storefront and which apps they belong to. (2) Open Chrome DevTools → Network tab, filter by JS, and sort by size to find the heaviest scripts. (3) Temporarily disable apps one at a time and re-run PageSpeed Insights to measure the score change each app causes. The app with the biggest score drop is your worst offender.

Do uninstalled Shopify apps still slow down my store?

Yes, this is a common problem. Many apps inject code into your theme's liquid files during installation and don't fully clean up when you uninstall them. Check your theme code (especially theme.liquid, header, and footer snippets) for leftover script tags from apps you've removed. Also check the Snippets folder in your theme editor for orphaned app files. Removing leftover code can recover 5-15 points on your speed score.

Is it better to have fewer Shopify apps?

Not necessarily. What matters is the quality of the apps, not the quantity. A store with 20 well-optimized apps (using Thunder to defer their scripts) can be faster than a store with 5 poorly-coded apps. That said, each app adds complexity and potential script weight. The rule: keep apps that deliver measurable value, remove ones you installed to 'try' but never configured properly.

Can Thunder fix the speed impact of heavy apps?

Thunder significantly reduces the speed impact of most apps by deferring their JavaScript loading until after the initial page render. Instead of blocking your page from loading while app scripts download and execute, Thunder ensures the visible page loads first, then loads app scripts in the background. This typically recovers 15-30 points on PageSpeed Insights. However, Thunder can't fix apps that inject excessive inline CSS or modify the DOM before render — those require lighter alternatives.

What types of Shopify apps have the biggest speed impact?

The heaviest app categories are: (1) Live chat widgets — they load large JavaScript bundles and establish WebSocket connections on every page, (2) Review apps with photo/video galleries — especially those that load all review images above the fold, (3) Pop-up and email capture tools — particularly those with complex targeting rules that evaluate on every page load, (4) Page builders — they add their own CSS and JavaScript frameworks on top of your theme, and (5) Analytics/heatmap tools that record sessions — they track every mouse movement and click.

Should I avoid apps that show the red 'impacts speed' badge on the App Store?

Not automatically. Shopify's speed impact badge is a rough indicator, not a precise measurement. Some apps with the badge have minimal real-world impact, while some without it still add significant JavaScript. The badge is based on whether the app injects storefront scripts — which most useful apps need to do. Instead of avoiding all flagged apps, use Thunder to defer their scripts and test your speed before and after installation.

Keep Your Apps. Fix Your Speed.

Thunder defers app scripts automatically so you get the functionality without the speed penalty. No code changes, no theme edits, no removing the apps that drive your business. Average improvement: +27 points.

Install Thunder Free →

Free plan available · No credit card required · 30-second install · See pricing