Googlebot Verifier
Free, no signup. Anything can put "Googlebot" in a user-agent string — the IP address is what actually tells you who's crawling. Paste it in and get a verdict from two independent methods: the operator's published IP ranges and forward-confirmed reverse DNS (FCrDNS). If it's a fake, you'll see who the IP really belongs to.
Crawler lists updated today.
Published range snapshot is stale. Refresh the operator range files before relying on an IP-range verdict, then rerun the check.
Example data — replace with your own, then press Verify
Checks run from our server; we fetch the URL you enter and don't keep the results. Submitted IPs are checked in memory, never stored. Anonymous aggregate verdict counts feed our research posts; domains are counted once via an anonymized hash, never stored in the clear. Anonymous run-level outcome counters may be used for aggregate research; URLs, domains, IPs, and identifiers are never included, and no statistic is released below 100 runs.
Bot data last synced Jul 27, 2026.
Bulk IPs or access-log lines
Paste up to 500 IPs or log lines. Published-range matching and user-agent claim extraction run entirely in your browser. Use Spot-check only for the few rows where you want live reverse-DNS confirmation.
Sample report Example data — real, DNS-verified result
You spot this line in your access log and want to know if it's really Google:
66.249.66.1 - - [08/Jul/2026:14:22:10 +0000] "GET /pricing HTTP/1.1" 200 "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"
You paste 66.249.66.1 and choose Googlebot. The tool returns:
- Both checks independently pass. The IP falls inside Google's published range and its PTR record forward-confirms — see what the five verdict tiers mean for why that combination is the strongest possible result.
- Serve it normally. A green Verified badge means this really is Googlebot — no reason to block or challenge the request.
- What a fake would look like instead. Had the IP matched no range and failed reverse DNS, the badge would read Spoofed and the evidence would name the network the IP actually belongs to, with copy-paste block rules underneath.
- New to crawler identity checks? User agent covers why the string alone proves nothing, and AI crawlers explains who's crawling and why.
How to use it
- Grab the IP address of the request from your server logs — not the user-agent string, which any script can forge. Paste it into the IP field (IPv4 or IPv6).
- In Claims to be, pick the crawler the user agent says it is (for example Googlebot). Spoof detection only runs when there's a claim to test; leave it on Auto-detect to just see whether the IP belongs to any known crawler.
- Press Verify. The tool checks the operator's published IP ranges and runs forward-confirmed reverse DNS, then returns a coloured verdict badge.
- Open Evidence to see the matched range, the PTR hostname, whether the forward lookup confirmed, and — for fakes — the real network owner (ASN).
- If the verdict is Spoofed, copy the ready-made Cloudflare, nginx, or Apache block rule from the panel that appears.
Site passport Local context for this saved site
Local data
Saved targets, named lists, and recent check summaries remain only in this browser.
Why this verdict
Next steps
- Browse the crawler & AI bot reference
Compare search, AI-training, and AI-search bots, their published ranges, and what can actually be verified.
- Read the AI crawler reference
Understand the major crawlers, their purpose, and the trade-offs before blocking them.
- Check URL status codes
Use a URL list when you need to triage affected requests, not just one IP.
Copy-paste rules for the exact IP. Blocking a single IP is whack-a-mole — for persistent fake-crawler traffic, block by ASN or use your firewall's bot rules.
Rate this tool
Supported bots and verification methods
Not every operator makes verification possible. Some publish IP ranges and support reverse DNS, some publish ranges only, and some publish nothing at all — a user agent alone proves nothing, since any script can send any user-agent string.
| Bot | Operator | Type | Published IP list | Reverse DNS |
|---|---|---|---|---|
| Googlebot · docs | Search | ✅ 315 ranges | ✅ .googlebot.com, .google.com | |
| Google special crawlers · docs | Search | ✅ 270 ranges | ✅ .google.com | |
| Google user-triggered fetchers · docs | User-triggered | ✅ 1506 ranges | ✅ .gae.googleusercontent.com, .google.com, .googleusercontent.com | |
| Bingbot · docs | Microsoft | Search | ✅ 28 ranges | ✅ .search.msn.com |
| YandexBot · docs | Yandex | Search | ❌ none | ✅ .yandex.ru, .yandex.net, .yandex.com |
| Baiduspider · docs | Baidu | Search | ❌ none | ❌ |
| Yeti · docs | Naver | Search | ❌ none | ❌ |
| GPTBot · docs | OpenAI | AI training | ✅ 21 ranges | ❌ |
| OAI-SearchBot · docs | OpenAI | AI search | ✅ 35 ranges | ❌ |
| ChatGPT-User · docs | OpenAI | User-triggered | ✅ 286 ranges | ❌ |
| ClaudeBot · docs | Anthropic | AI training | ✅ 20 ranges | ❌ |
| PerplexityBot · docs | Perplexity | AI search | ✅ 8 ranges | ❌ |
| Perplexity-User · docs | Perplexity | User-triggered | ✅ 4 ranges | ❌ |
| Applebot · docs | Apple | Search | ✅ 12 ranges | ✅ .applebot.apple.com |
| Amazonbot · docs | Amazon | AI training | ❌ none | ✅ .crawl.amazonbot.amazon |
| DuckDuckBot · docs | DuckDuckGo | Search | ✅ 481 ranges | ❌ |
| Meta-ExternalAgent · docs | Meta | AI training | ❌ none | ❌ |
| Bytespider | ByteDance | AI training | ❌ none | ❌ |
How verification works
- Published-range check. The IP is matched against the operator's official IP range list (the same JSON files Google, Microsoft, OpenAI, Perplexity, Apple, and DuckDuckGo publish), refreshed weekly.
- Forward-confirmed reverse DNS (FCrDNS). For bots that support it, the IP's PTR record must resolve to an official hostname (e.g.
crawl-66-249-66-1.googlebot.com) at a domain-label boundary, and a forward lookup of that hostname must answer the exact same IP. Both directions must agree — a PTR record alone is trivially fakeable. - Naming the spoofer. When a claim fails both checks, the IP's actual network owner is looked up via its ASN, so the verdict says who it really is instead of just "not Googlebot."
The three positive verdict tiers are deliberately distinct: reverse-DNS confirmed is proof; a published-list match is strong but not confirmation; and unverifiable bots (Bytespider, ClaudeBot, Meta) publish nothing — treat those user agents with suspicion.
Need evidence across many requests? Use the Log File Analyzer to inspect crawl budget by bot and section, status-code waste, and spoofing signals. Log parsing stays in your browser.
What the results mean
The badge colour maps to one of five verdicts:
- Verified — reverse-DNS confirmed — the strongest result. Forward-confirmed reverse DNS resolves to an official crawler hostname. This is proof.
- In published ranges — the IP falls inside the operator's published IP list. Strong, but not the same as reverse-DNS confirmation (used for crawlers that publish ranges but don't support rDNS).
- Spoofed — the IP claims a crawler it isn't in any range for and fails reverse DNS. The evidence names who the IP really belongs to, and block rules appear below.
- Unverifiable — the claimed operator publishes no IP ranges and supports no reverse DNS (e.g. Bytespider, ClaudeBot, Meta), so the claim can't be confirmed or denied. Treat with suspicion.
- Not a known crawler — the IP doesn't match any known crawler's ranges and no claim resolved. It's ordinary traffic, or a bot you'd manage by behaviour.
How it works
Verification runs on a small server endpoint (/api/verify-bot) because it needs live
DNS and a network-owner lookup your browser can't do. It never runs JavaScript against your site or
stores the IP — the address is checked in memory and discarded.
- Published-range match. The IP is tested against the operator's official CIDR ranges — the same JSON lists Google, Microsoft, OpenAI, Perplexity, Apple, and DuckDuckGo publish, baked into the tool and refreshed weekly.
- Forward-confirmed reverse DNS. For crawlers that support it, the IP's PTR record must resolve to an official hostname at a domain-label boundary, and a forward lookup of that hostname must answer the exact same IP. Both directions must agree.
- Naming the spoofer. When a claim fails both checks, the IP's ASN is resolved so the verdict can say who the network really is instead of just "not Googlebot."
Features
- Two independent checks — published IP ranges and forward-confirmed reverse DNS — not a user-agent string match.
- Five distinct verdicts, including an honest Unverifiable for operators that publish nothing.
- Evidence drawer showing the matched range, PTR hostname, forward-confirmation result, ASN owner, and when the range lists were last fetched.
- Copy-paste block rules (Cloudflare WAF, nginx, Apache) generated for any IP flagged spoofed.
- A coverage table of every supported crawler — operator, type, whether it publishes ranges, and its reverse-DNS suffixes.
- IPv4 and IPv6 supported; IPs are checked in memory and never stored; range lists refreshed weekly.
Limitations
Verification is only as good as what an operator publishes. Crawlers that publish neither IP ranges nor reverse DNS (Bytespider, ClaudeBot, Meta) can only ever come back Unverifiable. The tool checks one IP at a time — for a whole access log, wait for the crawler log analyzer or use the Bulk HTTP Status Code Checker to triage first. It reflects the IP as it is right now; a spoofer that has since moved will read differently. And it verifies identity, not intent — a genuinely verified crawler can still be one you'd rather rate-limit.
Frequently asked questions
How do I verify Googlebot is real?
Take the IP address from your server logs (not the user-agent stringA user agent is the HTTP request header a client (browser, crawler, or bot) sends to identify itself. For crawlers, a short user-agent token — a substring of that string — is what robots.txt rules actually target., which anything can fake) and check it two ways: match it against GooglebotGooglebot is Google's web crawler — the software that fetches pages so Google can index and rank them. It comes in two variants, Googlebot Smartphone (primary, under mobile-first indexing) and Googlebot Desktop, and runs an evergreen Chromium renderer.'s published IP ranges, and run a forward-confirmed reverse DNS lookup — the IP's PTR record should resolve to a hostname ending in googlebot.com or google.com, and a forward lookup of that hostname must return the same IP. This tool does both automatically when you paste the IP and pick Googlebot.
What is forward-confirmed reverse DNS (FCrDNS)?
FCrDNS is a two-way DNS check. First a reverse lookup turns the IP into a hostname via its PTR record; then a forward lookup of that hostname must resolve back to the exact same IP. Both directions have to agree at an official domain boundary. A PTR record on its own proves nothing because the owner of an IP block can set it to any string, so the forward confirmation is what makes it trustworthy.
Why does a crawler show as "unverifiable" instead of verified or spoofed?
Some operators — Bytespider and Meta's crawler among them — do not publish IP ranges or support reverse DNS, so there is no authoritative range/DNS check for their claims. The tool returns "unverifiable" rather than guessing. Anthropic is no longer in that bucket: it publishes an official crawler IP list. A match is reported specifically as a published-list match, not as reverse-DNS confirmation, and a user-agent string alone remains spoofable.
Can I block a fake crawler by IP?
You can, and the tool gives you copy-paste block rules for Cloudflare, nginx, and Apache when a verdict comes back spoofed. But blocking a single IP is whack-a-mole — spoofers rotate addresses. For persistent fake-crawler traffic it is more effective to block by the ASN (network owner) the tool names in the evidence, or to use your firewall's bot-management rules.
Does checking an IP here store or log it?
No. Submitted IPs are checked in memory against the published range lists and live DNS, and are not written to any store. The range lists themselves are refreshed weekly from the operators' official sources, so a verdict reflects ranges that are at most a few days old.
Feature requests for Bot Verifier
Upvote what you want most. New ideas can be submitted from the floating Feedback menu; requests appear here once approved, and the most-wanted rise to the top.
You won't be emailed about that request anymore.
Loading…
➕ Request a feature
New requests are reviewed before they appear here.
Common issues & how to fix them
- Errors Crawler IP is outside the operator’s published range Fix: Treat the crawler as unverified and block or investigate it until its IP matches a published range.
- Errors Reverse DNS does not match the claimed crawler Fix: Treat the request as unverified unless reverse DNS ends in the crawler operator’s published domain; block or investigate mismatches.
- Errors Forward DNS does not confirm the reverse host Fix: Resolve the reverse-DNS hostname and require it to map back to the requesting IP before trusting the crawler.
- Warnings Crawler identity cannot be verified conclusively Fix: Collect the missing evidence and treat the result as unverified until it can be confirmed.
- Warnings Published range snapshot is stale Fix: Refresh the operator range snapshot and rerun verification before trusting the IP verdict.