DOM tree depth on React sites

13.7% of audited sites (1,315) keep maximum DOM depth between 15 and 20 levels (90% good INP, 91ms median), while 42.5% nest 21 to 31 levels deep (95% good INP) and 40.1% reach 32+ levels (97% good INP).

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

40.1% of React sites use 32+ DOM levels maximum DOM depth, and 97% of those sites have a good INP, against 95% of all React sites.

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

INP pass rate

Sites with 32+ DOM levels maximum DOM depth have a good INP most often: 97%, against 95% of all React sites. Sites with 15 to 20 DOM levels DOM depth have it least often, at 90%.

SitesGood, needs improvement, poor INPMedian
All React sites9,11095%80ms
32+ levels deep 40.1%3,65197%77ms
Under 15 levels deep 3.6%32997%82ms
21 to 31 levels deep 42.5%3,87495%82ms
15 to 20 levels deep 13.7%1,25690%91ms
GoodNeeds improvementPoorSites: with Chrome field data
The State of Web Vitals · October 2026 · React: 9,570 crawled sites · 9,110 with all devices field dataBy Arjen Karel · corewebvitals.io/state-of-cwv
2

Maximum DOM depth usage

21 to 31 DOM levels is the most used: 42.5% of React sites. 32+ DOM levels is 40.1% of React sites.

21 to 31 levels deep 42.5% 32+ levels deep 40.1% 15 to 20 levels deep 13.7%
21 to 31 levels deep 42.5% 32+ levels deep 40.1% 15 to 20 levels deep 13.7% Under 15 levels deep 3.6%
The State of Web Vitals · October 2026 · React: 9,570 crawled sites · 9,110 with all devices field dataBy Arjen Karel · corewebvitals.io/state-of-cwv
3

Maximum DOM depth per platform

Wix sets the maximum DOM depth to 32+ DOM levels on 62% of its sites, and 97% of Wix sites have a good INP, against 95% of all sites.

PlatformMaximum DOM depth on its sitesGood INP
All React sites 9,570 sites21 to 31 levels deep 43%32+ levels deep 40%15 to 20 levels deep 14%95%
WordPress 2,342 sites21 to 31 levels deep 49%15 to 20 levels deep 38%98%
Wix 5,824 sites32+ levels deep 62%21 to 31 levels deep 37%97%
21 to 31 levels deep 32+ levels deep 15 to 20 levels deep Under 15 levels deep
The State of Web Vitals · October 2026 · React: 9,570 crawled sites · 9,110 with all devices field dataBy Arjen Karel · corewebvitals.io/state-of-cwv
4

DOM nesting depth or the platform

Does the platform explain the maximum DOM depth difference?

On Wix, 97% of sites with 32+ DOM levels maximum DOM depth have a good INP, against 97% of Wix sites with 21 to 31 DOM levels. Within Wix, sites with 32+ DOM levels and 21 to 31 DOM levels have a good INP about equally often. On WordPress, 98% of sites with 32+ DOM levels maximum DOM depth have a good INP, against 98% of WordPress sites with 21 to 31 DOM levels. Within WordPress, sites with 32+ DOM levels and 21 to 31 DOM levels have a good INP about equally often.

Why deeply nested wrapper chains slow down event bubbling and layout

Maximum DOM depth measures the longest chain of nested parent-child elements from the root html tag to the deepest leaf node. Across 1,315 sites (13.7%) at 15 to 20 levels, 90% achieve good INP (91ms median). Another 42.5% (4,070) nest 21 to 31 levels deep (95% good INP, 82ms median), while the 40.1% (3,841) exceeding 32 levels drop to 97% good INP (77ms median).

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

Understanding maximum DOM depth

Keep maximum DOM nesting depth below 20 levels by replacing nested flex/column wrapper divs with CSS Grid and using fragments in component frameworks so component boundaries do not emit extra DOM containers. Across all audited sites, 13.7% sit at 15 to 20 levels (90% good INP) and 40.1% exceed 32 levels (97% good INP).

The State of Web Vitals · October 2026 · React: 9,570 crawled sites · 9,110 with all devices field dataBy Arjen Karel · corewebvitals.io/state-of-cwv
Related signals Script coverage (used vs unused) → Image loading attribute → Images per page → Compression mix → By Arjen Karel · 9,570 crawled React sites (9,110 with all devices Chrome field data, October 2026) · How we measured