OpenAIGoogle Search Central Blog2026/03/31 0:00

Inside Googlebot: demystifying crawling, fetching, and the bytes we process

要点だけを先に読めるように短く再構成したセクションです。

元記事

Quick Digest

要約

要点だけを先に読めるように短く再構成したセクションです。

openaijamodel: gpt-5-mini-2025-08-07

Inside Googlebot:クロールとバイト制限の要点

Key Points

  • HTMLは最大2MB取得
  • PDFは64MB上限
  • 重要コンテンツを先頭に配置

Summary

Googleのクロール基盤は単一の「Googlebot」プログラムではなく、複数プロダクトが共有する中央化されたフェッチインフラです。本稿は特にURLごとのバイト取得上限(主にHTMLの2MB)と、その影響、エンジニア向けの対策に焦点を当てています。

Key Points

  • 取得上限
    • HTMLはURLごとに最大2MBを取得(HTTPヘッダを含む)。PDFは64MB。クライアント未指定時のデフォルトは15MB。画像・動画は個別ポリシー。
  • 部分取得の扱い
    • 2MBで切られた先のバイトは未取得扱いとなり、インデックスやレンダリング対象外になる。先頭の2MBのみがWRS(Web Rendering Service)と索引に渡される。
  • レンダリング挙動
    • WRSは取得済みのバイトだけでJavaScript/CSSを実行し、画像や動画はリクエストしない。WRSはステートレスでlocalStorageやsessionはクリアされる。
  • リソースごとのカウント
    • HTMLに参照された外部リソース(フォント・一部メディア除く)は、親ページとは別に個別のバイト上限でフェッチされる。

Practical Recommendations

  • 重要要素を上位に配置:meta、<title>、canonical、構造化データ、重要なテキストをHTMLの冒頭に置く。
  • 重い資産は外部化:大きなCSS/JSやbase64埋め込み画像は外部ファイルにしてページ本体のサイズを抑える。
  • インライン肥大化を回避:巨大全文や大量のインラインスクリプト/スタイルは2MB到達を招くため分割・遅延読み込みを検討。
  • サーバ監視:レスポンス遅延が続くとクロール頻度が低下するため、ログ監視とパフォーマンス改善を行う。

Impact for Engineers

  • ページの重要情報がHTML内で後ろに回っていると、検索側で存在しないものと見なされ得る。制作・ビルドパイプラインでHTMLサイズとインライン資産を継続的にチェックすること。

Full Translation

翻訳

原文の流れを保ったまま読める翻訳セクションです。

openaijamodel: gpt-5-mini-2025-08-07

Googlebotの内部:クロール、フェッチ、そして処理するバイトの仕組みを解明

もし Search Off the Record の Episode 105 を視聴したなら、私たちが愛してやまない(そしてサーバーを悩ませる)トピック、つまり Googlebot の内部動作について深掘りしたのを聞いたかもしれません。長い間「Googlebot」という名前は、インターネットを体系的に読み取る単一の疲れを知らないロボットを想起させてきました。しかし現実はもう少し複雑で、ずっと興味深いものです。

本記事では、クロール基盤の中身を覗き、特に私たち自身を混乱させる「バイトサイズの上限(bytesize limits)」に焦点を当てて説明します。

まず、Googlebot は単一のプログラムではありません

歴史的な誤解をまず解消しましょう。2000年代初頭、Google は一つの製品だけを提供していたため、クローラも一つでした。その名称「Googlebot」は残りましたが、今日では Googlebot は中央集約型クロールプラットフォームの一利用者に過ぎません。

サーバーログに Googlebot と表示されるとき、実際には Google Search がアクセスしています。Google Shopping、AdSense などの数十のクライアントも、それぞれ異なるクローラ名で同じ基盤インフラを経由してクロール要求をルーティングします。大きなものは Google Crawler infrastructure site に記載されています。

2MB の制限:サーバーから送られるバイトに何が起きるか

