This page lists every IP address and range Google publishes for Googlebot and its other crawlers, with a Googlebot IP checker at the top. Paste an IP address from your server log into the field below to see whether it falls inside one of those ranges, and in which crawler category. Under the checker is the full list of Googlebot IPs and CIDR ranges from Google’s five JSON files, checked against them daily, followed by how to verify Googlebot with DNS.
Last checked: 21/10/26 · Google last updated the list on 13/10/26
| Network (CIDR) | Version | Type | Reverse DNS |
|---|---|---|---|
| 2001:4860:4801:10::/64 | IPv6 | Common Crawlers | crawl-***.googlebot.com |
| 2001:4860:4801:11::/64 | IPv6 | Common Crawlers | crawl-***.googlebot.com |
| 2001:4860:4801:12::/64 | IPv6 | Common Crawlers | crawl-***.googlebot.com |
| 2001:4860:4801:13::/64 | IPv6 | Common Crawlers | crawl-***.googlebot.com |
| 2001:4860:4801:14::/64 | IPv6 | Common Crawlers | crawl-***.googlebot.com |
| 2001:4860:4801:15::/64 | IPv6 | Common Crawlers | crawl-***.googlebot.com |
| 2001:4860:4801:16::/64 | IPv6 | Common Crawlers | crawl-***.googlebot.com |
| 2001:4860:4801:17::/64 | IPv6 | Common Crawlers | crawl-***.googlebot.com |
| 2001:4860:4801:18::/64 | IPv6 | Common Crawlers | crawl-***.googlebot.com |
| 2001:4860:4801:19::/64 | IPv6 | Common Crawlers | crawl-***.googlebot.com |
Total 2181 IP networks
How to Use the Googlebot IP Checker
Take the IP address from the request you want to check. In a server access log it is usually the first field of the line, next to the user agent that claims to be Googlebot. If your site sits behind a CDN or a proxy, use the visitor IP the CDN passes on, not the IP of the CDN itself.
Paste the address, IPv4 or IPv6, into the checker and press Enter. When the IP falls inside one of Google’s published ranges, the checker shows the range and the crawler category it belongs to. When it does not match, the IP is not in any of the five files as of the last check shown above.
Matching an IP against these ranges is one of the two verification methods Google documents for its crawlers. A match gives you the crawler category, not the specific crawler that sent the request, and it reflects the files as of the last check. The user agent string verifies nothing on its own, because any client can send Googlebot in it. Google: Verify Requests from Google Crawlers and Fetchers
How to Verify Googlebot with Reverse and Forward DNS
The second method checks DNS instead of this list, in two steps.
First, run a reverse DNS lookup on the IP from your log. Use the host command on Linux or macOS, or nslookup on Windows:
# Linux / macOS
host 66.249.66.1
# Windows
nslookup 66.249.66.1For a genuine Googlebot request, the hostname ends in googlebot.com:
1.66.249.66.in-addr.arpa domain name pointer crawl-66-249-66-1.googlebot.comSecond, run a forward DNS lookup on the hostname you got, and check that it returns the IP you started with:
host crawl-66-249-66-1.googlebot.comThe request passes when the hostname ends in googlebot.com, google.com or googleusercontent.com and the forward lookup returns the same IP. Anyone can point the reverse DNS of their own IP at a Google-looking name, but they cannot make Google’s hostname resolve to their IP, which is why the forward lookup is needed.
Googlebot IP and DNS Checks with Different Results
- If the IP is in the ranges but reverse DNS fails, check that you looked up the full address, and that you expected the right hostname: user-triggered fetchers resolve to
gae.googleusercontent.comorgoogle.com, notgooglebot.com. The range match is itself one of the two verification methods. If the DNS still does not point back to Google, I would keep the request unverified and run both checks again later. - If reverse and forward DNS pass but the IP is not in the list, the request passes Google’s DNS method. Make sure the IP was checked against all five files, and look at the last-checked date above the checker, since Google may have added a range after it.
- If neither check passes, the request is not from Google, whatever its user agent says.
Googlebot IP Ranges: Which JSON File Covers Each Bot
Google publishes its crawler IP ranges as five JSON files. Each file covers different Google bots, so a request has to be checked against the file for the bot its user agent names. What each bot does is in my guide to Google’s crawlers and bots.
| IP file | Bots it covers (user agent tokens) |
|---|---|
common-crawlers.json | Googlebot (smartphone and desktop), Googlebot-Image, Googlebot-Video, Googlebot-News, Storebot-Google, Google-InspectionTool, GoogleOther, Google-CloudVertexBot |
special-crawlers.json | AdsBot-Google, AdsBot-Google-Mobile, Mediapartners-Google, APIs-Google, Google-Safety |
user-triggered-fetchers.json and user-triggered-fetchers-google.json | FeedFetcher-Google, Google-Read-Aloud, Google-Site-Verification, GoogleMessages, Google-Pinpoint, Google-CWS, Google-GeminiNotebook |
user-triggered-agents.json | Google-Agent |
Google-Extended is not in the table. It is a robots.txt token, not a crawler, so it has no user agent and no IP addresses of its own.
The table at the top of the page holds 2,181 IP networks (CIDR blocks), IPv4 and IPv6, from all five files. This page is checked against Google’s files daily. Google publishes no update schedule of its own, and last changed the list on 13/10/26.
The raw files on Google’s site:
- common-crawlers.json, the Googlebot ranges
- special-crawlers.json
- user-triggered-fetchers.json
- user-triggered-fetchers-google.json
- user-triggered-agents.json
What the Googlebot IP List Helps You Do
For technical SEO work and server administration, the list helps with:
- Blocking fake bots that send a Googlebot user agent
- Letting real Google requests through firewall and rate-limit rules
- Picking out real Googlebot hits when you study crawl patterns in server logs
- Troubleshooting indexing issues that show up in Search Console
Which IP File Each Google Crawler Category Uses
Google’s documentation defines three categories of crawler: common crawlers, special-case crawlers and user-triggered fetchers. There are five IP files because the third category is split across three of them. What is user-triggered fetcher? A user-triggered fetcher is a bot that fetches a page because a user asked, not as part of proactive crawling. Full definition of user-triggered fetcher
To verify a request, look up the file its crawler is in, not only its category.
Common Crawlers: Googlebot and the General-Purpose Bots
This category holds Googlebot and the other general-purpose crawlers in the first row of the table above.
Special-Case Crawlers: Bots for Ads and Other Google Products
These crawlers work for specific Google products, mainly advertising ones such as AdsBot.
Their reverse DNS hostnames look like rate-limited-proxy-***-***-***-***.google.com, and special-crawlers.json holds 272 (136 IPv4, 136 IPv6) networks.
User-Triggered Fetchers: Fetches a User Starts
In this category the end user triggers the fetch, for example through Google Site Verifier or Read Aloud. Google’s AI agents belong here too.
The category is split across three files:
user-triggered-fetchers.jsonfor fetches by sites and services running on Google Cloud, for example reading an RSS feed for a user of that site, whose reverse DNS ends ingae.googleusercontent.comuser-triggered-fetchers-google.jsonfor fetchers Google itself controls, whose reverse DNS ends ingoogle.comuser-triggered-agents.json, the dedicated file for Google’s AI agents
The two fetcher files together hold 1,572 (786 IPv4, 786 IPv6) networks, and the agents file holds 20 (12 IPv4, 8 IPv6).
The table above gives the agents file its own row because its IP ranges are separate. Google’s documentation still counts those agents as user-triggered fetchers, not as a fourth category.
How Many IP Networks Google Publishes, by Category
Networks per Crawler Category
| Crawler Type | IPv4 | IPv6 | Total |
|---|---|---|---|
| Common Crawlers | 170 | 147 | 317 |
| Special Crawlers | 136 | 136 | 272 |
| User-Triggered Fetchers | 786 | 786 | 1,572 |
| User-Triggered Agents | 12 | 8 | 20 |
| Total | 1,104 | 1,077 | 2,181 |
Most Blocks Are /27 for IPv4 and /64 for IPv6
Google publishes its crawler ranges as small blocks. Most IPv4 blocks are /27 (32 addresses each) and most IPv6 blocks are /64. The smallest block is a /28 and the largest a /16.
How Bing and Other Crawlers Publish Their IPs
Other crawlers handle verification in their own ways:
- Bing publishes the Bingbot ranges at bing.com/toolbox/bingbot.json and also supports reverse DNS verification.
- Facebook’s crawler has only limited published ranges.
- Semrush publishes a list for its bot.
Use the IP Ranges in a Firewall or Script
Before adding a rule, check what your firewall or server already allows or blocks, since an earlier rule may already decide what happens to Google’s traffic. Google changes these ranges without a published schedule, so a list copied once goes stale. Load the ranges from the JSON files and refresh them automatically, or a new Google range ends up blocked.
Allow a Googlebot Range in iptables
To allow a Googlebot range in iptables, add one rule per CIDR block. The -A flag appends the rule to the end of the INPUT chain, so an earlier rule that drops the same traffic still wins. This example allows a single block, and a real setup needs one rule for every range in the files you use:
# Allow Googlebot
iptables -A INPUT -s 66.249.64.0/27 -j ACCEPTMark Googlebot Requests in Nginx
To mark Googlebot requests in Nginx, add a geo block to the http section of your configuration, with one line per CIDR range. The $is_googlebot variable is then 1 for requests from those ranges, and it changes nothing until a rule of yours uses it, for example to exempt those requests from rate limiting:
# geo block to identify Googlebot
geo $is_googlebot {
default 0;
66.249.64.0/27 1;
# ... other networks
}Load the Ranges from Google’s JSON Files in a Script
To build an allowlist in a script, fetch the files from Google and read the prefixes array, where each entry holds an ipv4Prefix or an ipv6Prefix. This request downloads the Googlebot file, and the other four files have the same structure:
# Download all Googlebot IPs
curl https://developers.google.com/static/crawling/ipranges/common-crawlers.json
# Example response structure
{
"creationTime": "2026-07-24T14:46:00.000000",
"prefixes": [
{
"ipv4Prefix": "66.249.64.0/27"
},
{
"ipv6Prefix": "2001:4860:4801:10::/64"
}
]
}In each of these files, the creationTime field shows when Google published it.








