インターネット社会において、検索エンジンは人々が情報にアクセスするための最大のインフラです。業界を牽引する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ファイルを配信しています:

  1. 公式フィード:googlebot.json
  2. 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 トークン主な用途・機能
GooglebotGooglebotGoogle検索用Webページの一般的なクロールとインデックス
Googlebot-ImageGooglebot-ImageGoogle画像検索用メディアの収集
Googlebot-NewsGooglebot-NewsGoogleニュース掲載用コンテンツの収集
Googlebot-VideoGooglebot-Video動画メタデータおよび動画ファイルの収集
AdsBot-GoogleAdsBot-GoogleGoogle広告のランディングページ品質検査
Google-AdSenseMediapartners-GoogleAdSense広告マッチング用コンテンツ解析
Google-FaviconGooglebot-FaviconWebサイトのファビコン画像の取得
Google-AMPHTMLGoogle-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により安全に処理されます · いつでも管理・解約できます

タグIPWebサイト管理GoogleSEOGooglebotファイアウォール