CLS — Cumulative Layout Shift — is the Core Web Vital that measures how much visible content unexpectedly jumps around the page during load. It is a dimensionless score: Google's 'good' threshold is 0.1 or below, 'poor' starts at 0.25. The classic CLS sin is an image that loads without a reserved width and height, so text below it jumps down when the image eventually arrives. Ads, embeds, and late-loading fonts are the other big culprits — especially cookie banners that push content around half a second after paint. CLS is not measured only at load; it accumulates across the whole session. A carousel that reflows after ten seconds still adds to the score. Fixing CLS is mostly mechanical: add width and height attributes to every image, reserve space for ads and embeds with CSS aspect-ratio, and avoid inserting DOM above already-rendered content.
What near-zero CLS takes
CLS on this site sits at or near zero because every image has explicit dimensions, the cookie banner is absent by design, and nothing renders after initial paint. A typical WordPress theme with a few plugins hits CLS above 0.3 — mostly the cookie banner dropping in, the header stickying itself, and lazy-loaded hero images pushing everything down when they finally arrive. Fixing that is usually a one-morning job for a developer who knows what they are doing.
Why CLS is the cheapest performance win
CLS is the metric users actually notice — the one where they click a button, the layout shifts, and they accidentally tap something else. On mobile, that miss-tap often goes to an ad or a Share dialog. For a small business it means users who came to enquire end up abandoning, frustrated. Fixing CLS is almost always the cheapest high-impact performance work available — mostly sizing attributes and aspect-ratio CSS.
Related terms
Bespoke, live in seven days.
£1,000 flat. Paid upfront. Full refund if I miss day seven. Code, hosting, and domain all in your name.