WordPress unused JavaScript bytes and the Core Web Vitals
23.4% of audited sites (14,785) ship over 1.5 MB of unused JavaScript during initial load, pushing median INP to 95ms (97% good INP) versus 83ms (99% good INP) at 400 to 850 KB.
30.4% of WordPress sites use 400 to 850 KB of unused JS unused JavaScript bytes, and 99% of those sites have a good INP, against 98% of all WordPress sites.
15.6% of WordPress sites use under 400 KB of unused JS unused JavaScript bytes, and 86% of those sites have a good LCP, against 70% of all WordPress sites.
Core Web Vitals pass rate
Sites with 400 to 850 KB of unused JS unused JavaScript bytes have a good INP most often: 99%, against 98% of all WordPress sites. Sites with over 1.5 MB of unused JS unused JS have it least often, at 97%.
Sites with under 400 KB of unused JS unused JavaScript bytes have a good LCP most often: 86%, against 70% of all WordPress sites. Sites with over 1.5 MB of unused JS unused JS have it least often, at 59%.
Unused JavaScript bytes usage
850 KB to 1.5 MB of unused JS is the most used: 30.7% of WordPress sites. 400 to 850 KB of unused JS is 30.4% of WordPress sites.
Unused JavaScript bytes per framework
On jQuery, 32% of sites use 850 KB to 1.5 MB of unused JS unused JavaScript bytes, and 98% of jQuery sites have a good INP, against 98% of all sites. On Vue, 36% of sites use 400 to 850 KB of unused JS, and 97% of Vue sites have a good INP.
On jQuery, 32% of sites use 850 KB to 1.5 MB of unused JS unused JavaScript bytes, and 69% of jQuery sites have a good LCP, against 70% of all sites. On Vue, 36% of sites use 400 to 850 KB of unused JS, and 68% of Vue sites have a good LCP.
Unused JavaScript bytes or the framework
Does the framework explain the unused JavaScript bytes difference?
On jQuery, 99% of sites with 400 to 850 KB of unused JS unused JavaScript bytes have a good INP, against 98% of jQuery sites with 850 KB to 1.5 MB of unused JS. Within jQuery, sites with 400 to 850 KB of unused JS have a good INP more often. On Vue, 98% of sites with 400 to 850 KB of unused JS unused JavaScript bytes have a good INP, against 97% of Vue sites with 850 KB to 1.5 MB of unused JS. Within Vue, sites with 400 to 850 KB of unused JS and 850 KB to 1.5 MB of unused JS have a good INP about equally often.
On jQuery, 84% of sites with under 400 KB of unused JS unused JavaScript bytes have a good LCP, against 67% of jQuery sites with 850 KB to 1.5 MB of unused JS. Within jQuery, sites with under 400 KB of unused JS have a good LCP more often. On Vue, 85% of sites with under 400 KB of unused JS unused JavaScript bytes have a good LCP, against 65% of Vue sites with 850 KB to 1.5 MB of unused JS. Within Vue, sites with under 400 KB of unused JS have a good LCP more often.
How dead JavaScript code still blocks the main thread
The browser cannot skip parsing or compiling unused functions inside a downloaded bundle. Across 19,212 sites (30.4%) with 400 to 850 KB of unused JS, 99% pass field INP at an 83ms median, while the 23.4% (14,785) exceeding 1.5 MB of unused JS drop to 97% good INP (95ms median).
Understanding unused JavaScript bytes
Dequeue WooCommerce, form, and slider scripts on routes that do not render them, and delay third-party chat and consent bundles until user interaction. On WordPress, 30.4% of sites carry 400 to 850 KB of unused JS (99% good INP) while 23.4% exceed 1.5 MB (97% good INP).
By Arjen Karel · 63,295 crawled WordPress sites (60,855 with all devices Chrome field data, 63,282 sites with unused JavaScript bytes, October 2026). How we measured.