インターネット社会において、検索エンジンは人々が情報にアクセスするための最大のインフラです。業界を牽引するGoogleは、多様な自動クローラー(Crawler / スパイダー)を巡回させ、Webページの取得、コンテンツの解析、インデックス登録を行っています。
知名度の高いGooglebotだけでなく、画像検索、Googleニュース、動画インデックス、広告のリンク先品質をチェックする目的別の専用クローラーが稼働しています。Webマスターやサーバー管理者がサーバー負荷を抑え、正規のクローラーを確実に通過させつつ悪質な偽装ボットを排除するためには、Googleクローラーの動作原理とIPアドレス帯の管理手法を理解することが極めて重要です。
1. Googleクローラーの概要
Googleのクローラーは、Web上のリンクを辿ってコンテンツを収集し、検索インデックスや広告システムへ登録する自律プログラムです。各クローラーは固有の User-Agent ヘッダー を提示し、Webサーバー側でボット種別を識別できるようにしています。
また、Googleの正規クローラーは自律システム番号 AS15169 に属するIPアドレス帯から通信を行います。この特性を利用して、ネットワーク層でのアクセス制限やホワイトリスト運用が可能です。
2. Googleクローラーの公式IPアドレス範囲
Googleのクローラーが使用するIPアドレス帯は、インフラの拡張に伴い随時更新されます。
最新IPアドレスリストの取得
Googleは最新のIPv4およびIPv6範囲を記載した公式JSONファイルを配信しています:
- 公式フィード:googlebot.json
- JSONのデータ構造例:
{
"syncToken": "1699574526355",
"creationTime": "2023-11-09T14:42:06.355Z",
"prefixes": [
{ "ipv4Prefix": "64.233.160.0/19" },
{ "ipv4Prefix": "66.249.64.0/19" },
{ "ipv6Prefix": "2001:4860:4801::/48" }
]
}
syncToken:バージョン追跡用タイムスタンプcreationTime:リスト生成時刻prefixes:正規CIDRプレフィックス一覧
Pythonによる自動同期スクリプト
手動での更新漏れを防ぐため、定期実行スクリプトで最新CIDRを抽出します:
import requests
import json
url = "https://developers.google.com/search/apis/ipranges/googlebot.json"
response = requests.get(url, timeout=10)
data = response.json()
for prefix in data["prefixes"]:
cidr = prefix.get("ipv4Prefix") or prefix.get("ipv6Prefix")
print(cidr)
3. 主要なGoogleクローラーとUser-Agent一覧
Googleの各サービスに応じた専用クローラーの役割と識別ヘッダーは以下の通りです:
| クローラー名称 | User-Agent トークン | 主な用途・機能 |
|---|---|---|
| Googlebot | Googlebot | Google検索用Webページの一般的なクロールとインデックス |
| Googlebot-Image | Googlebot-Image | Google画像検索用メディアの収集 |
| Googlebot-News | Googlebot-News | Googleニュース掲載用コンテンツの収集 |
| Googlebot-Video | Googlebot-Video | 動画メタデータおよび動画ファイルの収集 |
| AdsBot-Google | AdsBot-Google | Google広告のランディングページ品質検査 |
| Google-AdSense | Mediapartners-Google | AdSense広告マッチング用コンテンツ解析 |
| Google-Favicon | Googlebot-Favicon | Webサイトのファビコン画像の取得 |
| Google-AMPHTML | Google-AMPHTML | モバイル高速化(AMP)ページの構文チェックと取得 |
4. 偽装Googlebotを見抜くDNS逆引き検証手順
User-Agentを「Googlebot」に偽装した不正なスクレイパーや攻撃者を排除するため、Googleは DNS逆引き(Reverse DNS Lookup) による相互検証を公式に推奨しています。
ステップ1:逆引きDNSの実行
アクセス元のIPアドレスに対して nslookup を実行します:
nslookup 66.249.66.1
応答例:
Name: crawl-66-249-66-1.googlebot.com
Address: 66.249.66.1
取得したホスト名が .googlebot.com または .google.com で終わっているかを確認します。
ステップ2:正引きDNSによる検証
DNSスプーフィングを防ぐため、得られたホスト名に対して再度正引きを実行します:
nslookup crawl-66-249-66-1.googlebot.com
正引きで得られたIPアドレスが、最初のアクセス元IP(66.249.66.1)と完全に一致すれば、正規のGooglebotであることが証明されます。
Pythonによる自動検証実装例
import socket
def is_valid_googlebot(ip: str) -> bool:
try:
hostname, _, _ = socket.gethostbyaddr(ip)
if not (hostname.endswith(".googlebot.com") or hostname.endswith(".google.com")):
return False
resolved_ip = socket.gethostbyname(hostname)
return resolved_ip == ip
except socket.error:
return False
5. Webサイトでのアクセス制御と負荷管理
① robots.txt によるクローリング制御
User-agent: Googlebot
Disallow: /admin/
Disallow: /private/
Allow: /public/
② WAFおよびファイアウォールでの帯域保護
Cloudflare等のエッジWAFでは、「正規検索ボット」かつ「AS15169」からの通信のみチャレンジ認証をバイパスする設定を行うことで、偽装ボットを自動遮断しつつSEO評価を保てます。
まとめ
検索トラフィックの維持とサーバーリソースの保護を両立させるには、Google公式のIPリスト同期、DNS逆引きによる真偽判定、そして適切な robots.txt 設定の3本柱が不可欠です。インフラの変化に合わせて定期的な見直しを行いましょう。
独自の視点と客観的な報道を、あなたの温かい支援で
表面的なトレンドやアルゴリズムに流されず、事実と深い洞察に基づいた独立した記事をお届けし続けるために。
質の高いオリジナル記事と独立した運営を続けるため、1回のみ、または毎月のご支援をGoogleの安全な決済でお願いいたします。
お支払いはGoogleにより安全に処理されます · いつでも管理・解約できます




コメント