Shopify DOM tree depth and the Core Web Vitals

44.3% of audited sites (3,655) keep maximum DOM depth between 15 and 20 levels (95% good INP, 106ms median), while 49.2% nest 21 to 31 levels deep (92% good INP) and 1.6% reach 32+ levels (80% good INP).

Field data PhoneDesktopAll Scope All sites October 2026 edition · Phone field outcomes · Shopify sites only
Shopify Scoped to 8,248 sites out of 203,892 analyzed (cms) Compare with all sites →

4.9% of Shopify sites use under 15 DOM levels maximum DOM depth, and 100% of those sites have a good INP, against 93% of all Shopify sites.

The State of Web Vitals · October 2026 · Shopify: 8,246 crawled sites · 5,825 with phone field dataBy Arjen Karel · corewebvitals.io/state-of-cwv
1

INP pass rate

Sites with under 15 DOM levels maximum DOM depth have a good INP most often: 100%, against 93% of all Shopify sites. Sites with 21 to 31 DOM levels DOM depth have it least often, at 92%.

SitesGood, needs improvement, poor INPMedian
All Shopify sites5,82593%111ms
Under 15 levels deep 4.9%263100%85ms
15 to 20 levels deep 44.3%2,52095%106ms
21 to 31 levels deep 49.2%2,93692%116ms
32+ levels deep 1.6%10680%145ms
GoodNeeds improvementPoorSites: with Chrome field data
The State of Web Vitals · October 2026 · Shopify: 8,246 crawled sites · 5,825 with phone field dataBy Arjen Karel · corewebvitals.io/state-of-cwv
2

Maximum DOM depth usage

21 to 31 DOM levels is the most used: 49.2% of Shopify sites. Under 15 DOM levels is 4.9% of Shopify sites.

21 to 31 levels deep 49.2% 15 to 20 levels deep 44.3%
21 to 31 levels deep 49.2% 15 to 20 levels deep 44.3% Under 15 levels deep 4.9% 32+ levels deep 1.6%
The State of Web Vitals · October 2026 · Shopify: 8,246 crawled sites · 5,825 with phone field dataBy Arjen Karel · corewebvitals.io/state-of-cwv
3

Maximum DOM depth per framework

On jQuery, 47% of sites use 15 to 20 DOM levels maximum DOM depth, and 92% of jQuery sites have a good INP, against 93% of all sites. On Vue, 53% of sites use 21 to 31 DOM levels, and 91% of Vue sites have a good INP.

FrameworkMaximum DOM depth on its sitesGood INP
All Shopify sites 8,246 sites21 to 31 levels deep 49%15 to 20 levels deep 44%93%
jQuery 3,153 sites15 to 20 levels deep 47%21 to 31 levels deep 42%92%
Vue 933 sites21 to 31 levels deep 53%15 to 20 levels deep 43%91%
21 to 31 levels deep 15 to 20 levels deep Under 15 levels deep 32+ levels deep
The State of Web Vitals · October 2026 · Shopify: 8,246 crawled sites · 5,825 with phone field dataBy Arjen Karel · corewebvitals.io/state-of-cwv
4

DOM nesting depth or the framework

Does the framework explain the maximum DOM depth difference?

On jQuery, 100% of sites with under 15 DOM levels maximum DOM depth have a good INP, against 90% of jQuery sites with 21 to 31 DOM levels. Within jQuery, sites with under 15 DOM levels have a good INP more often. On Vue, 89% of sites with 21 to 31 DOM levels maximum DOM depth have a good INP, against 94% of Vue sites with 15 to 20 DOM levels. Within Vue, sites with 21 to 31 DOM levels and 15 to 20 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 3,655 sites (44.3%) at 15 to 20 levels, 95% achieve good INP (106ms median). Another 49.2% (4,053) nest 21 to 31 levels deep (92% good INP, 116ms median), while the 1.6% (134) exceeding 32 levels drop to 80% good INP (145ms median).

The State of Web Vitals · October 2026 · Shopify: 8,246 crawled sites · 5,825 with phone 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, 44.3% sit at 15 to 20 levels (95% good INP) and 1.6% exceed 32 levels (80% good INP).

The State of Web Vitals · October 2026 · Shopify: 8,246 crawled sites · 5,825 with phone 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 · 8,246 crawled Shopify sites (5,825 with phone Chrome field data, October 2026) · How we measured