Why this is hard to figure out manually
Shopify's admin shows you a list of installed apps. Lighthouse shows you a performance score. Neither tells you which app contributed which milliseconds of blocking time, and that's the information you actually need.
The naive approach ("just uninstall them one at a time and re-run Lighthouse") takes hours, breaks your storefront features in unpredictable ways, and produces noisy results because Lighthouse scores vary ±5–10 points between runs. There's a better way.
Manual
Chrome DevTools workflow
- ~45 minutes per audit
- Requires DevTools knowledge
- Per-page only (no aggregation)
- You map scripts to apps yourself
Automated
Store Auditor
- ~90 seconds per audit
- One-click install from Shopify
- Every page, mobile + desktop
- Apps named in the report
The manual method: Chrome DevTools
If you only need to do this once, or you're comfortable in DevTools, here's the workflow. Five steps.
1. Set DevTools to mobile emulation
Open your storefront homepage in Chrome incognito (no extensions).
Open DevTools (Cmd+Opt+I on Mac, Ctrl+Shift+I
on Windows). Click the device toolbar icon (top-left) to switch to
mobile emulation. Pick "Moto G Power" or any 4× CPU throttling
preset. Desktop will lie to you about how bad mobile is.
2. Record a Performance trace
Open the Performance tab. Click the reload icon (circular arrow) to record a fresh page load. Wait until the storefront finishes loading + the spinner stops. Click Stop.
3. Find the "Long Tasks" in the main thread
Look at the Main row in the timeline. Long horizontal bars (>50ms) are tasks blocking your storefront from being interactive. Click each long bar to see what called it: typically a third-party script.
4. Identify the script host
Switch to the Network tab. Filter to JavaScript only. Sort by
Initiator. Each blocking script will have a host like
klaviyo.com, static.judgeme.io,
tagmanager.google.com. Note the hosts.
5. Map hosts to apps
Open your Shopify admin → Apps page. Cross-reference each script
host against your installed apps. Some are obvious
(klaviyo.com = Klaviyo). Some are harder
(cdn-shop-judgeme-2.b-cdn.net = Judge.me, but only if
you recognize the CDN pattern). Anything you can't map is
"unattributed".
Repeat for product, collection, and cart pages. Now you have a rough map of which apps are loading which scripts. The blocking time per app is the sum of the long tasks attributed to that app's scripts.
Real talk: this is what Store Auditor automates. The fingerprint database we maintain covers ~94% of the apps a typical Shopify store has installed. The remaining 6% gets labeled "unattributed third-party" so you can investigate manually.
The automated method: Store Auditor
Same idea, 90 seconds. One install, every page, both mobile and desktop, every blocking script mapped to a named app.
- Install Store Auditor from the Shopify App Store. Free plan available.
- On the dashboard, click Run scan. We hit your homepage, product, collection, and cart pages with Lighthouse 13 on mobile and desktop.
- Read the ranked list. Each row is a specific installed app, with its blocking time, severity, and a recommended fix.
- Apply the top recommendation. Re-scan. Verify the gain.
What to do with the list
Critical-severity apps are the ones worth touching first. Typically these are analytics scripts (GA4, Meta Pixel) that should move to Shopify Web Pixels, or marketing automation scripts (Klaviyo, Omnisend) that should be deferred.
High-severity apps are usually review widgets (Judge.me, Yotpo, Loox) that can be lazy-loaded below the fold. Medium-severity apps are usually chat widgets (Tidio, Gorgias, Intercom) that should trigger on user intent rather than page load. Low-severity is usually fine to ignore: fix the top before the bottom.
Run the audit on your store and see the named list:
Install Store Auditor free