Bytes by resource type

The page weight split by resource type: HTML, JS, CSS, images, fonts, media.

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 Bytes by resource type

The page weight split by resource type: HTML, JS, CSS, images, fonts, media.

15
Categories
In the distribution
31.9%
Fleet share
Top: script
97.3%
Sites with any
Of script

Scripts are 31.9% of all requests. Images are 30.7%.

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

The bytes by resource type mix who uses what, and how fast each group loads

Median INP (sites using feature)
0
100ms
200ms
300ms
400ms
500ms
Script86ms32% of sites
Image86ms31% of sites
Stylesheet86ms13% of sites
Other87ms6% of sites
Font86ms5% of sites
Fetch88ms5% of sites
Xhr90ms3% of sites
Document86ms2% of sites
Ping92ms2% of sites
Preflight94ms1% of sites
Media92ms0% of sites
Manifest91ms0% of sites
Prefetch84ms0% of sites
Eventsource138ms0% of sites
Texttrack95ms0% of sites
VariantShare of requestsMedian
Script
32%
86ms
Image
31%
86ms
Stylesheet
13%
86ms
Other
6%
87ms
Font
5%
86ms
Fetch
5%
88ms
Xhr
3%
90ms
Document
2%
86ms
Ping
2%
92ms
Preflight
1%
94ms
Media
0%
92ms
Manifest
0%
91ms
Prefetch
0%
84ms
Eventsource
0%
138ms
Texttrack
0%
95ms

Bytes by resource type. On the fleet: 31.9% script, 30.7% image, 13.4% stylesheet. 97.3% of sites use at least one script.

By count script leads (31.9%); by bytes it is image (63.3%). computed

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

Passing INP 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
Script 31.9%
90
93
93
94
95
96
97
96
95
94
92
Image 30.7%
90
91
93
94
95
96
96
96
94
93
90
Stylesheet 13.4%
92
94
94
95
96
96
97
98
98
97
Other 6.1%
96
93
92
93
87
83
86
93
89
97
94
Font 5.3%
93
96
96
96
97
97
97
97
96
94
Fetch 5%
96
97
97
97
96
96
94
93
90
86
85
Xhr 2.5%
97
96
96
95
93
92
91
91
88
83
84
Document 2.1%
95
96
95
95
94
94
94
95
92
Ping 1.7%
96
95
94
93
95
93
95
96
95
94
90
Preflight 1.1%
94
95
94
92
94
93
95
93
92
87
91
Media 0.3%
96
95
96
96
96
95
94
98
97
93
Manifest 0.2%
93
95
88
Prefetch 0%
98
99
98
100
Eventsource 0%
66
71
Texttrack 0%
93
75
← few of this category on the pagemany →
60%95%+ of sites passing INP 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 INP.

Xhr swings the hardest: 97% of sites pass INP with few, 84% 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 INP? the pass rate with few vs many of each category

60%70%80%90%100% few → many
Xhr 2.5% 97%84%
Fetch 5% 96%85%
Ping 1.7% 96%90%
Document 2.1% 95%92%
Preflight 1.1% 94%91%
Media 0.3% 96%93%
Other 6.1% 96%94%
Image 30.7% 90%90%
Font 5.3% 93%94%
Prefetch 0% 98%99%
Script 31.9% 90%92%
Manifest 0.2% 93%95%
Stylesheet 13.4% 92%97%
% of sites passing INP · 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 Xhr costs the most: the INP pass rate falls from 97% with few to 84% 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

The total page weight tells you the size of the problem. The split per resource type tells you which Core Web Vital pays for it. Image bytes mostly cost LCP. They compete for bandwidth with the hero image and make it load slower. Script bytes are the expensive ones. After the download the main thread still has to parse and execute them, so a script-heavy mix shows up in INP. CSS blocks rendering until it is loaded. Font bytes delay text rendering.

That is why the same total weight can produce very different vitals. A content site with mostly image bytes needs modern formats and lazy loading. A web app with mostly script bytes needs deferral and dead code removal. The mix tells you which problem you have.

How does this affect the Core Web Vitals?

Bytes by resource type correlates with the LCP. With Manifest, 86% of sites pass the LCP. With Prefetch, 71% do.

Related signals Cookies per site → Media per page → Responsive image markup → font-display strategy → Chrome field data from 94,910 sites, representing millions of real page loads · How we measured