How do you indentify which app or script is slowing down a shopify store?
Hello @olivianewuser123 Analytics > Reports > Online store speed has a chart with markers for every app install/uninstall, click one to see which app it was and whether your score moved. For anything not caught there, open Chrome DevTools > Network, filter to JS, sort by size or time, and check the Initiator column, it traces the request back to the app’s asset. You can also toggle app embeds off one at a time in Theme Editor > App embeds and re-run PageSpeed Insights between each to isolate the slow one.
I usually start with Chrome DevTools and look at the Network tab, especially the JS files that are loading on the storefront. You can often identify the app from the script URL or filename, then disable apps one at a time in a duplicate theme to see what actually changes.
I also use SiteGuru to catch the broader technical issues, but for app specific speed problems I think you need to look at the actual scripts and when they load. A lot of Shopify stores have 20+ apps installed and the slowdown is usually a combination of several small scripts rather than one obvious culprit.
The tricky part is figuring out whether a script is actually hurting the customer experience or just showing up in the waterfall. Something can add a few hundred KB but have almost no noticeable impact, while a smaller script that blocks the main thread can be much worse.
Good suggestions above. I’d add GTmetrix, mainly because the waterfall is easier to read than DevTools and you can save reports to compare before and after switching an app off.
One thing I’d watch: don’t judge apps by file size. Total Blocking Time is usually what matters. I’ve seen a 300KB script cost almost nothing and a 40KB one freeze the main thread because it does heavy work right on load. Also worth testing with mobile throttling, desktop numbers hide most of it.
And keep in mind not every app loads through the theme. Older ones use the ScriptTag API, so they never show up under App embeds. Same with leftover snippets from apps that were uninstalled long ago, those often keep loading for nothing.
@olivianewuser123 The Online store speed report is useful for the before/after of installs, but it misses scripts that were left behind after an uninstall.
What I do on a live store:
- Duplicate the theme.
- Theme editor → App embeds: turn every embed off. Publish the copy to a password page or preview and time the PDP and collection on a real phone.
- Turn embeds back on one at a time. The one that jumps TBT or LCP is your culprit.
- Chrome DevTools → Network → JS, reload with mobile throttling. Sort by time. The initiator column usually names the app CDN.
- Search the theme for leftover snippets from apps you already removed. Uninstall does not delete theme code. Those orphans keep loading forever.
Do not trust the Lighthouse score alone. Field data in Search Console is what customers feel, and it lags. If you share a storefront URL I can tell you whether it looks like embeds, leftovers, or a fat theme loop.
The most effective method is to test each app individually on a duplicate theme. This gives you the clearest before-and-after comparison without affecting your live store.
Here’s how:
- Duplicate your current theme.
- Open the duplicate in the Theme Editor and go to App embeds.
- Disable one app embed at a time.
- Preview the theme and test the same page using Shopify’s web performance report, PageSpeed Insights, or Lighthouse.
- Repeat until you see a noticeable and consistent improvement.
You can also use Chrome DevTools > Network, filter by JS or CSS, and reload the page. Look for scripts that take a long time to load or come from third-party domains. The domain or filename will often help you identify the app.
Keep in mind that the slowdown may come from several smaller scripts rather than one app. Tracking pixels, chat widgets, review apps, pop-ups, and heatmaps can quickly add up.
Also, uninstalling an app may not remove all of its code. If the store remains slow, search your theme files for leftover snippets or script URLs. Make a backup before deleting anything, or ask the app developer to confirm which code is safe to remove.
One trick that saves a lot of the uninstall-and-compare cycle everyone described: Chrome DevTools can block a single script without you touching the store at all. Network tab, right-click the suspect JS file, ‘Block request URL’, reload, and compare Total Blocking Time / LCP in the Performance panel. You get the exact cost of that one script on the live theme, no duplicate theme, no app toggling, and nothing a customer can see. Do it per-script and you have a ranked list in ten minutes.
And when you attribute scripts to apps, it helps to know there are two different species in your HTML:
- Scripts injected through {{ content_for_header }} - these come from currently installed apps via Shopify’s script tag system. They disappear on their own when the app is uninstalled, so they are never your leftover problem, and you cannot edit them out anyway.
- Scripts hardcoded in theme.liquid, layout files or snippets - these were written into the theme by an app (or a past developer) and survive uninstalls. If one of these references a vendor that is not in your Settings > Apps list anymore, it is pure dead weight and safe to remove (on a duplicated theme first, as Tim57 said).
View-source and search for ‘<script’ outside the content_for_header block - that short list is the part of your speed problem you actually own.
I’d check CPU time, not just download time. A small script can still block the page.
- Duplicate the theme, then test the same product page in Chrome DevTools Performance with mobile throttling. Record 10 seconds and look for long tasks over 50 ms. Expanding a task usually shows the script URL responsible.
- In Network, filter to JS and add the Initiator column. The host name or call chain often points to the app.
- Disable one app embed at a time on the duplicate theme, then reload and record again. Run each test 3 times to avoid chasing a random result.
- Also search theme code for the app name, old CDN domains, and script tags. Uninstalled apps can leave snippets behind.
Test PDP, collection, and home separately since many apps only run on certain templates.
The easiest way is to test apps one by one rather than relying only on Lighthouse scores.
- Chrome DevTools → Network: Check large/slow JS, CSS, and third-party requests.
- Performance panel: Look for long JavaScript tasks, high main-thread usage, and layout shifts.
- Shopify Theme Inspector: Identify slow Liquid sections/snippets.
- App Embeds: Temporarily disable non-essential app embeds in a duplicate theme and compare results.
- A/B testing: Establish a baseline, disable one app, retest, and compare LCP, INP, CLS, and total JS execution.
- Check homepage, collection, and product pages separately, since an app may only impact specific templates.
Best regards,
Devcoder ![]()
Hello there @olivianewuser123
A couple of nice starting points are Shopify’s built in Theme Inspector, and the browsers developer tools. Review your theme’s performance report to find out which sections, app embeds, and scripts are causing your store to load slower. The Network and Performance tabs in Chrome DevTools can inform you on which scripts took the longest time or were blocking rendering.
For a more specific test, duplicate your theme, then disable app embeds one by one, compare load times. This is to help you determine if the problem is being caused by an app integration or a custom script.