Image loading attribute

How images load relative to the viewport: eager vs lazy, above vs below the fold, plus CSS backgrounds.

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

At a glance the headline numbers for Image loading attribute

How images load relative to the viewport: eager vs lazy, above vs below the fold, plus CSS backgrounds.

5
Categories
In the distribution
45.9%
Fleet share
Top: eager_btf
82.9%
Sites with any
Of eager_btf

22.1% of images lazy-load below the fold. 45.9% load eagerly down there.

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

The image loading attribute mix who uses what, and how fast each group loads

Median INP (sites using feature)
0
100ms
200ms
300ms
400ms
500ms
Eager btf98ms46% of sites
Lazy btf102ms22% of sites
Bg96ms20% of sites
Eager atf98ms10% of sites
Lazy atf103ms2% of sites
VariantShare of sitesMedian
Eager btf
46%
98ms
Lazy btf
22%
102ms
Bg
20%
96ms
Eager atf
10%
98ms
Lazy atf
2%
103ms

Image loading attribute. On the fleet: 45.9% eager btf, 22.1% lazy btf, 19.6% bg. 82.9% of sites use at least one eager_btf.

Lowest-share bucket: INP 102ms. Highest-share bucket: INP 98ms. r = +0.27.

The State of Web Vitals · Q1 2026 · 94,910 sites · phone 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
12
Eager btf 45.9%
84
92
94
94
95
94
95
95
94
92
91
85
Lazy btf 22.1%
91
94
95
96
95
95
94
92
91
90
88
87
Bg 19.6%
91
92
93
91
92
93
93
93
91
92
89
Eager atf 10%
89
93
94
94
93
92
92
90
90
88
87
80
Lazy atf 2.4%
92
94
93
96
94
93
91
91
91
89
88
86
← 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.

Eager atf swings the hardest: 89% of sites pass INP with few, 80% with many. computed

The State of Web Vitals · Q1 2026 · 94,910 sites · phone 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
Eager atf 10% 89%80%
Lazy atf 2.4% 92%86%
Lazy btf 22.1% 91%87%
Bg 19.6% 91%89%
Eager btf 45.9% 84%85%
% 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 Eager atf costs the most: the INP pass rate falls from 89% with few to 80% with many. computed

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

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

Lazy loading is positional. Below the fold it saves bandwidth for content the visitor may never reach. Above the fold it delays pixels the visitor is already waiting for, and on the LCP image it is a direct hit. The same attribute is a win or a bug depending on where it sits.

Read this split with that in mind. Eager below the fold is wasted bandwidth. Lazy above the fold is the bug to fix first. CSS background images follow neither rule: they load when their styles apply, which has its own problems.

How does this affect the Core Web Vitals?

Passing LCP barely moves across the range: 84% at one end, 80% at the other. This signal does not separate passing sites from failing ones.

The split is bigger on INP: 84% pass where Eager BTF is rare, 94% where it is common.

Related signals Uses @import → Image source mix → DOM size → Page weight & requests → Chrome field data from 94,910 sites, representing millions of real page loads · How we measured