Unused JavaScript bytes on React sites

67.5% of audited sites (6,461) ship over 1.5 MB of unused JavaScript during initial load, pushing median INP to 94ms (92% good INP) versus 95ms (80% good INP) at 400 to 850 KB.

Field data PhoneDesktopAll Scope All sites October 2026 edition · Phone field outcomes · React sites only
React Scoped to 9,570 sites out of 210,902 analyzed (frameworks) Compare with all sites →

25.5% of React sites use 850 KB to 1.5 MB of unused JS unused JavaScript bytes, and 96% of those sites have a good INP, against 92% of all React sites.

The State of Web Vitals · October 2026 · React: 9,570 crawled sites · 5,488 with phone field dataBy Arjen Karel · corewebvitals.io/state-of-cwv
1

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: 96%, against 92% of all React sites. Sites with 400 to 850 KB of unused JS unused JS have it least often, at 80%.

SitesGood, needs improvement, poor INPMedian
All React sites5,48892%90ms
Under 400 KB unused 1.3%7098%81ms
850 KB to 1.5 MB unused 25.5%1,38196%80ms
Over 1.5 MB unused 67.5%3,70492%94ms
400 to 850 KB unused 5.7%33380%95ms
GoodNeeds improvementPoorSites: with Chrome field data
The State of Web Vitals · October 2026 · React: 9,570 crawled sites · 5,488 with phone field dataBy Arjen Karel · corewebvitals.io/state-of-cwv
2

Unused JavaScript bytes usage

Over 1.5 MB of unused JS is the most used: 67.5% of React sites. 850 KB to 1.5 MB of unused JS is 25.5% of React sites.

Over 1.5 MB unused 67.5% 850 KB to 1.5 MB unused 25.5%
Over 1.5 MB unused 67.5% 850 KB to 1.5 MB unused 25.5% 400 to 850 KB unused 5.7% Under 400 KB unused 1.3%
The State of Web Vitals · October 2026 · React: 9,570 crawled sites · 5,488 with phone field dataBy Arjen Karel · corewebvitals.io/state-of-cwv
3

Unused JavaScript bytes per platform

On Wix, 72% of sites use over 1.5 MB of unused JS unused JavaScript bytes, and 96% of Wix sites have a good INP, against 92% of all sites. On WordPress, 64% of sites use over 1.5 MB of unused JS, and 96% of WordPress sites have a good INP.

PlatformUnused JavaScript bytes on its sitesGood INP
All React sites 9,570 sitesOver 1.5 MB unused 68%850 KB to 1.5 MB unused 25%92%
Wix 5,824 sitesOver 1.5 MB unused 72%850 KB to 1.5 MB unused 28%96%
WordPress 2,342 sitesOver 1.5 MB unused 64%850 KB to 1.5 MB unused 22%400 to 850 KB unused 10%96%
Over 1.5 MB unused 850 KB to 1.5 MB unused 400 to 850 KB unused Under 400 KB unused
The State of Web Vitals · October 2026 · React: 9,570 crawled sites · 5,488 with phone field dataBy Arjen Karel · corewebvitals.io/state-of-cwv
4

Unused JavaScript bytes or the platform

Does the platform explain the unused JavaScript bytes difference?

On Wix, 97% of sites with 850 KB to 1.5 MB of unused JS unused JavaScript bytes have a good INP, against 96% of Wix sites with over 1.5 MB of unused JS. Within Wix, 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 WordPress, 99% of sites with 850 KB to 1.5 MB of unused JS unused JavaScript bytes have a good INP, against 95% of WordPress sites with over 1.5 MB of unused JS. Within WordPress, 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.

How dead JavaScript code still blocks the main thread

The browser cannot skip parsing or compiling unused functions inside a downloaded bundle. Across 544 sites (5.7%) with 400 to 850 KB of unused JS, 80% pass field INP at an 95ms median, while the 67.5% (6,461) exceeding 1.5 MB of unused JS drop to 92% good INP (94ms median).

The State of Web Vitals · October 2026 · React: 9,570 crawled sites · 5,488 with phone field dataBy Arjen Karel · corewebvitals.io/state-of-cwv
5

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, 5.7% ship 400 to 850 KB of unused JS (80% good INP, 95ms median) versus 67.5% above 1.5 MB (92% good INP, 94ms median).

The State of Web Vitals · October 2026 · React: 9,570 crawled sites · 5,488 with phone field dataBy Arjen Karel · corewebvitals.io/state-of-cwv
Related signals Image source mix → Page weight & requests → DOM depth → Scripts per page → By Arjen Karel · 9,570 crawled React sites (5,488 with phone Chrome field data, October 2026) · How we measured