ここでやや混乱が生じます。クロール基盤の各クライアントは、フェッチに関する設定を指定する必要があります。これにはユーザーエージェント文字列、robots.txt でどのユーザーエージェントトークンを参照するか、そして単一 URL からフェッチするバイト数の上限が含まれます。

  • Googlebot は現在、個々の URL につき最大 2MB(PDF を除く)までをフェッチします。これはリソースの最初の 2MB(HTTP ヘッダーを含む)のみをクロールすることを意味します。PDF ファイルの場合は 64MB です。
  • 画像や動画を対象とするクローラは、プロダクトによって閾値が大きく異なります。例えば favicon を取得するクローラは非常に低い上限を持つかもしれませんが、Image Search のクローラは別です。
  • 上限を指定しないその他のクローラに対しては、コンテンツタイプに関係なくデフォルトで 15MB が適用されます。

サーバーから送られるバイトにおける具体的挙動

  • 部分的な取得: HTML ファイルが 2MB を超える場合、Googlebot はページを拒否しません。代わりにフェッチをちょうど 2MB の切り捨て点で停止します。なお、この上限には HTTP リクエストヘッダーも含まれます。

  • カットオフの処理: ダウンロードされたその部分(最初の 2MB 相当のバイト)は、完全なファイルであったかのようにインデックス作成システムと Web Rendering Service(WRS)に渡されます。

  • 見えないバイト: 2MB の閾値を超えて存在するバイトは完全に無視されます。取得されず、レンダリングされず、インデックス化されません。

  • リソースの取得: HTML 内で参照されるあらゆるリソース(メディア、フォント、いくつかの特殊なファイルを除く)は、親 HTML と同様に WRS によって Googlebot として取得されます。各リソースは独自の URL ごとのバイトカウンタを持ち、親ページのサイズには合算されません。

大多数のウェブでは 2MB の HTML ペイロードは非常に大きく、通常この上限に達することはありません。しかし、ページに巨大な inline base64 画像、膨大な量のインライン CSS/JavaScript、あるいはメガバイト単位のメニューが先頭にあると、実際のテキストコンテンツや重要な構造化データが 2MB を超えてしまう可能性があります。重要なバイトが取得されないと、Googlebot にとってそれらは存在しないのと同じです。

バイトのレンダリング

フェッチャが上限まで(あるいはそれ以下まで)バイトを正常に取得すると、そのバトンは WRS に渡されます。WRS は JavaScript を処理し、現代のブラウザに似た方法でクライアントサイドのコードを実行して、ページの最終的な視覚・テキスト状態を把握します。

レンダリングでは JavaScript や CSS のファイルが取り込まれ実行され、XHR リクエストが処理されてページのテキストコンテンツや構造をより良く理解します(画像や動画はリクエストしません)。各リソースに対しても 2MB の上限が適用されます。

ただし、WRS はフェッチャが実際に取得したコードしか実行できません。さらに WRS はステートレスに動作し、リクエスト間でローカルストレージやセッションデータをクリアします。これにより、動的で JavaScript に依存する要素の解釈に特別な影響が出る場合があります。

バイトに関するベストプラクティス

Googlebot が効率的にあなたのコンテンツを取得し理解できるよう、以下のバイトレベルのベストプラクティスを心に留めてください:

  • HTML を軽く保つ: 重い CSS や JavaScript は外部ファイルに分離しましょう。初期 HTML ドキュメントは 2MB に制限されていますが、外部スクリプトやスタイルシートは別個にフェッチされ(それぞれの上限の対象です)、親ページのサイズには合算されません。
  • 順序は重要: meta タグ、<title><link>、canonicals、重要な構造化データなど、最も重要な要素は HTML の上部に置いてください。これによりカットオフより下に埋もれる可能性を減らせます。
  • サーバーログを監視する: サーバーの応答時間を注視してください。サーバーがバイト配信に苦戦している場合、フェッチャはインフラへの過負荷を避けるため自動的にバックオフし、クロール頻度が低下します。

この上限は固定されたものではなく、ウェブの進化や HTML ページの肥大化(あるいは縮小)に伴って将来変更される可能性があります。

クロールは魔法ではなく、バイトの大規模かつ綿密に調整された交換です。私たちの中央フェッチ基盤がどのようにこれらのバイトを取得し制限しているかを理解することで、サイトの最も重要なコンテンツが常に取り込まれるようにできます。

Happy optimizing!

詳しい舞台裏をもっと聞きたいですか?Search Off the Record の Episode 105 を YouTube やお使いのポッドキャスト配信サービスでチェックしてください。

投稿者: Gary

Googlebotの内部:クロール、フェッチ、そして処理するバイトの仕組みを解明 | Google Search Central Blog | DocsDigest