Googleのクロールを制御する方法とは?代表的なクローラーも解説
通常、Googleは自動的にWEBサイトをクロールするため、WEB担当者がGoogleのクロールを制御する必要はありません。しかし、更新したページの再クロールをリクエストしたいことやインフラへの負荷を下げるためにクロール頻度を下げてほしいということもある。このようなときには自分からのクロールを制御する動きが必要です。
Googleに再クロールをリクエストする方法
サイトにページを追加した場合やページを更新した場合、Googleは自動的にクロールをしてくれますが、インデックスの再登録をGoogleのリクエストすることはできます。ただし、リクエストを送ってもクロールには数日から数週間かかることがあり、クロールしても検索結果には表示されないことがあります。
検索結果に出てこないのはGoogleのシステムが高品質で有用なコンテンツを優先して表示することに起因していますが、時間の経過とともに表示されるようになったり、時間をおいて再度リクエストを送ることで検索結果に表示される可能性はあります。
URL検査ツールの利用
クロールしてほしいURLが少ない場合にはGoogleサーチコンソールのURL検査ツールを使うことでインデックス登録をリクエストすることができます。ただし、URL送信には上限数が設けられているため、大量のURLを送るのには適していませんし、1回リクエストを送るたびに1分〜2分ほど待たされるため、効率的ではありません。
大量のURLのリクエストを送る場合には次のXMLサイトマップを送信する必要があります。
XMLサイトマップの送信
大量のURLのリクエストを送る場合、GoogleサーチコンソールのXMLサイトマップを送信する方法が有効です。サイトマップはGoogleがサイトのURLを把握するために重要なツールであり、サイトを立ち上げたばかりで他サイトからのリンクがない場合やサイト移転をおこなった直後などGoogleが新サイトを見つける手段がないときにのクロールに役立ちます。
ただし、サイトマップを送信したからといって必ずクロールされるわけではなく、クロールされたとしても検索結果に表示されるとは限りません。また、サイトマップを送信する場合にはクロールしてほしいすべてのURLの掲載が必要ですので、その点にも注意してください。
Googlebotのクロール頻度を下げる
Googleではサイトのクロール頻度を高度なアルゴリズムで最適化しています。1回のアクセスでサイト内のページを効率よくクロールすることでサーバーに大きな負担をかけないようになっていますが、状況によってはサイトのクロールによりサーバーに余計な負荷がかかったり、サービス停止中に無駄なコストがかかることが懸念されます。このような場合、Googleからのクロール頻度を下げることが可能です。
ただし、Googleのクロール頻度を下げてしまうと、その影響はサイト全体に及びます。結果的に、サイト内の検出できるページが減少したり、ページの更新が検知できなくなる可能性があります。また、削除済みのページが長期間インデックスに残り続けるという弊害が起きることも考えられますので、クロール頻度を下げるかどうかは慎重に検討してください。
Google botのクロール頻度を下げるには、次のような方法があります。
- Googleサーチコンソールの設定でクロール頻度を下げる
- ステータスコードを利用してクロール頻度を下げる
※通常、Googleのクロール頻度を下げる必要はありません。SEOの観点ではクロール頻度を上げ、検索結果に表示されるページ数を増やすことを考えるべきですが、例外的にクロール頻度を下げたいという状況の対処法です。恒常的に使うべきものではありませんのでご注意ください。
Googleサーチコンソールの設定でクロール頻度を下げる
Googleサーチコンソールの設定で「Googleの最大クロール頻度を制御する」を選択することでクロール頻度を下げることができます。ただし、この機能は2024年1月8日に廃止になりますので、日常的な管理をする場合にはクロール頻度を下げる必要はありません。
詳細はSearch Console のクロール頻度制限ツールのサポート終了予定に記載がありますが、クロール頻度の自動調整処理が進歩したこととステータスコードによっては自動的にクロール頻度が下がるためです。
ただし、緊急でクロール頻度を下げたい場合には、WEBサイトのログやクロールの統計情報レポートを使って、サイトに対するクロール頻度が多すぎるGoogleクローラを特定し、robots.txtでGoogle botやAdsBotのようなエージェントをブロックしてください。
ステータスコードを利用してクロール頻度を下げる
数時間や数日の期間限定でクロール頻度を下げる必要がある場合、コンテンツの代わりに500、503、429のようなHTTPステータスコードを返すようにしてください。Google botはこのようなステータスコードを読み込むと自動的にクロール頻度を下げるようになっています。
ただし、ステータスコードで500、503、429を返す場合、WEBサイト全体のクロールに影響するため、長期間ステータスコードを変更したことによってGoogleのインデックスからページが削除されてしまう可能性があります。エラー件数が減るとクロール頻度は自動的に回復しますが、一度インデックスから削除されてしまったページは再クロールされるまで検索結果に出ることはありませんのでご注意ください。
参考:代表的なクローラー一覧
- ユーザーエージェントトークンは、サイトのクロールルールを作成するにあたって、robots.txtのUser-agent:行に記述するために使用します。
- 完全なユーザーエージェント文字列は、クローラーの詳細な説明であり、HTTPリクエストとウェブのログに表示されます。
スマートフォン用Googlebot | ● ユーザーエージェントトークン:Googlebot
● 完全なユーザーエージェント文字列:Mozilla/5.0 (Linux; Android 6.0.1; Nexus 5X Build/MMB29P) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/W.X.Y.Z Mobile Safari/537.36 (compatible; Googlebot/2.1; +http://www.google.com/bot.html) |
パソコン用Googlebot | ● ユーザーエージェントトークン:Googlebot
● 完全なユーザー エージェント文字列:Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; Googlebot/2.1; +http://www.google.com/bot.html) Chrome/W.X.Y.Z Safari/537.36 |
画像用Googlebot | ● ユーザーエージェントトークン:Googlebot-Image、Googlebot
● 完全なユーザー エージェント文字列:Googlebot-Image/1.0 |
ニュース用Googlebot | ● ユーザーエージェントトークン:Googlebot-News、Googlebot |
動画用Googlebot | ● ユーザーエージェントトークン:Googlebot-Video、Googlebot
● 完全なユーザー エージェント文字列:Googlebot-Video/1.0 |
Google StoreBot | ● ユーザーエージェントトークン:Storebot-Google
● 完全なユーザー エージェント文字列: ○ デスクトップ エージェント:Mozilla/5.0 (X11; Linux x86_64; Storebot-Google/1.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36 ○ モバイル エージェント:Mozilla/5.0 (Linux; Android 8.0; Pixel 2 Build/OPD3.170816.012; Storebot-Google/1.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Mobile Safari/537.36 |
Google-InspectionTool | ● ユーザーエージェントトークン:Google-InspectionTool、Googlebot
● 完全なユーザー エージェント文字列: ○ モバイル:Mozilla/5.0 (Linux; Android 6.0.1; Nexus 5X Build/MMB29P) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/W.X.Y.Z Mobile Safari/537.36 (compatible; Google-InspectionTool/1.0;) ○ パソコン:Mozilla/5.0 (compatible; Google-InspectionTool/1.0;) |
GoogleOther | ● ユーザーエージェントトークン:GoogleOther
● 完全なユーザー エージェント文字列:GoogleOther |
Google-Extended | ● ユーザーエージェントトークン:Google-Extended |
APIs-Google | ● ユーザーエージェントトークン:APIs-Google
● 完全なユーザー エージェント文字列:APIs-Google (+https://developers.google.com/webmasters/APIs-Google.html) |
クローラーがGoogle botであることの確認方法
Google botと称したスパムからのアクセスなのかどうかを確認する方法は2つあります。通常はコマンドラインツールを使って確認できますが、大量の照合が必要な場合には自動ソリューションを使って公開されているGoogle botのIPアドレスリストとクローラーのIPアドレスを照合する必要があります。
コマンドラインツールを使用する方法
- WEBサーバーにアクセスのあったIPアドレスをhostコマンドを使って、ドメイン名が googlebot.com、google.com、googleusercontent.comのいずれかであることを確認する。
- 取得したドメイン名でhostコマンドを使って、ログに記録のあるIPアドレスと同じかどうかを確認する
ただし、Windows標準のコマンドプロンプトではhostコマンドは使えません。コマンドラインツールは技術者やサーバー管理担当が使うものですので、WEB担当者ではなくサーバー管理担当者に照合を依頼するほうがトラブルが防げます。
自動ソリューションを使用する
クローラーのIPアドレスを、次のGoogleクローラーおよびフェッチャーのIP アドレス範囲のリストと照合し、IPアドレスでGooglebotを識別することもできます。
このリストにないIPアドレスを使用してGoogleがサイトにアクセスする場合がありますが、その場合はアクセスに使用されているIPアドレスを通常のGoogleのIPアドレスのリストと照合してください。
まとめ