Bots
AdsBot-Google: allow it or block it?
AdsBot-Google is the agent Google Ads uses to check the quality of the landing pages behind your ads. Allow it if you advertise with Google: blocking it degrades the assessment of pages you pay to promote. Google states it ignores the robots.txt wildcard with the advertiser's permission, so only a group naming AdsBot-Google reaches it.
7 days free · card required
0requests filed as AdsBot-Google · 30 days
of 143,601 AI crawler requests from 7 operators
| Agent | AI requests, 30 days | attensira.com robots.txt |
|---|---|---|
| AdsBot-Google (this page) | 0 | Not reached |
| AdsBot-Google-Mobile | 0 | Not reached |
| Mediapartners-Google | 0 | Not reached |
| OAI-AdsBot | 0 | Wildcard |
None of the 4 had a request filed in the window. User agents as sent, not checked against address lists.
Karl-Gustav Kallasmaa, Founder & CEOLast updated How do I allow or block AdsBot-Google in robots.txt?
Paste this into the robots.txt at the root of your domain. Only a group that names the token reaches it; your * group does not. Beside it, the group attensira.com serves AdsBot-Google today.
# AdsBot-Google ignores the wildcard group. To reach it# you must name it. Blocking it degrades the quality# assessment of your own ad landing pages.User-agent: AdsBot-GoogleAllow: / # The mobile check is a separate token and needs its own# group.User-agent: AdsBot-Google-MobileAllow: /it ignores the User-agent: * group
We do not name AdsBot-Google, and its operator states it ignores the User-agent: * group, so no rule in our file reaches it. Only a group that names AdsBot-Google would.
Read the whole file, or write yours with the robots.txt generator.
Who runs AdsBot-Google, and what is it for?
Google runs it, and we file it under product operations. Checks ad landing pages, or reads pages that show ads, for an ad product. Separate from search indexing, so a rule here is an advertising decision.
From Google’s documentation, read .
Why does AdsBot-Google ignore your wildcard rule?
Because Google says it does, with your permission as an advertiser. Google documents its special-case crawlers, and gives AdsBot as the example, as ignoring the global robots.txt user agent with the ad publisher's permission3. So:
User-agent: *withDisallow: /does not stop AdsBot-Google.User-agent: AdsBot-GooglewithDisallow: /does.
Almost everyone assumes the opposite: that the wildcard is the broad net and a named group the narrow exception. Here the named group is the only thing that reaches the agent at all. The reason is contractual rather than technical. The advertiser is the site owner, and the ads relationship includes permission to check the pages being promoted. A site that "blocked everything" has not blocked this, and that is documented behaviour, not a crawler misbehaving.
What does blocking AdsBot-Google cost you?
It costs you, not Google. Google documents AdsBot-Google as affecting Google Ads' ability to check web page ad quality1. It is checking pages you are paying to send people to. Denying the check degrades the assessment of your own campaigns. The robots.txt block above therefore allows it, and names the mobile token too.
Its traffic is easy to recognise. It appears on advertised URLs and almost nowhere else, and it comes in bursts when campaigns change. If one landing page is fetched far more often than the article beside it, this is usually why.
Why can't you reproduce the landing page problems Google Ads reports?
Because the block is rarely deliberate, and it happens where nobody looks. Google's published header is AdsBot-Google: no Mozilla/5.0, no platform, nothing browser-shaped2. Heuristic bot filters and WAF rules drop exactly that shape. The consequence surfaces days later in the Google Ads console, in front of people with no reason to suspect a CDN rule.
When landing page problems cannot be reproduced by hand, check three places in order: the robots.txt group, the WAF or CDN bot rules, and any application user-agent allowlist. And remember that AdsBot-Google-Mobile is a separate token2; a fix for one leaves the other where it was. Its page is AdsBot-Google-Mobile.
How do I verify that a visit really came from AdsBot-Google?
A user-agent header is free text, so a log line naming AdsBot-Google is a claim until you check it.
Look up the visiting IP, confirm the hostname ends in one of the suffixes in the record, then look that hostname up and confirm it returns the same IP, or match the IP against the published ranges.
Special-case crawlers resolve as rate-limited-proxy-*.google.com, not googlebot.com, and their addresses are in special-crawlers.json. An allowlist built on Googlebot's suffix rejects real AdsBot traffic, and it looks like an intermittent Google failure, not a rule you wrote. Follow any reverse lookup with a forward lookup back to the same address.
How is AdsBot-Google different from Googlebot?
They share an operator and almost nothing else that matters for your rules. AdsBot-Google checks ad landing pages, ignores the wildcard group and belongs to Google's special-case crawlers, which have their own reverse DNS form and range file4. Googlebot indexes for Search, obeys the wildcard group when it has no group of its own, and verifies under googlebot.com.
Job
- AdsBot-Google
- Ad landing page quality checks
- Googlebot
- Search indexing
Wildcard group applies?
- AdsBot-Google
- No, per Google
- Googlebot
- Yes
Reverse DNS
- AdsBot-Google
rate-limited- proxy- *. google. com - Googlebot
googlebot.com
Range file
- AdsBot-Google
- special-crawlers.json
- Googlebot
- common-crawlers.json
Every row is a place where a rule written for one of them silently does the wrong thing to the other.
Is AdsBot-Google part of your AI or search traffic?
No. In the four-way job taxonomy of the AI crawler guide, it is product operations. It builds no index, feeds no model Google documents and produces no citation. A rise in its traffic reflects your own ad spend. Keep it in its own row of a crawler report, not inside a total that anyone reads as interest in your content.
- Reverse DNS ends in
- *.google.com
- IP range file
- special-crawlers.json
ResearcherTranscribed from Google documentation · Agents filed beside AdsBot-Google
In this entry
- Why does AdsBot-Google ignore your wildcard rule?
- What does blocking AdsBot-Google cost you?
- Why can't you reproduce the landing page problems Google Ads reports?
- How is AdsBot-Google different from Googlebot?
- Is AdsBot-Google part of your AI or search traffic?
- How should you match it in logs?
- What can Attensira show you about AdsBot-Google?
How should you match it in logs?
AdsBot-Google carries no version number, which makes it one of the few tokens in this directory that is not volatile. Match the bare token case-insensitively. Decide deliberately whether your matcher should also catch AdsBot-Google-Mobile. A substring match will, and in a report about the mobile ad experience that is exactly wrong.
What can Attensira show you about AdsBot-Google?
AI traffic, on Growth and Business, groups crawler fetches by operator and declared purpose at the edge, so ad checks sit apart from the crawlers and agents that shape AI answers. It reports user agents as sent; the special-case verification stays yours. See crawler logs and the robots.txt generator.
AdsBot-Google (+http:/ / www.google.com/ adsbot.html)
ResearcherTranscribed from Google documentation · Should I allow AdsBot-Google in my situation?
Concrete cases, and what each one implies for this agent.
You blocked everything with a wildcard rule and AdsBot-Google kept arriving.
That is documented behaviour. If you want it to stop, write a group naming AdsBot-Google.
Google documents its special-case crawlers as ignoring the global robots.txt user agent with the ad publisher's permission, so a wildcard rule was never going to reach this agent. Only a specific group does — which is the inverse of how people expect wildcards to work, and worth knowing before you conclude a crawler is misbehaving.
Your Google Ads account is reporting landing page problems that your own testing cannot reproduce.
Check whether AdsBot-Google is being rejected by a robots.txt group, a WAF rule or a user-agent allowlist.
Google documents AdsBot-Google as what Google Ads uses to check web page ad quality, and publishes its header as the bare string "AdsBot-Google (+http://www.google.com/adsbot.html)" with no browser preamble. That shape is exactly what heuristic bot filters drop, and the resulting quality assessment failure surfaces in the ads console rather than anywhere a web team is looking.
You allowlisted verified Google crawlers by reverse DNS to googlebot.com and AdsBot traffic is still being rejected.
Add the special-case crawler hostname form, rate-limited-proxy-***.google.com.
Google documents a different reverse-DNS domain for special-case crawlers than for common crawlers, and publishes their addresses in a separate special-crawlers.json file. An allowlist built only around googlebot.com verifies Googlebot correctly and rejects a genuine AdsBot fetch, which looks like an intermittent Google failure rather than a rule you wrote.
What else do people ask?
What is AdsBot-Google?
Why doesn't User-agent asterisk Disallow stop AdsBot-Google?
Does an AdsBot-Google rule also cover AdsBot-Google-Mobile?
Where do these facts come from?
4 claims on this page, each with the page it was read from; last checked . The numbers in the text point here.
Google documents AdsBot-Google as affecting Google Ads' ability to check web page ad quality, and AdsBot-Google-Mobile as the equivalent token for the mobile web ad quality check.
developers.google.com · retrieved
“Checks Google Ads web page ad quality”
Google documents AdsBot-Google's user agent as "AdsBot-Google (+http://www.google.com/adsbot.html)", and AdsBot-Google-Mobile's as a Nexus 5X Chromium preamble ending in "(compatible; AdsBot-Google-Mobile; +http://www.google.com/mobile/adsbot.html)".
developers.google.com · retrieved
Google documents its special-case crawlers, giving AdsBot as the example, as ignoring the global robots.txt user agent with the ad publisher's permission.
developers.google.com · retrieved
“ignores the global robots.txt user agent (*) with the ad publisher's permission”
Google documents special-case crawlers as using the reverse-DNS hostname form rate-limited-proxy-***-***-***-***.google.com and publishes their address ranges in special-crawlers.json.
developers.google.com · retrieved
Want whatever it takes to win the answer?
7 days free · card required