CLS — Layout Stability

High CLS —
Layout Shifts from Ads

Your page jumps every time an ad loads. Users hate it. Google measures it.

Where to find it: Chrome DevTools > Performance Panel > Layout Shift Regions (pink highlights) > Ad Slot Sources

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.

Root Diagnostics

Common Causes

Understanding why this failure occurs is the first step to fixing it permanently.

01

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.

02

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.

03

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.

04

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.

Interactive Standard Operating Procedure

The Fix Blueprint (Interactive SOP)

Check off each step to monitor your implementation progress live!

Implementation Progress: 0% Completed (0/7)

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

1 hour
To identify ad slots causing CLS
1–3 hours
CSS min-height + placeholder implementation

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.