Shopify unused JavaScript bytes and the Core Web Vitals
64.0% of audited sites (5,280) ship over 1.5 MB of unused JavaScript during initial load, pushing median INP to 121ms (91% good INP) versus 85ms (98% good INP) at 400 to 850 KB.
23.2% of Shopify sites use 850 KB to 1.5 MB of unused JS unused JavaScript bytes, and 99% of those sites have a good INP, against 93% of all Shopify sites.
12.7% of Shopify sites use 400 to 850 KB of unused JS unused JavaScript bytes, and 99% of those sites have a good LCP, against 95% of all Shopify sites.
Core Web Vitals pass rate
Sites with 850 KB to 1.5 MB of unused JS unused JavaScript bytes have a good INP most often: 99%, against 93% of all Shopify sites. Sites with over 1.5 MB of unused JS unused JS have it least often, at 91%.
Sites with 400 to 850 KB of unused JS unused JavaScript bytes have a good LCP most often: 99%, against 95% of all Shopify sites. Sites with over 1.5 MB of unused JS unused JS have it least often, at 94%.
Unused JavaScript bytes usage
Over 1.5 MB of unused JS is the most used: 64.0% of Shopify sites. 850 KB to 1.5 MB of unused JS is 23.2% of Shopify sites.
Unused JavaScript bytes per framework
On jQuery, 74% of sites use over 1.5 MB of unused JS unused JavaScript bytes, and 92% of jQuery sites have a good INP, against 93% of all sites. On Vue, 83% of sites use over 1.5 MB of unused JS, and 91% of Vue sites have a good INP.
On jQuery, 74% of sites use over 1.5 MB of unused JS unused JavaScript bytes, and 93% of jQuery sites have a good LCP, against 95% of all sites. On Vue, 83% of sites use over 1.5 MB of unused JS, and 94% of Vue sites have a good LCP.
Unused JavaScript bytes or the framework
Does the framework explain the unused JavaScript bytes difference?
On jQuery, 100% of sites with 850 KB to 1.5 MB of unused JS unused JavaScript bytes have a good INP, against 91% of jQuery sites with over 1.5 MB of unused JS. Within jQuery, sites with 850 KB to 1.5 MB of unused JS have a good INP more often. On Vue, 97% of sites with 850 KB to 1.5 MB of unused JS unused JavaScript bytes have a good INP, against 90% of Vue sites with over 1.5 MB of unused JS. Within Vue, sites with 850 KB to 1.5 MB of unused JS and over 1.5 MB of unused JS have a good INP about equally often.
On jQuery, 97% of sites with 400 to 850 KB of unused JS unused JavaScript bytes have a good LCP, against 92% of jQuery sites with over 1.5 MB of unused JS. Within jQuery, sites with 400 to 850 KB of unused JS and over 1.5 MB of unused JS have a good LCP about equally often. On Vue, 94% of sites with over 1.5 MB of unused JS unused JavaScript bytes have a good LCP, against 97% of Vue sites with 850 KB to 1.5 MB of unused JS. Within Vue, sites with over 1.5 MB of unused JS and 850 KB to 1.5 MB of unused JS have a good LCP about equally often.
How dead JavaScript code still blocks the main thread
The browser cannot skip parsing or compiling unused functions inside a downloaded bundle. Across 1,047 sites (12.7%) with 400 to 850 KB of unused JS, 98% pass field INP at an 85ms median, while the 64.0% (5,280) exceeding 1.5 MB of unused JS drop to 91% good INP (121ms median).
Understanding unused JavaScript bytes
Use route-level code splitting and dynamic import() so offscreen modals, checkout flows, and heavy third-party SDKs only load when needed. Across all audited sites, 12.7% ship 400 to 850 KB of unused JS (98% good INP, 85ms median) versus 64.0% above 1.5 MB (91% good INP, 121ms median).
By Arjen Karel · 8,246 crawled Shopify sites (5,825 with phone Chrome field data, 8,245 sites with unused JavaScript bytes, October 2026). How we measured.