Skip to content
Free tool

Is it really Googlebot? Crawler IP verifier

Check whether an IP from your logs is really Googlebot, Bingbot, GPTBot, ClaudeBot, PerplexityBot, Applebot or Amazonbot, with the evidence.

Is this crawler real?

Published IP ranges and reverse DNS

Paste an address from your server log. Add the user agent it sent and we check that one claim; leave it empty and we check the address against every crawler below.

We do not log or store the address you enter.
What we check, crawler by crawler
Crawler Operator Published IP list Prefixes in our copy Reverse DNS Operator docs
OAI-SearchBot OpenAI searchbot.json 39 Not documented developers.openai.com
ChatGPT-User OpenAI chatgpt-user.json 234 Not documented developers.openai.com
GPTBot OpenAI gptbot.json 18 Not documented developers.openai.com
Claude-SearchBot Anthropic bots.json 14 Not documented support.claude.com
Claude-User Anthropic bots.json 14 Not documented support.claude.com
ClaudeBot Anthropic bots.json 14 Not documented support.claude.com
Perplexity-User Perplexity perplexity-user.json 4 Not documented docs.perplexity.ai
PerplexityBot Perplexity perplexitybot.json 8 Not documented docs.perplexity.ai
Googlebot Google common-crawlers.json 317 googlebot.com, google.com developers.google.com
Bingbot Microsoft bingbot.json 28 search.msn.com www.bing.com
Applebot Apple applebot.json 24 applebot.apple.com support.apple.com
Amazonbot Amazon Amazonbot IP addresses page 1,292 Not documented developer.amazon.com
DuckDuckBot DuckDuckGo duckduckbot.json 486 Not documented duckduckgo.com

An address inside the operator's list is genuine. Where the operator also documents reverse DNS, an address outside its list is checked by DNS before we call it spoofed: the name must sit under the domain shown and resolve back to the same address. Where it documents only the list, an address outside the list is not that crawler.

A user agent is a sentence the client writes about itself. Anyone can send Googlebot/2.1, and scanners do, because some sites wave crawlers through rules that stop everyone else. The address cannot be faked the same way: a request has to come from it for the connection to work. So the question “is this really Googlebot?” is a question about the address, and the operators publish what is needed to answer it.

The two checks operators document

The published IP list. Google, Microsoft, OpenAI, Anthropic, Perplexity, Apple, Amazon and DuckDuckGo each publish the address ranges their crawlers use. If the address is inside one of them, the crawler is genuine. The table under the form links every file we read.

Forward-confirmed reverse DNS. Google, Microsoft and Apple also document a DNS check. Look up the address’s PTR record; the name must end in the operator’s domain; then look up that name and confirm it points back to the same address. The second step is what makes it proof. Whoever controls an address block can set its PTR record to any name, but only the operator controls what googlebot.com names resolve to.

$ dig -x 66.249.66.1 +short
crawl-66-249-66-1.googlebot.com.
$ dig crawl-66-249-66-1.googlebot.com A +short
66.249.66.1

How the verdict is decided

Result When we say it
Genuine The address is in the operator’s published list, or it passes forward-confirmed reverse DNS under the operator’s documented domain.
Spoofed The operator’s own documented check says no. For OpenAI, Anthropic, Perplexity and DuckDuckGo, which document only a list, that means the address is outside the list. For the three that also document DNS, the address must fail the DNS check too.
Could not verify A list could not be fetched or a DNS lookup did not finish. Nothing is concluded from a check that did not run.

One domain is deliberately not accepted for Googlebot: googleusercontent.com. Google’s documentation lists it for user-triggered fetchers, and it is also where rentable Google Cloud machines get their default reverse DNS names. A scanner on a cloud VM therefore passes a naive “does it end in a Google domain” check. It does not pass this one.

Check a list yourself

Most lists are JSON files of CIDR prefixes; Amazon prints its list on a web page instead. Python’s standard library is enough to test an address against one:

import ipaddress, json, urllib.request

url = "https://developers.google.com/static/crawling/ipranges/common-crawlers.json"
data = json.load(urllib.request.urlopen(url, timeout=10))
nets = [ipaddress.ip_network(p.get("ipv4Prefix") or p.get("ipv6Prefix")) for p in data["prefixes"]]

ip = ipaddress.ip_address("66.249.66.1")
print(any(ip in n for n in nets if n.version == ip.version))

What we do with the address you enter

We check it and discard it. It travels in the body of the request rather than the URL, so it does not appear in our access logs, and it is not stored. The range files are fetched from the operators by our server and refreshed every 12 hours. If a refresh fails, the previous copy is used for up to 14 days; the result labels that evidence stale and includes when our copy was fetched.

Frequently asked questions

How do I verify Googlebot?
Check the address against Google's published common-crawlers.json, or run a reverse DNS lookup and confirm the name ends in googlebot.com or google.com and resolves back to the same address. Google documents both methods.
Can a spoofed crawler pass a reverse DNS check?
Not a forward-confirmed one. Whoever controls an address block can set its PTR record to any name, but the forward lookup of that name is answered by the domain's owner, so it will not point back to the spoofer's address.
Why is ClaudeBot only checked against a list?
Anthropic publishes the IP addresses its crawlers use and documents no reverse DNS method. An address outside that list is not ClaudeBot.
Do you log the addresses I check?
No. The address is sent in the request body, checked, and discarded.

Sources

  1. Google: Verifying Googlebot and other Google crawlers
  2. Bing Webmaster Tools: How to verify Bingbot
  3. OpenAI: Overview of OpenAI crawlers
  4. Anthropic: Does Anthropic crawl data from the web
  5. Perplexity crawlers
  6. Apple: About Applebot
  7. Amazon: Amazonbot
  8. DuckDuckGo: DuckDuckBot