Find which elements cause layout shifts and fix the jank.
CLS measures visual stability—how much elements move unexpectedly while the page loads. A high CLS score means users experience jarring shifts, like clicking a button that suddenly moves because an ad loaded above it.
Google considers CLS one of the three Core Web Vitals that directly affect search rankings. A score of 0.1 or below is considered good.
Elements moving after render causes poor user experience and missed clicks.
Most layout shifts come from these common issues
Images without width/height push content when they load.
<img width="800" height="600" ...> Custom fonts can cause text to reflow when they load.
font-display: optional; Ads, embeds, and async content push existing content.
Reserve space with min-height Avoid animating properties that trigger layout.
Use transform, not top/left Banners, cookie notices, and alerts inserted at the top.
Use position: fixed or sticky Async content should have skeleton loaders.
Show skeleton while loading Cumulative Layout Shift (CLS) is a Core Web Vital that measures visual stability. It quantifies how much page content unexpectedly shifts during loading. A good CLS score is 0.1 or less, meaning minimal unexpected movement of visible elements.
This CLS debugger identifies exactly which elements cause layout shifts by analyzing your page with Lighthouse. It shows you the specific DOM elements, their shift scores, and visual overlays highlighting problem areas. Common culprits include images without dimensions, ads, embeds, and dynamically injected content.
High CLS is typically caused by: images or videos without explicit width/height attributes, ads or embeds that resize after loading, web fonts causing FOUT/FOIT, dynamically injected content above existing content, and animations that trigger layout changes instead of using transform.
To fix CLS: always set width and height on images and video elements, reserve space for ads and embeds with CSS aspect-ratio, use font-display: optional or swap with fallback fonts, avoid inserting content above existing content, and use CSS transforms for animations instead of properties that trigger layout.
Lab CLS measures layout shifts during initial page load in a controlled environment. Field CLS (from real users) captures shifts throughout the entire page session, including those from user interactions. Field data often shows higher CLS because it includes shifts from lazy-loaded content and user-triggered changes.
Explore more Core Web Vitals tools