Shopify app speed audit: how to find which apps are slowing your store

Shopify stores get slow for one main reason: too many apps loading scripts on the storefront. Each app injects JavaScript, CSS, and sometimes web fonts. Twenty installed apps can mean 30 to 50 separate script downloads on a single product page. Largest Contentful Paint (LCP) drifts from 1.8 seconds to 3.5 seconds, mobile conversion rates drop, paid ad CPAs climb, and the merchant has no idea which app is the culprit. The Shopify app speed audit is the systematic way to find out.
This post walks through the audit we run during onboarding when a merchant asks “why is my store slow?” The process takes 30 to 90 minutes depending on store complexity. The output is a ranked list of apps by performance impact, plus a recommendation: keep, replace, or remove.
In this guide
- Why apps slow Shopify stores
- Step 1: Establish baseline metrics
- Step 2: Chrome DevTools network audit
- Step 3: Shopify Web Performance dashboard
- Step 4: Disable + retest each app
- Step 5: Build the audit output
- Remediation: keep, replace, or remove
- Prevention: app install hygiene
- FAQ
- Related reading
Why apps slow Shopify stores
Three patterns. First, render-blocking scripts. The app injects a JS file in the document head that has to download and execute before the browser can render the page. One render-blocking script costs about 100 to 300 milliseconds at LCP.
Second, layout shift. The app injects content (a popup, a swatch widget, a review block) after the page renders, causing visual elements to move. This is Cumulative Layout Shift (CLS), one of the three Core Web Vitals.
Third, third-party domain proliferation. Each app makes calls to its own backend, and each new domain requires a DNS lookup, TLS handshake, and HTTP connection. Twenty apps can mean fifteen separate third-party domains. Each one adds 50 to 200 milliseconds.
Step 1: Establish baseline metrics
Before you start poking around, get a baseline. Run PageSpeed Insights (pagespeed.web.dev) on your home page, a typical product page, and a typical collection page. Record:
- LCP (Largest Contentful Paint) target: under 2.5s
- FID / INP (Interaction to Next Paint) target: under 200ms
- CLS (Cumulative Layout Shift) target: under 0.1
- Total bytes transferred
- Number of third-party scripts
If LCP is under 2.5s and CLS is under 0.1, your store is probably fine. If LCP is over 3.5s on mobile, you have a real speed problem and the audit below is worth running.
Step 2: Chrome DevTools network audit
Open the product page in incognito mode. Open DevTools → Network. Reload. Sort by file size, then by domain.
What to look for:
- Third-party JS files larger than 100kb (these are usually the worst offenders)
- Multiple separate calls to the same third-party domain (often means an app loading dynamically)
- Render-blocking resources (marked with the document load timing in DevTools)
- Web fonts loading from third-party domains (each one adds 100ms+)
Note the third-party domain for each large file. You can usually identify the app from the domain (e.g., cdn.shopify-loox.com = Loox, dyn.privy.com = Privy, cdn.judge.me = Judge.me).
Step 3: Shopify Web Performance dashboard
Shopify admin → Online Store → Themes → Customize → top-right “Speed” tab. Or directly: admin → Analytics → Reports → Online store speed.
This dashboard shows the speed score for your storefront, broken down by page type. Compare it to similar stores. If you see “Apps adding the most weight” or similar, Shopify will sometimes call out specific apps that are slowing things down. Take that list seriously.
Step 4: Disable + retest each app
The most accurate audit method: temporarily disable each suspect app and re-run PageSpeed Insights.
- List your top 10 apps by perceived weight (the big ones from step 2)
- For each: disable the app embed in Theme Editor → App Embeds, save the theme
- Re-run PageSpeed Insights on a product page
- Record LCP, INP, CLS, total bytes
- Re-enable the app, move to the next one
You will quickly find the 1 to 3 apps responsible for most of the slowdown. They are usually heavy review apps, page builders, popup apps, and live chat widgets.
Step 5: Build the audit output
For each app, document:
- App name and category
- JS bytes added on the storefront
- LCP impact (delta when disabled)
- Business value (revenue attributed, conversions, hours saved)
- Recommendation: keep, replace, or remove
Remediation: keep, replace, or remove
- Keep if the app drives meaningful revenue or operational savings, even if it costs LCP. Email apps and review apps usually fall here.
- Replace if a faster app exists in the same category. Switching from a heavy popup app to a lighter one (Privy → built-in pop-ups, or moving Yotpo → Loox or Judge.me) is a common pattern.
- Remove if the app is unused, low-impact, or the feature is now native to Shopify. Many merchants have apps installed they forgot about.
For variant image apps specifically, both Rubik Variant Images and Rubik Combined Listings are metafield-based with no external API calls. They load with the page itself, which keeps LCP impact minimal. Older variant image apps that load data via external API calls add 200 to 500ms per page; switching saves real time.
Prevention: app install hygiene
- Cap your active app count at 15 to 20 max. Above that, performance degrades fast.
- Before installing a new app, check the app’s storefront JS size on its listing page (Shopify shows this).
- Uninstall apps you stopped using. Even uninstalled apps sometimes leave residual code in your theme.
- Run a quarterly speed audit. Apps add weight over time as they ship features.
- Prefer apps marked “Built for Shopify”. They meet Shopify’s performance standards.
For more on app stack management, the app stack audit guide covers the broader operational review.
FAQ
How many apps is too many?
15 to 20 is the sweet spot. Above 25, almost every store we audit has measurable speed problems. The number matters less than which apps; one heavy app can outweigh ten lightweight ones.
Which app categories tend to be slowest?
Page builders (PageFly, Shogun), review apps (Yotpo, Stamped), live chat (Tidio, Gorgias), and popups (some implementations) tend to load the most JavaScript. Variant image apps that use external APIs are also heavy; metafield-based ones (like Rubik) are not.
What’s a good LCP target?
Under 2.5 seconds on mobile. 2.5-4s is “needs improvement.” Above 4s is poor and meaningfully impacts conversion and SEO.
Does Shopify’s “Online Store Speed” score matter?
It’s a directional indicator. The actual Core Web Vitals from PageSpeed Insights are more accurate for SEO and conversion impact. Shopify’s score correlates loosely with real user metrics.
Can I disable apps temporarily without losing data?
Yes. Disabling an app embed in Theme Editor only stops it from loading on the storefront. The app data and configuration stay intact. Re-enable to restore.
Should I use AMP for product pages?
No. Shopify doesn’t natively support AMP, and Google has deprioritized AMP for search ranking. Focus on Core Web Vitals on your standard pages.