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 107ms (94% good INP) versus 78ms (99% 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 96% 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 96% 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 96% of all Shopify sites. Sites with over 1.5 MB of unused JS unused JS have it least often, at 94%.
Sites with 400 to 850 KB of unused JS unused JavaScript bytes have a good LCP most often: 99%, against 96% of all Shopify sites. Sites with over 1.5 MB of unused JS unused JS have it least often, at 95%.
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 95% of jQuery sites have a good INP, against 96% of all sites. On Vue, 83% of sites use over 1.5 MB of unused JS, and 94% of Vue sites have a good INP.
On jQuery, 74% of sites use over 1.5 MB of unused JS unused JavaScript bytes, and 94% of jQuery sites have a good LCP, against 96% of all sites. On Vue, 83% of sites use over 1.5 MB of unused JS, and 95% 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 94% 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, 98% of sites with 850 KB to 1.5 MB of unused JS unused JavaScript bytes have a good INP, against 94% 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, 99% of sites with 400 to 850 KB of unused JS unused JavaScript bytes have a good LCP, against 93% of jQuery sites with over 1.5 MB of unused JS. Within jQuery, sites with 400 to 850 KB of unused JS have a good LCP more often. On Vue, 95% 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, 99% pass field INP at an 78ms median, while the 64.0% (5,280) exceeding 1.5 MB of unused JS drop to 94% good INP (107ms 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 (99% good INP, 78ms median) versus 64.0% above 1.5 MB (94% good INP, 107ms median).
By Arjen Karel · 8,246 crawled Shopify sites (8,062 with all devices Chrome field data, 8,245 sites with unused JavaScript bytes, October 2026). How we measured.