Googleは各ページの情報をインデックスするために各サイトにクローラーを巡回させています。
その頻度は基本的にGoogleが自動的に決めていますが、サイトにとってはより早くより多くのURLをインデックスして欲しいかと思いますので、クロール頻度を高めたいと考えている場合が多いのではないでしょうか。
しかしクロール頻度が高すぎると、時にはサーバーダウンなど、サイトのパフォーマンスに悪影響を与えることもあります。
大規模サイト以外の多くのWebサイトでは、クロール頻度や最適化をほとんど気にする必要はありませんが、クロール頻度を確認する方法や、上げる方法、下げる方法をメリットとデメリット、設定手順などとともに紹介します。
クロール頻度が決まる要素
クロール頻度とは、Googleの定義では1秒間あたりのリクエスト数のことです。クロール頻度はGoogleがサイトごとに自動的に決定されるため、サイト側から指定することはできません。
まずは、Googleのクロール頻度がどのように決まるかのイメージを持っておきましょう。
ただし、Googleがどの要素によってクロール頻度が決定しているかは明確に言及されていません。
クロールバジェット
Googleは世界中のウェブサイトを巡回しています。
その際、重視しているのは「ウェブサイトに負荷をかけないこと」です。
クロールバジェットとは、ウェブサイトに悪影響を与えないクロールのしきい値のことです。
クロールバジェットという言葉はGoogle公式用語ではありませんでしたが、2017年の以下のブログで言及されました。
バジェット(予算)の範囲内で、サイトに応じて適切なクロール速度が設定されます。
クロールの必要性があるか
Googleのリソースも有限ですから、たとえクロールバジェットの範囲内であってもGoogleは不必要なクロールを避けようとするでしょう。
その際考慮されるのは以下のような点であると考えられます。
・そのURLは検索ユーザーにとって価値があるか、インターネット上で人気があるか
・そのインデックスは新鮮であるか、以前の更新から時間が経ちすぎていないか
上記の観点から、Googleはクロールする価値のあるサイト・URLは多くクロールしようとするでしょうし、すでにインデックスしているURLであっても更新されていれば積極的に再クロールするものと考えられます。
逆に、あまり価値がなく、他のページで代替できるようなページであればあまりクロールされないと考えられます。
また、新規サイトについても、価値があると認められるためには時間を要するため、公開直後はクロールがいきわたるには時間がかかるでしょう、
特にページ数の多いサイトでは、クロールされる必要性の低いページを削除するなどの、クロール最適化を行う余地が生じます。
Googleのクロールを確認する方法
Googleのクロール状況を確認する方法をご紹介します。
クロールの統計情報
Googleがサイトをどれくらいクロールしているかどうかの統計を確認することができます。
クロールされているファイルの種類や目的だけでなく、クロール時のサーバー応答速度や検知したサイトのエラーなども確認できます。
特に、robot.txtやサーバーエラーについて確認しておくことをおすすめします。「ホストに問題は起きていません」と表示される場合、異常はしきい値の範囲であることを意味しますが、エラーが全くなかったわけではありません。
必ず詳細まで確認するようにしましょう。
Robots.txtはエラーを返し続けていると、サイト全体のクロール停止につながりますので、安定して200もしくは404を返すことが望まれます。
サーバー接続エラーもゼロにすることは難しいかもしれませんが、調査によりエラー率が高まっていた原因が見つかるかもしれません。
クロールの統計情報については合わせて以下を参照ください。
クロールの統計情報
サーバーログを確認する
生のサーバーログを確認することで、Googleのリクエストやそれに対するレスポンスを確認する方法です。
GooglebotのIPは変わることがあるため非公開ですが、ユーザーエージェントは公開されていますので絞り込むとよいでしょう。
一般ユーザーのアクセスと合わせて、サーバーのキャパシティを超えるアクセスがないか、どのようなファイルにアクセスしているか、レスポンスは正常かどうか等を確認するとよいかと思います。
サーバーログの見方はホストしているサーバーごとに異なりますのでご確認ください。
インデックス状況を確認する
クロールを確認することとは多少ずれますが、クロールの結果としてページがインデックスされているかどうかが重要です。
インデックスカバレッジレポートを確認し、特に「クロール済み – インデックス未登録」や「検出 – インデックス未登録」などの、クロールされたのにインデックスされていないものやクロールすべきURLがあるのにクロールされていないものが多く存在していないか確認しておくとよいでしょう。
合わせて、サイトマップから送信したURLが問題なくインデックスされているかどうかを確認します。
サーチコンソール内の「サイトマップ」から送信したサイトマップファイルを選択し、「インデックスカバレッジを表示」をクリックすると、送信したURLに限定されたカバレッジを確認することができます。
サイトマップには重要度の高いURLが記載されているでしょうから、これらのURLのインデックス状況には特に注意を払います。
また、新たなページを公開した場合に、どれくらいの速さでインデックスされるかの時間感覚はある程度持っておくとよいでしょう。
サイトマップを送信していて数時間以内でインデックスされるのであればよいと考えられますが、数日~数週間かかる、もしくはURL検査ツールのインデックスリクエスト機能に頼らないとインデックスされないような場合は改善が必要だと感がられます。
最終更新日を付与したサイトマップを送信しているか、重要なURLがサイトマップに網羅されているか、サイト内の各URLに内部リンクが張り巡らされているかどうかなどを確認するようにしましょう。
問題なさそうな場合には以下で説明するように、コンテンツの品質を高めるか、クロールされるURLを減らす施策が必要であると考えられます。
クロール頻度を上げる方法
多くの方がクロール頻度を上げたいと思っているでしょうが、クロール頻度を上げる直接的な方法は存在しません。
しかし冒頭で紹介したGoogleの公式ブログに立ち戻って、以下の観点が考えられます。
サーバー応答を改善する
Googleはクロールによってサーバーに負荷をかけていると認識した場合、クロール頻度を下げる可能性があります。
そのため、安定的なレスポンスを返せているかどうかは非常に重要です。
クロール頻度の低さの原因がサーバーにある場合には、サーバーを改善すればクロール頻度が向上する可能性があります。
クロールの統計情報やサーバーログによりエラーが返っていないかどうかを確認し、低頻度の理由がサーバーにあると予測できる場合には、サーバー増強・負荷分散・サーバーやウェブサイトプログラムの改善等の適切な対応をするようにしましょう。
クロールされるURLを減らす
クロール頻度が低いと思われる原因のほとんどが、コンテンツ品質の割にクロールすべきURLが多すぎるために、Googleがクロールする価値がないとみなされているのではないかと思われます。
大規模サイトの多くでは、クロールすべきURLが膨大になっているケースが多いのではないでしょうか。
このような場合、クロールする価値が低いURLを減らすことで、クロールさせたいURLへのクロール頻度が向上する可能性があります。
以下のような方法で最適化するとよいでしょう。
・リダイレクトやcanonicaによる正規化
重複ページは必ず正規化を行うことで、非正規へのクロールがされにくくなります。
・内部リンクの正規化
インデックスさせない非正規のURLには極力リンクしないようにして余計なURLへのクロールを抑制します。
・複数のリダイレクトを統一
複数回のリダイレクトを経ている場合、全てのURLがクロール対象となってしまうため、最終的なリダイレクト先に直接転送するようにします。
・URLパラメータを最適化する
コンテンツを変更しないパラメータの生成を抑制し、パタメータの順番などで無用にURLを生成しないようにする
・404やnoindexを適切に使用する
404やnoindexはクロール頻度が大きく下がりますが、不要ページなのに設定されていないURLはクロールバジェットを無駄に消費します。ソフト404などは避け、ステータスコードを適切に設定します。
・robots.txtを使用する
クロールさせたくないURLはブロックするようにします。ただし、外部サイトから参照がある場合は特に、インデックスされてしまう場合はあります。
・nofollowを設定する
インデックスさせない非正規のページへリンクを行う場合、nofollowを設定するとよいでしょう。ただし、nofollowはGoogleが必ず従う指示ではない上、他のページからnofollowのないリンクがある場合などは、クロールが行われてしまう可能性があります。
基本方針としては、不要ページは生成しない>不要ページにリンクしない(Googleに見せない)>不要ページは正規化する、といった重要度で無駄なクロールにつながるページを制御します。
特に大規模サイトではURLパラメータにより膨大なURL数が発生するケースがあり、必要なURL以外はクロールさせないための施策が必要です。
参考:ファセット ナビゲーションのベスト プラクティスと 5 つのワースト プラクティス
コンテンツの品質を改善する
また、クロールさせたいURLについては、コンテンツの品質改善を行うようにします。品質そのものに加えて、そのURLがよく見られており人気があることをGoogleにわかるようにすることも有効であると考えられます。
・重複ページでないことを確認し、重複にあたると考えられる場合は正規化する
・メインコンテンツを充実させ、そのページにしかない情報を強化する
・ページ内に他のページと重複する要素が多すぎる場合は削減することを検討する
・サイト内に品質を高めたコンテンツをなるべく高頻度で追加する
・公開済みのコンテンツを常にアップデートする(最終更新日を更新するためだけの更新はNG)
・公開したコンテンツを検索に限らずさまざまな経路でユーザーに届ける(SNSなど)
なお、新規サイトなどGoogleがコンテンツの品質を測ることが難しい場合にはどうしてもクロール頻度は低くなってしまいます。
地道に施策を続けて積み上げていくほかないでしょう。
クロール頻度を下げる
クロール頻度を下げることは、すなわちGoogleのクローラーのWebへのアクセス数を減らすことを意味します。
SEO上は、クロール頻度を下げることはおすすめできません。
しかしGoogleのクロールが一因となってサーバーのキャパシティを超えてしまうとサーバーダウンにつながってしまい、発生するとサイトの信用度低下や機会損失が起きてしまいます。
クロールによる影響が大きい場合は頻度を下げることもやむを得ないかと思います。
あらかじめリスクやデメリットを把握してから検討するようにしましょう。
このようなことにならないよう、普段から以下の点に心掛けておくことをおすすめします。
・突然のアクセス集中にも耐えられるよう、サーバーのキャパシティを余裕のある状況にしておく
・前述の「クロールすべきURLを減らす」で説明した項目とは逆に、最適化されていないURLが大量に公開された場合などにはクロールが急増してしまう場合があるため、普段からクロールを意識したサイトを心掛けておきましょう。
クロール頻度を下げるデメリット
やむをえない事情があるとはいえ、クロール頻度を下げるのですからインデックス速度や更新速度が低下します。
その結果、以下のような問題が発生することを認識しておきましょう。
● 新規ページがインデックスされるまでに時間を要する
● 既存ページについて、インデックスが更新される頻度が低くなる
● 削除済みページがインデックスに残る時間が長くなる
加えて大きなリスクとして、一度下がったクロール頻度はすぐに回復しない、または完全には回復しない可能性があることは留意しておきましょう。
専用のフォームからクロール頻度を下げる
クロール頻度の変更申請は以下から行うことができます。
https://www.google.com/webmasters/tools/settings
デフォルトではGoogleが最適化を行う設定となっていますが、問題がある場合には「制限する」にチェックします。
※このフォームではクロールを制限する(下げる)ことはできても、上げることはできません。
バーを操作しながら1秒当たりのリクエスト回数とリクエスト間の間隔を指定して保存します。
新たに設定したクロール頻度は数日以内に反映され、 90 日間有効とのことです。
問題が解消されたら期間内であっても元に戻すとよいでしょう。
注意点として、設定はサブドメイン単位での設定となり、ディレクトリごとに設定することはできません。
また、Googleが対応することを約束しているわけではありませんが、状況を詳細に報告するフォームがあります。
https://www.google.com/webmasters/tools/googlebot-report?hl=ja
要望が特殊な場合などに活用するとよいでしょう。
Googlebotに一時的にエラーを返す
Googleのクローラーは、HTTPステータスコードとしてサーバーエラーの「500 Internal Server Error」「503 Service Unavailable」や、短時間に大量の要求を受けたためにサーバーが処理を拒否する「429 Too Many Requests」を含むURLが多数検出されると、そのWebサイト全体に対してクロール頻度を下げる仕様になっています。エラーの数が減ると、クロール頻度は自動的に回復します。
数時間や1〜2日のあいだ、緊急でクロール頻度を下げる必要がある場合は、一時的に、コンテンツの代わりに「500」「503」「429」のHTTPステータスコードを返すエラーページを返すようにするとよいでしょう。
ただし、1〜2日で済まずに数日にわたってこの状況が続く場合は、GoogleのインデックスからそのURLが削除される可能性もあるため、Googleも緊急時以外はこの方法を推奨していません。
robots.txtによるブロックを行う
サーバーログを確認するなどにより、負荷の高いbotエージェントやサイト内領域を特定できた場合、対象のアクセスをブロックすることが効果的であると考えられます。
クロールされるURLを減らす
クロール頻度を上げる方法で紹介したように、不要URLを整理して対象ページへのアクセスを削減する方法です。
反映されるまでに時間を要するため緊急時のアクションとしては心もとないですが、平時の対策として不要URLが膨大になりがちな大規模サイトでは効果が大きいと考えられます。
まとめ
Googleは、高度なアルゴリズムでそれぞれのWebサイトに最適なクロール頻度を決定しています。クロールがよほどサーバーのパフォーマンスに高負荷をかけているといった場合を除けば、Webサイト運営者がクロール頻度を変更する必要に迫られる場面はほとんどないでしょう。
しかし、クロール頻度を上げたい、より早くインデックスしてほしいといった要望は多く存在するでしょう。
まずは運用で不要ページを削減しクロール効率を高めることが効果的だと考えられます。