Glossary
Cumulative Layout Shift (CLS)
The metric for the button that moves just as you tap it.
By Roger Campos · Last updated: September 2026
TL;DR
Cumulative Layout Shift (CLS) measures how much visible content moves unexpectedly while a page is open. Each shift is scored by how much of the viewport moved and how far; CLS is the largest burst of shifts. It is the Core Web Vital for visual stability: 0.1 or less is good, over 0.25 is poor.
Free plan, no credit card. 1,000 credits a month.
How it works
How the score is calculated
A layout shift happens when an element that was already visible changes position between two frames. Each shift scores impact fraction × distance fraction: the share of the viewport the moving elements touched, before and after, times the distance they moved as a share of the viewport.
Worked example: an element covering half the viewport moves down by a quarter of it. Together its old and new positions cover 75% of the viewport, so the impact fraction is 0.75; the distance fraction is 0.25. The shift scores 0.75 × 0.25 = 0.1875 — on its own, well past the 0.1 line.
Shifts are grouped into session windows: shifts less than 1 second apart, up to 5 seconds in all. CLS is the score of the worst window. Shifts within 500 ms of a click, tap or key press don't count — the visitor expected those.
In practice
The usual causes
- Images and iframes without
widthandheight, so no space is reserved for them. - Ads, embeds and cookie banners injected above existing content.
- Web fonts swapping in with different metrics than the fallback.
- Content inserted by JavaScript after the first render — a "related posts" block, a promo bar.
URLpipe
Measuring CLS with URLpipe
/lighthouse returns cumulative-layout-shift in metrics, unitless, with its 0–1 score; it carries 25% of the Lighthouse 13 performance score. A lab run only sees shifts during load — shifts that happen as a visitor scrolls show up in field data only. With include_audits: "true" the audits list the elements that moved.
To see a shift rather than measure it, capture the page at two moments with /screenshot — once as it is, once with a delay in page_options — and compare.
Try it
Cumulative Layout Shift (CLS), on a page you choose
Related terms
FAQ
Frequently asked questions
What is a good CLS score?
Does CLS have a unit?
Why is my field CLS worse than Lighthouse's?
See it on your own pages.
Free plan, no card. Confirm your email and your API key is live — you'll be making real requests in minutes.