You turned on Auto Ads to skip manual slot management. AdSense reads your DOM, optimizes for revenue, and inserts ads everywhere it sees opportunity. The result is a giant banner sitting over your H1, an in-feed ad jammed inside your sticky nav, and a mobile anchor ad covering the article’s CTA. Disabling Auto Ads loses 20-60% of potential revenue — but you don’t have to. Auto Ads exposes page-level controls that most publishers don’t configure. With 4-5 specific tweaks you keep the revenue and lose the worst placements.
Common causes
Ordered by hit rate, highest first.
1. All Auto Ad formats are enabled by default
When you turn Auto Ads on, AdSense enables every format (anchor, vignette, in-article, in-feed, multiplex, side rail). Most publishers don’t even know which is which, so all of them are “on” producing bad placements.
How to spot it: AdSense → Ads → Edit on your site → check the format toggles. If they’re all on, that’s the source.
2. No “no ad” zones declared
AdSense uses any DOM element that looks “long” or “structured” as a candidate ad slot. Without explicit exclusions, it can pick your nav, header, footer, or comments section.
How to spot it: Open page → DevTools → search for <google-anchor> and data-google-query-id. Note their locations. If they’re inside your header or nav, you have no zone exclusions.
3. Page structure has no clear section boundaries
Auto Ads places in-article ads between sibling <p>, <h2>, etc. If your article is one giant <div> with no semantic breaks, AdSense picks awkward break points (mid-sentence).
How to spot it: View source. Count <h2> / <h3> / clear <p> boundaries. If your article is <div><div><div> deeply nested without semantic tags, AdSense has no good options.
4. Anchor ads enabled on mobile
Anchor ads (sticky bottom bar) cover CTAs, comments, and the article’s last paragraph. On mobile they’re persistent and disproportionately annoying.
How to spot it: Open the page on a phone. If a banner is glued to the bottom of the screen, that’s an anchor ad.
5. Vignette (full-screen) ads on every page transition
Vignette ads show a full-screen interstitial when navigating between pages. They tank user metrics (bounce, time on page) but Auto Ads enables them by default.
How to spot it: Click an internal link. If a full-screen ad appears before the next page, that’s a vignette.
6. AdSense optimization preset is “maximum”
In Auto Ads, there’s an implicit “fill level” — AdSense will pack ads densely if it thinks it can. If you haven’t dialed it back, every page is at maximum.
How to spot it: AdSense → Ads → Auto Ads → “Ad load” slider. If at the maximum, density is too high.
Shortest path to fix
Step 1: Audit the active formats
In AdSense → Ads → Your site → edit Auto Ads. Disable formats you don’t want. Recommended starter config for content sites:
| Format | Recommendation | Why |
|---|---|---|
| In-article | Keep | Highest RPM, least intrusive when placed at section breaks |
| In-feed | Keep if you have a feed | Looks native if your design has a list |
| Anchor | Disable on mobile | Hides CTAs |
| Vignette | Disable | Hurts bounce rate, frustrating UX |
| Multiplex | Test, often disable | ”More content” widget often shows clickbait |
| Side rail | Keep desktop, disable mobile | Stays out of the way on desktop |
Step 2: Exclude regions with CSS selectors
In AdSense → Ads → Auto Ads → Page-level → “Excluded areas,” add selectors:
header, nav, .site-nav, footer, .cta-button, .author-bio, .comments
This stops AdSense from inserting ads inside these elements.
Alternatively, add a class your CSS controls:
<div class="no-ads">
<!-- this region is excluded by AdSense -->
</div>
Then declare .no-ads in the excluded selectors list.
Step 3: Use semantic HTML so Auto Ads picks clean break points
If your article is <div><div><div> nested deeply, refactor to:
<article>
<h1>...</h1>
<p>intro paragraph</p>
<h2>Section 1</h2>
<p>...</p>
<p>...</p>
<h2>Section 2</h2>
<p>...</p>
</article>
AdSense will place in-article ads cleanly between <h2> boundaries.
Step 4: Lower the ad density slider
AdSense → Ads → Auto Ads → “Ad load” → drag slider to about 60-70% of max. Revenue per page drops slightly but RPM often improves because users don’t bounce.
Step 5: Test on a real mobile device after each change
Auto Ads renders differently on mobile vs desktop. After every change, open the site on an actual phone. Don’t trust Chrome DevTools mobile emulation — it doesn’t render anchor ads identically.
Step 6: Wait 48 hours and re-screenshot
Auto Ads changes can take a few hours to propagate fully. Capture screenshots before and after, on desktop and mobile, of 3-4 different article types.
When this is not on you
AdSense optimization is opaque. Even with good settings, you’ll occasionally see a bad placement. Snapshot-monitor weekly, not minute-by-minute. Truly persistent bad placement (same spot, every page, after 48h) is worth fighting; one-offs are tolerable.
Easy to misdiagnose as
Disabling Auto Ads entirely “to fix this” is overcorrection — it loses 20-60% potential revenue. Constrain, don’t kill.
Prevention
- Set up Auto Ads with format restrictions and excluded selectors before flipping it on; don’t enable defaults.
- Audit Auto Ads placement quarterly with screenshots on mobile + desktop.
- Keep semantic HTML in articles so AdSense has obvious section boundaries.
- Disable vignettes globally — they hurt every metric.
- Test on real phones after every change, not just DevTools emulation.
FAQ
- Should I switch to manual ads? Hybrid is common — manual for in-article (your control over placement), Auto for the rest.
- Can I disable anchor ads only on mobile? Yes, in Auto Ads format settings, toggle anchor off in the mobile column.