Cumulative Layout Shift (CLS) scores unexpected movement of visible content: text jumping down as an image loads, or a button moving just as you tap it. It is one of the three Core Web Vitals. CLS is a unitless score based on how much of the viewport moved and how far.
| Rating | CLS (75th percentile) |
|---|---|
| Good | 0.1 or less |
| Needs improvement | 0.1 to 0.25 |
| Poor | Over 0.25 |
Common causes
- Images, videos and iframes without
widthandheightattributes - Ads, embeds and banners injected above existing content
- Web fonts that swap in with very different metrics
- Content inserted by JavaScript after the first render
How to improve it
Give every image and embed explicit dimensions or an aspect-ratio, reserve space for ads and banners, and avoid inserting content above what the visitor is reading. Shifts within 500 ms of a user interaction do not count.