What is weighing down my Shopify store's code?
Last updated
Ten counts of the code on that page, each marked fine or worth a look: apps doing the same job, scripts apps add everywhere, outside domains, script and stylesheet files, scripts in the head, code written into the page, page size, and images with no set size or loaded straight away. It reads the code; it does not time the page.
The ten things it counts
A Shopify app bloat check reads the code one storefront page carries, such as script files, scripts added by apps, outside domains, stylesheets and images without a set size, and flags anything past a sensible level as worth a look, so a store still running two popup apps after a switch sees both named side by side.
Every count comes from the public page at the address you enter, read once and never run in a browser. There is no timing, no outside performance data and no speed score anywhere in the report.
10 counts taken from the page your shoppers are sent, each marked fine or worth a look against our own levels. They point at where extra weight usually hides on a Shopify store: apps, pasted snippets and theme sections.
- Apps doing the same job
- Two recognised apps in one category, such as two review widgets or two popup tools. The usual leftover of a switch where the old app was never removed.
- Scripts apps add to every page
- Code an app has asked Shopify to include on each storefront page. More than 6 is worth matching against the apps you still pay for.
- Outside domains
- How many other domains, beyond the store and Shopify, the page pulls code or styles from. Shown as a count only. Past 12 is flagged.
- Script files
- Separate script downloads referenced by the page, from the theme and from apps. Past 35 is flagged.
- Scripts that hold up the first paint
- Script files in the page head with nothing telling the browser it may carry on drawing meanwhile. A few are normal; many usually means snippets pasted into the theme by hand.
- Code written into the page
- Script typed straight into the page rather than kept in a file, so it arrives again with every page view. Past about 150 KB is flagged.
- Page size before images
- The weight of the page document alone. Past about 500 KB is flagged.
- Stylesheets, image sizes and lazy loading
- Separate stylesheet files, images with no width and height to reserve space, and images fetched at once rather than when the shopper scrolls near them.
Nudgesmart is available on the Shopify App Store. Browse the template library or see what it costs.
Four sample pages, counted
Sample pages, not real stores. Each goes through the same counts as the checker above: a stock theme with two apps, a store still carrying apps it replaced, one with tracking snippets pasted into the head, and a page from another platform.
| Sample page | Counts flagged | First thing worth a look |
|---|---|---|
| A stock theme with two apps | 0 of 10 worth a look | Nothing stands out |
| Two popup apps and two review apps, all still installed | 2 of 10 worth a look | Apps doing the same job: Reviews: Judge.me and Loox; Popups: Privy and OptiMonk |
| Tracking tags pasted into the theme head by hand | 3 of 10 worth a look | Scripts that hold up the first paint: 4 scripts |
| A page from a site that is not on Shopify | No report | Not a Shopify page |
A code read, not a stopwatch
It reads code. It does not time the page
This check reads the code a page carries and counts it. It never loads the page in a browser, never runs its scripts and never times anything, so it gives no load time, no speed score and no promise that a change makes the store faster.
The levels are ours
Fine and worth a look are judgement calls about where a typical Shopify storefront sits, not an industry standard. A store over one level can feel quick, and one under every level can still feel slow on a weak phone signal.
Only what the page names up front
Scripts that other scripts fetch later, after the page has opened, are not in the page itself and so are not counted. The real total is usually higher than the counts here.
The app list is short on purpose
Only apps from our own list of common conversion and marketing tools are named. Others still show up in the counts, just without a name, and an unnamed domain is never printed.
Every app adds something, ours included
No app is free of code. The useful questions are whether you still use each one, and whether it does anything on a page where it has nothing to show.
App bloat questions
Is this a Shopify speed test?
No. It is a speed check in the narrow sense of pointing at what weighs the code down. It reads one page and counts scripts, apps, outside domains and images, but it never times the page and gives no speed score.
How do I find apps that slow down my Shopify store?
Start with the rows for apps doing the same job and scripts apps add to every page. Match each against the apps you still pay for, uninstall the ones you do not, and check the theme app embeds for anything left switched on.
Does uninstalling an app remove its code?
Usually, but not always. Code an app added through the theme editor goes with it, while snippets pasted into theme files by hand or during setup can stay behind. If a removed app still appears here, its support team can help clear it.
Should every image load lazily?
No. The first images a shopper sees should load straight away; only the ones further down can wait. That is why a few images loaded at once is fine and only a long list is flagged.
Is the page I check stored?
No. The page is read on our server, reduced to counts and to names from our own app list, then discarded. None of its text, and no domain it uses, comes back to your browser.
Every app should earn the code it adds.
With no active campaign, the Nudgesmart campaign engine never runs on the storefront, and it installs as a theme app embed that never edits theme code.