Free tool, nothing leaves your browser
User agent parser that can prove a crawler is real
Paste a user agent string and it tells you what the string claims to be. Then, because a user agent is self reported text that anything can send, it takes an IP address and checks it against the address ranges Google and Bing publish themselves. A claim you can check beats a claim you have to trust.
The parsing half handles the case that breaks most parsers. Nearly every Chromium browser writes Chrome/x and Safari/537.36 into its own string, so a naive test reports Edge, Opera, Brave, Vivaldi and Samsung Internet all as Chrome. This one tries the specific token before the generic one, reports the engine rather than guessing it from the brand, separates a phone from a tablet on Android by whether the string carries Mobile, and flags headless and driver tokens.
The half that matters at three in the morning is different. When something is crawling your site calling itself Googlebot, the question is whether it is, and that is answered by the address it came from, not by the string it sent.
- 1,669official IP ranges loaded from Google and Bing
- 59tests passing on the parser and the range matcher
- 34crawlers named, 12 verifiable, plus 41 browsers and clients
- 39of 83 major sites now name an AI crawler in robots.txt
01Read the claim, then check it
Paste the user agent string from your access log. If it claims to be a crawler that publishes its address ranges, add the IP from the same log line and the check runs against the published list. Everything happens in your browser and nothing is sent anywhere.
The address ranges are the files Google and Bing publish, stored beside this page with the timestamp each operator stamped on them. Nobody else publishes a machine readable range list, so for every other crawler this page reads the claim and then says plainly that it cannot verify it.
02A user agent string proves nothing on its own
The user agent is a header the client chooses. Setting it to Googlebot takes one line of code, and scrapers do it constantly, because a lot of sites wave through anything that says Googlebot. That is why blocking or allowing on the string alone is not a control, it is a suggestion.
Both operators that publish ranges say the same thing in their own documentation. Confirm the request by address, not by the header. Google gives two ways to do it and this page implements the one a browser can do honestly.
the two checks Google documentseither is sufficient
1. reverse DNS PTR on the IP must end in googlebot.com or google.com
then a forward lookup on that name must return the same IP
a browser cannot do DNS, so this page cannot run it for you
2. published range the IP must fall inside one of the prefixes in the JSON
files Google publishes. That is what the tool above runs.
The second check is the one that works from a static page, so it is the one implemented here. If you need the reverse DNS check as well, run host on the address and then run host on the name it returns, and confirm you get back the address you started with.
03What a match does and does not tell you
A match means the request came from an address the operator publishes as its own. That is a strong signal about origin and it is worth having. It is not a statement that the request is welcome, and there are three specific things it does not mean.
It does not mean the crawler will obey your robots.txt, though Google and Bing do. It does not mean the traffic is harmless, because a real crawler can still hammer a slow endpoint. And it does not stay true, because these lists change. Every file on this page carries the timestamp its operator stamped on it, shown next to the result, so a stale answer is visible rather than silent.
A non match is weaker evidence than a match. It can mean a spoof, and it can equally mean a crawler that simply does not publish ranges, which is most of them. The tool says which of those two it is rather than reporting every non match as a fake.
04The lists this page checks against
Four files, fetched on 2026-08-24 and republished here unmodified. The timestamps are the operators own, not ours.
| List | What it covers | IPv4 | IPv6 | Operator timestamp |
|---|---|---|---|---|
googlebot | Googlebot, the crawler that fetches pages for Google Search | 169 | 146 | 2026-08-21T14:45:42.000000 |
special-crawlers | Google special crawlers such as AdsBot and APIs-Google | 135 | 135 | 2026-08-21T14:46:19.000000 |
user-triggered-fetchers | Google fetchers a user action triggers, such as Site Verifier | 528 | 528 | 2026-08-21T14:45:40.000000 |
bingbot | Bingbot, the crawler for Bing Search | 28 | 0 | 2024-01-03T10:00:00.121331 |
| total | every list this page checks | 860 | 809 |
Google splits its crawlers across three files on purpose. Googlebot is search crawling. Special crawlers cover things like AdsBot. User triggered fetchers cover requests a person set off, such as Search Console inspecting a URL, and that file is the largest of the three.
05Which crawlers real sites actually name
Identifying a crawler is more useful when you know whether anyone else treats it as worth naming. On 2026-08-24, 83 major sites returned a robots.txt, and these are the user agent tokens they name most often. A site is counted once per token however many times it appears.
| Token | Sites naming it | Share |
|---|---|---|
ccbot | 29 | 35 percent |
gptbot | 28 | 34 percent |
claudebot | 28 | 34 percent |
google-extended | 23 | 28 percent |
chatgpt-user | 22 | 27 percent |
anthropic-ai | 22 | 27 percent |
perplexitybot | 22 | 27 percent |
bytespider | 22 | 27 percent |
applebot-extended | 21 | 25 percent |
meta-externalagent | 21 | 25 percent |
amazonbot | 20 | 24 percent |
adsbot-google | 19 | 23 percent |
oai-searchbot | 17 | 20 percent |
facebookbot | 16 | 19 percent |
The AI crawlers are the story in that table. 39 of 83 sites now name at least one, which was rare two years ago. Naming is not the same as blocking, since some of those groups carry an allow rule, and the count is a token match on the user agent line rather than a judgement about intent.
If you are writing rules for any of these, the robots txt checker on this site will tell you which rule actually wins for a given path, including the case where a group named for one crawler silently switches off the rules in the star group.
06The tests this parser passes
A tool that cannot show its own results is asking to be trusted rather than checked. All 59 of these run against the code on this page, and the verification cases run against the real published ranges rather than invented ones.
| Case | Result |
|---|---|
| inCidr4 exact /32 | pass |
| inCidr4 /24 inside | pass |
| inCidr4 /24 outside | pass |
| inCidr4 /0 matches all | pass |
| inCidr4 rejects bad ip | pass |
| inCidr4 rejects bad cidr | pass |
| expand6 loopback | pass |
| expand6 full form | pass |
| inCidr6 /64 inside | pass |
| inCidr6 /64 outside | pass |
| inCidr6 rejects v4 | pass |
| ipKind v4 | pass |
| ipKind v6 | pass |
| ipKind junk | pass |
| googlebot detected | pass |
| googlebot verifiable | pass |
| googlebot-news beats googlebot | pass |
| gptbot detected | pass |
| gptbot NOT verifiable | pass |
| chrome detected | pass |
| macos detected | pass |
| chrome not a crawler | pass |
| firefox detected | pass |
| windows detected | pass |
| edge beats chrome | pass |
| ios detected | pass |
| mobile flag | pass |
| empty ua refused | pass |
| real googlebot v6 verifies | pass |
| real googlebot v4 verifies | pass |
| random public ip does not verify | pass |
| private ip does not verify | pass |
| junk ip refused | pass |
| bingbot v4 verifies | pass |
| Edge not mistaken for Chrome | pass |
| Opera not mistaken for Chrome | pass |
| Samsung Internet detected | pass |
| Vivaldi detected | pass |
| Brave detected | pass |
| Chrome for iOS detected | pass |
| Edge major version | pass |
| Edge engine is Blink | pass |
| Chrome for iOS engine is WebKit | pass |
| IE11 via Trident rv | pass |
| curl detected | pass |
| headless flagged | pass |
| normal chrome not flagged automated | pass |
| iPad is tablet | pass |
| android with Mobile is mobile | pass |
| android without Mobile is tablet | pass |
| smart tv detected | pass |
| playstation is console | pass |
| desktop windows | pass |
| NT 10.0 named honestly | pass |
| NT 5.1 is Windows XP | pass |
| NT 6.1 is Windows 7 | pass |
| iPad platform iPadOS | pass |
| win64 arch | pass |
| linux x86_64 arch | pass |
Read before acting on any verdict above
07What this tool cannot tell you
- LIMITThe IP lists are a snapshot. Google and Bing update them, and each file carries its own creationTime, shown on the page. Re-fetch before treating a verdict as current.
- LIMITAn IP inside an official range is evidence the request came from that operator, not proof that the request is benign. Confirm with reverse DNS as the operators document.
- LIMITOnly Google and Bing publish machine readable ranges. For any other crawler this page can identify the claim in the user agent string but cannot verify it, and it says so rather than guessing.
- LIMITThe robots.txt counts are a fixed list of large sites, not a random sample of the web, and naming a crawler is not the same as blocking it.
- LIMITA user agent string is self reported text. Anything can send anything, which is the whole reason the IP check exists.
- LIMITNo ranking, indexation, traffic, or revenue outcome is promised by this site or by the product it sells.
- LIMITNo end to end run from intake through indexation has been completed by anyone, including the seller, and there are currently no customers, so there are no reviews and no case studies.
- LIMITThe sixty day refund covers whether the software is what this site describes and whether it runs, and never whether a search engine chose to index or rank anything built with it.
08Where the ranges come from
- DATAgooglebot.json, Google's own published Googlebot ranges.
- DATAspecial-crawlers.json, Google's ranges for AdsBot and similar.
- DATAuser-triggered-fetchers.json, Google's ranges for fetches a person set off.
- DATAbingbot.json, Microsoft's published Bingbot ranges.
- DATAThe reference file, all four lists plus the robots.txt token counts, exactly as this page reads them.
This page was built by the pipeline it sells
The tool and the reference data on this page are what the pipeline produces. It refuses a keyword already saturated by an AI Overview, it will not let a page state a number that code did not compute, and it blocks a page that only restates what already ranks. It runs on your machine, there is no hosted service and no account, and you pay once.
Sixty day refund. Nothing about traffic, rankings or indexation is promised here or anywhere else on this site.