クロールバジェット (Crawl Budget) とは、Google などの検索エンジンのクローラー (Googlebot) が、一定期間内にあるサイトをクロール (巡回) する回数の上限のことです。Google はサーバーに過度な負荷をかけないよう、サイトごとにクロール頻度を調整しています。
クロールバジェットは 2 つの要素で決まります。1 つはクロール能力の上限 (ホスト負荷) で、Googlebot が同時に張る接続の数と取得の間隔から決まり、応答が遅くなったり、サーバーが 5xx エラーや 429 を返すようになると下がります。もう 1 つはクロールの必要性で、Google が検出している URL の数、サイトやページの人気、最後にクロールしてからの古さなどで決まります。以前の資料では前者を「クロールレートリミット」と呼んでいましたが、現行のガイドでは「クロール能力の上限」という呼び方になっています。
クロールバジェットを意識すべきかどうかは、ページ数だけでは決まりません。Google のガイドは、重複のないページが 100 万以上あってコンテンツが 1 週間に 1 回程度更新されるサイト、または 1 万以上あってかなり頻繁に (毎日) 更新されるサイトを対象に挙げていますが、これらの数値は大まかな目安であって正確なしきい値ではないと明記されています。実務で使える判断材料は、公開したページがその日のうちにクロールされているかどうかです。当日クロールされているなら、サイトマップを最新に保ち、インデックス作成の状況を時々確認するだけで足ります。逆に、大規模サイトで新しいページがなかなかクロールされない場合は、クロールバジェットの最適化が SEO の課題になります。
短縮 URL サービスとクロールバジェットの関係は間接的ですが重要です。短縮 URL を大量に生成するサービスでは、各短縮 URL のページ (プレビューページなど) がクローラーの対象になる可能性があります。ここで注意したいのは、robots.txt と noindex は役割が違うという点です。robots.txt はクロールを止める指定で、インデックスされないことを保証しません。noindex はインデックスを止める指定で、クローラーがそのページを取得できて初めて効きます。同じ URL に両方を指定すると、クロールが止まるために noindex が読まれず、意図した効果になりません。クロール自体を減らしたい URL は robots.txt で、検索結果に出したくないだけの URL は noindex で扱い、どちらか一方を選びます。
クロールバジェットを最適化する主な手法は、サーバーの応答速度を高速に保つ (クロール能力の上限の引き上げ)、重複コンテンツや低品質ページを削除する (クロール対象の絞り込み)、XML サイトマップで重要なページを明示する (クロール優先度の誘導)、robots.txt で不要なパスをブロックする (無駄なクロールの排除) です。