Cumulative Layout Shift (CLS)
IntermediateCumulative Layout Shift, or CLS, is a unitless score that measures how much visible page content moves unexpectedly while a page loads and while the visitor uses it.
The browser scores each shift by multiplying two ratios: how much of the screen moved and how far it moved. Instead of summing across the whole page lifetime, the reported value is the largest burst of shifts that occur inside a single window of at most five seconds. A shift that happens within half a second of a click or tap is excluded, because the user caused it and expects it. The common mistake is trusting one clean test run: a lab score stays low because the tester never scrolls and closes the page early, while real visitors scroll, lazy images and consent banners arrive late, and the layout jumps there. CLS also keeps accumulating until the page is closed, so long pages and single-page apps have more opportunity to fail.
How it is calculated
Cumulative Layout Shift = the largest sum of shift scores inside a single five second window, where each shift score = the fraction of the viewport that moved × the shift distance relative to the larger viewport dimension
Only unexpected shifts enter the calculation, and the output is a unitless number rather than a duration or a percentage. Assessment is made at the 75th percentile of page visits, separately for mobile and desktop; per web.dev, under 0.1 is good, 0.1 to 0.25 needs improvement and above 0.25 is poor.
FAQ
Sources:web.dev — Cumulative Layout Shift (CLS)MDN — LayoutShift