CLS
CLS scores how much a page jumps around while it loads, on a unitless scale where 0.1 or less is good. Every element that moves without the visitor causing it adds to the score, weighted by how far it moved and how much of the screen it took.
What it is
You start reading. An image finishes loading above the paragraph, the text moves down, and the sentence you were on is somewhere else. Do that four times and the page feels broken even though nothing failed.
CLS adds up every one of those movements. It counts only shifts the visitor did not cause — opening an accordion moves the page and does not count; a banner injecting itself after two seconds does.
Why it matters if you are paying for a website
The cost is not the score, it is the mis-tap. A button moves 40 pixels in the moment between deciding to press it and pressing it, and the visitor lands on whatever took its place. On a checkout page that is a lost order; on a contact form it is a phone call that never happened.
What actually causes it
Four things, in the order I find them.
Images without dimensions. A browser that does not know an image’s shape reserves no room for it, and then has to make room when it arrives. Set width and height, or let the framework do it from the file.
Webfonts. The page paints in the fallback font and reflows when the real one arrives, and the longer the words, the further everything below them moves.
Injected content. Cookie banners, promo bars, “subscribe” strips. Anything added to the top of the document after the paint pushes the entire page down.
Ads and embeds that size themselves after loading.
There is a decision on this site worth putting next to that list. The cookie banner is a floating card over the page rather than a strip that pushes the content down — so it shifts nothing and contributes nothing to CLS. It is also the reason the site knowingly fails one accessibility criterion, because a floating card can cover an element that has keyboard focus. Two metrics, one banner, opposite directions: that is what a real trade-off looks like, and both halves of it are written down rather than quietly picked.
What CLS is not
It is not about scrolling, and it is not fixed by making the page faster. A slow page with reserved space for everything scores zero; a fast page that loads a banner late does not.
Related terms
See also
Want this done, not just defined?
This is the part of the work I get hired for. The page below says what it costs and how it runs.
WordPress → Astro migrationWhere I write about this

Uper SEO Auditor
Chrome extension for SEO specialists and developers. Provides real-time debugging of Web Vitals, Schema.org, GTM, and JS errors directly in Chrome Side Panel.

SEO agency website
Showcase for a freelance SEO expert dedicated to improving online visibility and driving organic traffic for businesses.

Modern Website Design 2026 — Trends, Navigation and Inspiration
Bento grid, dark mode, kinetic typography, CSS scroll animations and the evolution of the hamburger menu — a practical guide to 2026 web design trends with examples and an inspiration list.