Google クローラーとフェッチャーの概要(ユーザー エージェント)

Google はクローラーとフェッチャーを使用して、自動的にまたはユーザー リクエストに基づき、サービスのアクションを実行します。クローラー(「ロボット」や「スパイダー」と呼ばれることもあります)は、ウェブページ間のリンクをたどることによってウェブサイトを自動的に検出し、スキャンするプログラムの総称です。フェッチャーは、一般的にユーザーに代わって単一のリクエストをする wget のようなプログラムとして機能します。Google のクローラーには次の 3 つのタイプがあります。

一般的なクローラー Google 製品で使用される一般的なクローラー(Googlebot など)。自動クロールでは常に robots.txt ルールに従います。
特殊なケース用のクローラー 特殊なケース用のクローラーは一般的なクローラーと似ていますが、クロールされるサイトと Google サービス間でクロール プロセスに関して合意がある、特定のサービスで使用されます。たとえば、AdsBot は広告パブリッシャーの許可に基づき、グローバル robots.txt ユーザー エージェント(*)を無視します。
ユーザー トリガー フェッチャー ユーザー トリガー フェッチャーは、エンドユーザーがフェッチをトリガーする、ツールおよびサービスの機能の一部です。たとえば、Google サイト検証ツールはユーザーのリクエストに基づいて動作します。

Google クローラーとフェッチャーの技術的特性

Google のクローラーとフェッチャーは、数千台のマシンで同時に実行することでパフォーマンスを向上させ、ウェブの拡大に伴って拡張できるように設計されています。帯域幅の使用量を最適化するため、クライアントを世界中の多くのデータセンターに分散させることで、アクセスするサイトが近くなるようにしています。そのため、複数の IP アドレスからのアクセスがログに記録される場合があります。Google からのトラフィックは大部分が米国の IP アドレスからですが、サイトが米国からのリクエストをブロックしていることを検出した場合は、他の国の IP アドレスからクロールを試みることがあります。

Google のクローラーとフェッチャーは HTTP/1.1 を使用しますが、HTTP/2 をサポートしているサイトに対しては HTTP/2 を使用します。HTTP/2 を介してクロールすることでサイトと Googlebot のコンピューティング リソース(CPU、RAM など)が節約されます。ただし、サイトにとってサービス特有のメリット(Google 検索でのランキング上昇など)はありません。HTTP/2 を介してクロールされないようにするには、サイトをホストしているサーバーの設定を変更し、Google が HTTP/2 を介してアクセスしようとすると 421 の HTTP ステータス コードで応答するようにしてください。この対応ができない場合は、クロールチームにメッセージを送信できます(ただし、この解決策は一時的なものです)。

Google のクローラーとフェッチャーは、gzipdeflateBrotli(br)のコンテンツ エンコード(圧縮形式)に対応しています。各 Google ユーザー エージェントがサポートしているコンテンツ エンコードは、各リクエストの Accept-Encoding ヘッダーで告知されます。たとえば、Accept-Encoding: gzip, deflate, br のようになります。

サーバーに大きな負荷をかけることなく、1 回のアクセスでサイト内のページをできるだけ多くクロールすることを目標にしています。Google のクロール リクエストへの対応で問題が発生した場合は、クロール頻度を減らすことができます。Google クローラーに不適切な HTTP レスポンス コードを送信すると、Google サービスにおけるサイトの表示に影響が出る場合があります。

Google のクローラーやフェッチャーであることの確認

Google クローラーであることは次の 3 つの方法で確認できます。

  1. HTTP user-agent リクエスト ヘッダー。
  2. リクエストの送信元 IP アドレス。
  3. 送信元 IP の逆引き DNS ホスト名。

これらを使って確認する方法については、Google のクローラーやフェッチャーであることを確認するをご覧ください。