High CLS —
Layout Shifts from Ads
Your page jumps every time an ad loads. Users hate it. Google measures it.
What It Is
CLS — Cumulative Layout Shift — measures the total amount of unexpected visual movement on a page as it loads. Ads are one of the most common causes of high CLS because they're loaded asynchronously: the page renders first, then the ad network injects content into slots. If those slots don't have reserved space, the entire layout below them shifts down when the ad loads. Google's target CLS score is under 0.1. A single large ad loading without reserved space can push CLS above 0.25 — into the Poor range.
Why It Matters
CLS is a confirmed ranking signal. High CLS scores create a frustrating user experience: buttons shift out from under clicks, text jumps while being read, form fields move as users are typing. Users who experience layout shifts have significantly higher bounce rates and lower conversion rates. For publisher clients running display advertising, high CLS is particularly damaging because the ads themselves are causing the ranking penalty that suppresses the traffic those ads depend on.
Common Causes
Understanding why this failure occurs is the first step to fixing it permanently.
Ad Slots Without Reserved Height
Ad containers have no height defined before the ad loads. The browser renders surrounding content, then shifts everything when the ad injects its content.
Variable Ad Sizes
The ad network serves different sized creatives (300x250, 300x600, etc.) into the same slot. Without knowing which size will load, the page can't reserve the right space in advance.
Ads Loaded in Viewport
Ads loading in the visible viewport (above the fold) cause the highest CLS scores because the shift happens while the user is actively viewing and interacting with that content.
No Placeholder or Skeleton
There's no visual placeholder in the ad slot while the ad is loading. A placeholder of the correct height eliminates the shift because the layout space is already occupied.
The Fix Blueprint (Interactive SOP)
Check off each step to monitor your implementation progress live!
Tools
-
Chrome DevTools Performance Panel
Free | Record page load to visualize layout shifts with pink region highlights — identifies exactly which elements are shifting and when -
PageSpeed Insights
Free | CLS score with breakdown of contributing elements — use alongside DevTools for full picture -
Google Publisher Console
Free | For Google AdSense/Ad Manager — shows ad slot dimensions and creative sizes being served
Time to Fix
Pro Tip
Reserve height for the maximum creative size, not the average.
Agencies often make the mistake of reserving height for the most common ad size served. But CLS is caused by the ad sizes that are larger than the reserved space — which means the occasional 600px tall creative causes a massive shift even though most ads load at 250px. Always reserve for the maximum possible creative height and center smaller creatives within that space.