Page speed
The anchor ad that shifts your own layout
We reserved height for the anchor ad, the way you are supposed to. AdSense overrode it anyway and shifted the page as the ad filled. Here is the number it cost, and the fix.
By Mario Bailey · Published
The standard advice for keeping ads from shifting a page is to reserve their height so nothing moves when they fill. It works for most units. It does not work for AdSense's own sticky anchor, which injects its own height and steps on the space you reserved. On a site we run, that one unit was the entire Core Web Vitals failure.
What the anchor does
AdSense's anchor ad loads pinned to the bottom of the screen, and when it fills it sets its own container height with an override that beats the height you reserved for it. The page below reflows to make room, which registers as Cumulative Layout Shift, the Core Web Vitals metric for visual stability. Google's bar for a good CLS is under 0.1. On a site we run, the anchor alone drove the home page to 0.303, three times over the line.
| Home page CLS | |
|---|---|
| Before the fix | 0.303 3x over |
| After the fix | 0.013 |
An article page went to 0.001, and the anchor's own contribution to the shift fell to 0.0002, all well under Google's 0.1 line. Same ad, same position.
The fix that worked
You cannot stop AdSense setting its own height, so the fix is to keep the ad out of the layout until after it has filled. The anchor renders translated off the bottom of the screen, fills there where its height change moves nothing, and reveals only once it reports as filled, with its final height frozen before it slides up with a transform. A transform animation does not shift surrounding content, so the reveal is free. The reader still sees a dismissible anchor in their flow. The page just stops paying for it.
Why this is a revenue lever, not just a speed one
Core Web Vitals are a Google Search ranking signal, so a page failing CLS is losing rankings and therefore traffic, which is the traffic that would have earned. And the shift itself is the reader flinching as the page jumps, which is exactly the intrusive-ad experience that suppresses viewability and bids. The web.dev guidance on CLS names ads as one of the largest contributors to layout shift on the web. Fixing the anchor helped rankings, experience, and bid quality at once, which is the whole thesis of this site: on a modern page they are one lever.
How we measured it
Lab Cumulative Layout Shift by page type on a site we run, before and after the anchor-reveal change, with the anchor's own shift isolated. Lab CLS is a controlled measurement; the field value real users generate takes a few weeks to catch up. The mechanism is deterministic and reproducible: the anchor overrides reserved height, and gating its reveal on fill removes the shift.