Script loading mix

How scripts load: parser-blocking, async, defer, module or inline.

Field data PhoneDesktopAll Scope All sites Q1 2026 edition · All devices field outcomes
Metric LCP INP CLS
1

At a glance the headline numbers for Script loading mix

How scripts load: parser-blocking, async, defer, module or inline.

7
Categories
In the distribution
40.6%
Fleet share
Top: inline
94.2%
Sites with any
Of inline

8.1% of scripts still block the parser.

The State of Web Vitals · Q1 2026 · 94,910 sites · all devices field datacorewebvitals.io/state-of-cwv
2

The script loading mix mix who uses what, and how stable each group is

Median CLS (sites using feature)
0
0.10
0.20
0.30
0.40
0.50
Inline0.0041% of sites
Async0.0021% of sites
Other0.0020% of sites
Defer0.009% of sites
Blocking0.008% of sites
Module0.002% of sites
Nomodule0.000% of sites
VariantShare of requestsMedian
Inline
41%
0.00
Async
21%
0.00
Other
20%
0.00
Defer
9%
0.00
Blocking
8%
0.00
Module
2%
0.00
Nomodule
0%
0.00

Script loading mix. On the fleet: 40.6% inline, 21.1% async, 19.8% other. 94.2% of sites use at least one inline.

r = +0.58.

By count inline leads (40.6%); by bytes it is async (50.1%). computed

The State of Web Vitals · Q1 2026 · 94,910 sites · all devices field datacorewebvitals.io/state-of-cwv
3

Passing CLS per bucket every category and count level at once - color is the pass rate

1
2
3
4
5
6
7
8
9
10
11
12
Inline 40.6%
87
88
88
88
90
89
88
86
87
90
82
Async 21.1%
100
91
89
88
87
86
85
85
86
88
88
77
Other 19.8%
91
90
89
89
90
89
88
88
86
84
82
83
Defer 8.6%
84
86
90
88
86
89
89
89
88
88
87
77
Blocking 8.1%
87
89
90
89
88
87
85
86
86
82
Module 1.7%
85
86
84
83
85
92
91
91
89
88
95
Nomodule 0.2%
85
83
97
83
← few of this category on the pagemany →
60%95%+ of sites passing CLS Faded cells: under 100 sites

Each row is a category, each column its own count bucket (few on the left, many on the right); the cell is the share of those sites passing CLS.

Async swings the hardest: 91% of sites pass CLS with few, 77% with many. computed

The State of Web Vitals · Q1 2026 · 94,910 sites · all devices field datacorewebvitals.io/state-of-cwv
4

Few vs many - does quantity cost CLS? the pass rate with few vs many of each category

60%70%80%90%100% few → many
Async 21.1% 91%77%
Defer 8.6% 86%77%
Other 19.8% 90%83%
Inline 40.6% 87%82%
Blocking 8.1% 87%82%
Module 1.7% 86%95%
Nomodule 0.2% 83%97%
% of sites passing CLS · hollow ring = pages with few, solid dot = pages with many

Per category: the pass rate among pages with FEW of it (hollow ring) against pages with MANY (solid dot), worst trend first. Thin buckets are excluded from the endpoints.

More Async costs the most: the CLS pass rate falls from 91% with few to 77% with many. computed

The State of Web Vitals · Q1 2026 · 94,910 sites · all devices field datacorewebvitals.io/state-of-cwv
5

Why this matters for the Core Web Vitals, and where to start fixing it

A parser-blocking script stops HTML parsing until it downloads and runs. The page freezes mid-construction. defer downloads in parallel and runs after parsing, in order. async runs the moment it lands, which is fine for independent scripts and a race condition for everything else. Modules defer by default.

Blocking scripts in the head are almost never a decision someone made this year. They are habits from before defer existed, copied from theme to theme. The mix on this page is an audit of those habits.

Related signals Cookies per site → Uses @import → DOM size → Images per page → Chrome field data from 94,910 sites, representing millions of real page loads · How we measured