Image loading attribute
How images load relative to the viewport: eager vs lazy, above vs below the fold, plus CSS backgrounds.
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.
22.1% of images lazy-load below the fold. 45.9% load eagerly down there.
The image loading attribute mix who uses what, and how stable each group is
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: CLS 0.02. Highest-share bucket: CLS 0.03. r = +0.36.
Passing CLS per bucket every category and count level at once - color is the pass rate
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.
Eager btf swings the hardest: 81% of sites pass CLS with few, 72% with many. computed
Few vs many - does quantity cost CLS? the pass rate with few vs many of each category
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 btf costs the most: the CLS pass rate falls from 81% with few to 72% with many. computed
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: 88% at one end, 85% at the other. This signal does not separate passing sites from failing ones.
Chrome field data from 94,910 sites, representing millions of real page loads. How we measured.