IP로 Googlebot을 검증하고 가짜 Googlebot을 찾아내는 방법
Googlebot 검증 방법: 역방향 및 정방향 DNS 확인, Google이 공개한 IP 대역, 그리고 검증된 Googlebot과 위장된 Googlebot을 나란히 비교한 실제 조회 결과.

User-Agent는 사칭하는 쪽이 마음대로 정할 수 있는 부분입니다. Search Engine Journal이 게시한, 신규 사이트 한 곳에 대한 14일간의 테스트에서는 Googlebot을 자처한 799건의 요청 중 검증된 Google 주소에서 온 것은 107건뿐이었습니다. 작은 사이트 한 곳의 사례이므로 비율이 아니라 경고로 받아들이십시오. 아래에서는 수동 검증, 자동 검증, 그리고 진짜 Googlebot과 가짜 Googlebot을 나란히 비교한 실제 조회 결과를 다룹니다.

Googlebot User-Agent가 아무것도 증명하지 못하는 이유
User-Agent 문자열은 클라이언트가 스스로에 대해 하는 주장일 뿐이며, 어떤 클라이언트든 원하는 문자열을 보낼 수 있습니다. 많은 사이트가 Googlebot에 관대하기 때문에 스크레이퍼는 Googlebot의 User-Agent를 복사합니다. 요청 속도 제한도, 로그인 장벽도, 봇 챌린지도 없기 때문입니다. 그래서 그 이름은 걸칠 가치가 있는 위장이 됩니다.
이를 믿었을 때의 비용은 양쪽 모두에 발생합니다. 가짜 Googlebot을 통과시키면 스크레이퍼가 크롤러 속도로 콘텐츠를 가져갑니다(액세스 로그에서 스크래핑 봇 탐지하기 가이드에서 그 모습을 확인할 수 있습니다). 반대로 진짜 Googlebot을 실수로 차단하면 페이지가 Google 색인에서 사라집니다. 두 경우 모두 해결책은 같습니다. 주소를 검증하는 것입니다. GPTBot, ClaudeBot, 서명된 에이전트는 더 넓은 범위를 다루는 IP로 AI 크롤러 검증하기 가이드에서, 어떤 봇을 차단해야 하는지는 OpenAI의 주요 봇인 GPTBot, OAI-SearchBot, ChatGPT-User 비교 글에서 다룹니다. 이 글은 Google 크롤러만 다룹니다.
Googlebot 수동 검증 방법: 역방향 DNS, 그다음 정방향 DNS
Google은 두 단계의 DNS 확인을 문서화하고 있으며, 두 단계 모두 중요합니다. 다음은 2026-10-05에 실제 Googlebot 주소로 실행한 예시입니다.
# 1. Reverse lookup: which hostname does the IP claim?
dig +short -x 66.249.66.1
# crawl-66-249-66-1.googlebot.com.
# 2. Forward lookup: does that hostname point back to the same IP?
dig +short crawl-66-249-66-1.googlebot.com
# 66.249.66.1
호스트 이름이 googlebot.com으로 끝나고 원래 IP로 다시 해석되므로, 이 요청은 Google에서 온 것입니다. 2단계를 건너뛰는 것이 흔한 실수입니다. IP를 제어하는 쪽은 그 IP의 역방향 DNS 레코드도 제어하므로, 스크레이퍼는 자신의 서버 이름을 crawl-fake.googlebot.com으로 지을 수 있습니다. 하지만 Google의 DNS가 그 이름을 스크레이퍼의 서버로 되돌려 가리키게 만들 수는 없습니다. 위조할 수 없는 검증이 되는 것은 바로 정방향 조회 덕분입니다.
조사 중인 주소 하나를 확인하는 데는 잘 맞습니다. 하지만 트래픽이 많은 로그에는 느립니다. 새 IP마다 DNS 쿼리가 두 번 필요하고, DNS 실패가 거짓 "가짜" 판정으로 이어지기 때문입니다.
Googlebot IP 대역: 세 가지 크롤러 유형, 세 가지 대역 파일
Google의 크롤러는 세 그룹으로 나뉘며, 각 그룹은 고유한 호스트 이름과 공개 IP 목록을 가집니다. 올바른 파일과 IP를 대조하는 것이 DNS 확인의 자동화 버전이며, 대규모 검증의 대부분이 이 방식으로 이루어집니다.
| 유형 | 예시 | 역방향 DNS 형태 | 대역 파일 | robots.txt 준수 여부 |
|---|---|---|---|---|
| 일반 크롤러 | Googlebot | crawl-*.googlebot.com 또는 geo-crawl-*.geo.googlebot.com | common-crawlers.json | 자동 크롤링의 경우 항상 준수 |
| 특수 목적 크롤러 | AdsBot | rate-limited-proxy-*.google.com | special-crawlers.json | 준수하거나 준수하지 않을 수 있음 |
| 사용자 요청 기반 fetcher | Google Site Verifier, 사용자가 요청한 fetch | *.gae.googleusercontent.com 또는 google-proxy-*.google.com | user-triggered-fetchers.json, user-triggered-fetchers-google.json, user-triggered-agents.json | 준수하지 않음, 사용자가 fetch를 요청했기 때문 |
오래된 스크립트가 걸리기 쉬운 부분이 두 가지 있습니다. 첫째, 파일이 이동했습니다. 이전 googlebot.json URL은 이제 /static/crawling/ipranges/common-crawlers.json으로 301 리디렉션으로 응답하므로, 리디렉션을 따라가지 않는 코드는 아무것도 받지 못한 채 조용히 넘어갑니다. 둘째, Google의 검증 페이지에는 업데이트 일정이 명시되어 있지 않습니다. 2026-10-29에 가져온 파일은 전날 날짜였고, 2026-10-05에 가져온 사본은 2026-10-02에 생성되었으며 317개의 프리픽스(그중 170개가 IPv4)가 들어 있었습니다. 파일을 캐시하되 최소한 하루에 한 번은 새로 고치십시오.
표의 출처는 Google의 Verify requests from Google crawlers and fetchers 페이지입니다.
진짜 Googlebot과 가짜 Googlebot의 나란한 비교
차이를 가장 빨리 확인하는 방법은 두 주소를 모두 조회해 보는 것입니다. 2026-10-05에 두 건을 조회했습니다(대역이 바뀌면 결과도 달라집니다). 첫 번째는 Google 공식 문서의 Googlebot 주소인 66.249.66.1입니다. 두 번째는 DigitalOcean 서버인 104.248.50.21입니다. 로그에서 이 주소가 Googlebot User-Agent를 보내고 있다고 가정해 보십시오.
[
{
"ip": "66.249.66.1",
"asn": { "asn": 15169, "org": "GOOGLE - Google LLC", "asn_type": "hosting", "user_type": "search_engine_spider" },
"detection": { "is_hosting": true, "is_vpn": false, "is_proxy": false, "is_tor": false },
"threat": {
"is_crawler": true,
"crawler": {
"verified": true,
"name": "Googlebot",
"operator": "Google",
"category": "search_engine",
"verification_method": "ip_range_list"
}
},
"scoring": {
"fraud_score": 0,
"recommended_action": "allow",
"detection_methods": ["datacenter_ip", "no_ptr_datacenter", "verified_crawler"]
}
},
{
"ip": "104.248.50.21",
"asn": { "asn": 14061, "org": "DIGITALOCEAN-ASN - DigitalOcean, LLC", "asn_type": "hosting", "user_type": "hosting" },
"detection": { "is_hosting": true, "is_vpn": false, "is_proxy": false, "is_tor": false },
"threat": {
"is_crawler": false,
"crawler": { "verified": false, "name": "none", "verification_method": "none" }
},
"scoring": {
"fraud_score": 15,
"recommended_action": "allow",
"detection_methods": ["datacenter_ip", "no_ptr_datacenter"]
}
}
]
첫 번째 주소는 Google의 대역 목록 안에 있으므로 threat.crawler.verified가 true이고, verification_method가 그 방법인 ip_range_list를 알려 줍니다. verified_crawler 신호가 fraud_score를 0으로 낮춥니다. 두 번째는 평범한 클라우드 서버입니다. 어떤 종류의 크롤러도 아니므로, 이 서버에서 온 Googlebot User-Agent 요청은 정의상 가짜입니다.
점수가 하지 않는 일에 주목하십시오. 가짜는 15점에 allow를 받았습니다. 클라우드 서버라는 사실만으로는 악의적이라고 볼 수 없기 때문입니다. "가짜 Googlebot"이라는 판정은 두 사실을 결합해야 나옵니다. 로그에는 Googlebot이라고 되어 있고, 조회 결과는 Google이 아니라고 말합니다. API는 헤더가 아니라 IP를 보므로, 이 비교는 직접 수행해야 합니다.
const claimsGooglebot = /Googlebot/i.test(req.headers["user-agent"] ?? "");
const res = await fetch(`https://api.geoiphub.com/v1/lookup/${clientIp}`, {
headers: { "x-api-key": process.env.GEOIPHUB_KEY },
});
const ip = await res.json();
const isRealGoogle = ip.threat.crawler.verified && ip.threat.crawler.operator === "Google";
if (claimsGooglebot && !isRealGoogle) {
// Treat as an ordinary unverified bot: rate-limit or challenge it.
}
두 주소 모두 키 없이 무료 IP 조회 도구에서 직접 시험해 볼 수 있습니다.
가짜 Googlebot에 대처하는 방법
검증 실패는 공격이 아니라 "검증되지 않은 봇"으로 취급하십시오. 요청을 보낸 쪽은 Google을 사칭하고 있으며, 이는 크롤러로 대우받기를 원한다는 뜻입니다. 그 대우를 없애고 다른 자동화 클라이언트와 똑같이 처리하십시오.
- 크롤러 예외를 없앱니다. 검증되지 않은 Googlebot 이름에는 요청 속도 제한, 페이월, 봇 챌린지 우회를 허용하지 않습니다.
- 주소가 아니라 네트워크 단위로 요청 속도를 제한합니다. 스크레이퍼는 한 제공업체 안에서 IP를 교체합니다. IPv6 출발지의 경우 /64 프리픽스로 IPv6 요청 속도 제한하기 가이드처럼 프리픽스를 기준으로 삼으십시오.
- 검증된 Google 주소를 실수로 차단하지 않습니다. 차단 목록 규칙보다 먼저 검증을 실행하여, 광범위한 호스팅 또는 ASN 차단이 진짜 Googlebot을 걸러내지 않도록 합니다.
- 실제 클라이언트 IP를 검증합니다. 연결된 주소를 사용하거나, 자체 프록시나 CDN이 설정한 경우에만 전달 헤더를 사용하십시오. 클라이언트는 진짜 Googlebot 주소를 포함해
X-Forwarded-For에 무엇이든 써넣을 수 있습니다. - DNS 오류 시에는 열어 둡니다(fail open). 역방향 조회가 시간 초과되었다고 해서 가짜라는 증거가 되지는 않습니다. 대역 파일로 대체하거나, 요청을 통과시키고 나중에 확인하십시오.
- 증거를 남깁니다. 주장된 User-Agent, IP, 검증 결과를 기록하여 "Googlebot" 트래픽 중 얼마나 진짜인지 측정할 수 있게 하십시오.
자동화된 에이전트가 유명한 봇을 점점 더 많이 사칭하는 결제와 가입 단계에도 같은 패턴이 적용됩니다. IP로 결제 단계의 AI 쇼핑 에이전트 사기 차단하기 가이드에서는 검증된 크롤러 플래그와 검증되지 않은 크롤러 플래그가 결제 판단에 어떻게 들어맞는지 보여 줍니다. IP 조회로 식별할 수 있는 봇과 식별할 수 없는 봇 유형은 IP 데이터로 알 수 있는 봇의 정보 개요를 참고하십시오.
IP 검증의 한계
대역 매칭은 주소가 Google의 크롤러에 속한다는 것을 알려 줍니다. 여기에 의존하기 전에 알아 두어야 할 한계가 있습니다.
- Google의 모든 파일을 각각의 이름으로 다룹니다. GeoIPHub는 위 표의 Google 파일 다섯 개를 모두 포함해 19개의 공식 대역 피드에서 크롤러를 검증합니다. 일반 크롤러, 특수 목적 크롤러, 사용자 요청 기반 파일 세 개가 여기에 해당합니다. 2026-10-08에 user-triggered-fetchers.json에 있는
107.178.192.1은verified: true와 함께Googlebot이 아닌name: "GoogleUserTriggeredFetcher"를 반환했습니다.verified만 보지 말고threat.crawler.name도 확인하십시오. - 짧은 지연이 있을 수 있습니다. Google은 파일의 업데이트 일정을 밝히지 않습니다. 저희는 매일 파일을 다시 가져오고 매일 조회 데이터베이스를 재구축하므로, 새로 생긴 Google 프리픽스가 저희를 통해 검증되기까지 최대 약 이틀이 걸릴 수 있습니다. DNS 확인에는 지연이 없습니다.
- 저희 레코드에는 이 주소들의 역방향 DNS가 없습니다. 그래서
dig가crawl-66-249-66-1.googlebot.com을 반환하는데도 위의 진짜 Googlebot에no_ptr_datacenter가 나타납니다. 판정은 안정적인 경로인 대역 목록에서 나오지만, 방법 라벨은 오해를 부릅니다. 이 문제는 버그로 등록해 두었습니다. - 서명된 요청이 다가오고 있지만 아직 Googlebot에는 적용되지 않습니다. Google은 에이전트가 요청에 암호학적 서명을 하게 해 주는 Web Bot Auth를 일부 AI 에이전트에서 자사 인프라로 테스트하고 있습니다. 모든 요청에 서명하는 것은 아니며, Google은 위의 기존 검증 방법을 계속 사용하라고 안내합니다. 서명 검증 방법은 AI 크롤러 검증 가이드에서 다룹니다.
- 실제 Google 주소라고 해서 항상 Googlebot은 아닙니다. Google의 네트워크인 AS15169는 Google Public DNS(
8.8.8.8) 같은 서비스도 운영하며, 저희 조회는 이를 크롤러가 아닌 일반 호스팅으로 평가합니다. 크롤러 대역 파일만 유효하므로 AS15169 전체를 허용 목록에 넣어서는 안 됩니다.
먼저 자신의 로그에서 숫자 하나를 확인해 보십시오. 지난주에 Googlebot을 자처한 요청이 몇 건이었고, 그중 몇 개의 IP가 정방향 확인 DNS 검증을 통과하는지 살펴보십시오. 둘의 차이가 바로 가짜 Googlebot 트래픽이며, 대개 예상보다 큽니다.
자주 묻는 질문
Googlebot의 IP 주소는 무엇입니까?
Googlebot에는 단일 IP 주소가 없습니다. Google이 common-crawlers.json에 공개하는 수많은 프리픽스에서 크롤링하며, 업데이트 일정은 명시되어 있지 않습니다. 2026-10-05에 가져온 사본에는 317개의 프리픽스가 있었고 그중 170개가 IPv4였습니다. Google 공식 문서의 예시인 66.249.66.1도 그중 하나입니다. 하드코딩한 목록 대신 항상 최신 파일과 대조하여 확인하십시오.
요청이 실제로 Googlebot에서 온 것인지 어떻게 검증합니까?
User-Agent가 아니라 IP를 확인하십시오. IP에 대해 역방향 DNS 조회를 실행하여 호스트 이름이 googlebot.com, google.com 또는 googleusercontent.com으로 끝나는지 확인한 다음, 해당 호스트 이름에 대해 정방향 조회를 실행하여 같은 IP가 반환되는지 확인합니다. 대규모 환경에서는 대신 Google이 공개한 대역 파일과 IP를 대조하며, Googlebot의 경우 common-crawlers.json부터 확인합니다.
Google은 Googlebot의 IP 대역을 어디에 공개합니까?
Google의 'Verify requests from Google crawlers and fetchers' 페이지에서 링크된 JSON 파일에 공개합니다. Googlebot과 기타 일반 크롤러는 common-crawlers.json에 있습니다. 이전 googlebot.json 주소는 이제 해당 파일로 301 리디렉션됩니다. AdsBot 같은 특수 목적 크롤러와 사용자 요청 기반 fetcher는 각자의 파일이 따로 있습니다.
모든 Google IP가 Googlebot IP입니까?
아닙니다. Google의 네트워크(AS15169)는 8.8.8.8의 Google Public DNS 같은 다른 Google 서비스도 운영합니다. 크롤러 대역 파일 안에 있는 주소만 Google 크롤러이므로, ASN 허용 목록은 범위가 너무 넓습니다. 저희 조회에서 66.249.66.1은 Googlebot으로 검증되었지만, 같은 이름을 사칭한 DigitalOcean 서버는 검증되지 않았습니다.
Googlebot을 자처하지만 검증에 실패한 요청은 차단해야 합니까?
Googlebot이 아니라 검증되지 않은 일반 클라이언트로 취급하십시오. 다른 봇과 마찬가지로 요청 속도를 제한하거나 챌린지를 적용합니다. 진짜 Googlebot에 부여하는 크롤링 예외를 이들에게 주지 말고, 자체 규칙이 검증된 Google 주소를 절대 차단하지 않는지도 확인하십시오.
GeoIPHub API를 만드는 팀
GeoIPHub IP 인텔리전스 API와 스캐너를 만드는 GeoIPHub 팀이 작성했습니다. 초안은 AI의 도움을 받아 준비하고 팀이 편집합니다. API 예시는 예시용으로 표시된 경우를 제외하고 라이브 API에 대한 실제 조회 결과입니다.


