• 無駄に4xxを使わないように

無駄に4xxを使わないように

Googleでは、米国現地時間2月17日にSearch Central Blogにて、クロール頻度を下げる目的で403や404を乱用しないでという旨の記事を公開しました。和訳しながら、その内容を解説していきたいと思います。

クロール制御が目的の4xx系設定は不要

Googleが言いたいのは、クロール制御を目的として(つまり、クローラーに他のページを見てもらうために、見てほしくないページを制御する目的で)、403や404等、いわゆる4xx系エラーを返さないようにしてくれとのことです。但し429に関してはリクエストが多すぎて(アクセスが多すぎて)サーバ負荷によるエラーになってしまうためクロールのペースを下げてほしい意味合いがあり、それは正しい使い方になるため、同じ4xx系でも対象外です。

ということで、まずはSearch Central Blogの記事を和訳します。

クロール頻度を下げることを目的とした403や404を使用しない

ここ数ヶ月間で、サイトオーナーや一部のコンテンツ配信ネットワーク(CDN)が、404やその他4xxクライアントエラー(429を除く)を使用して、Googlebotのクロール頻度を下げようとする動きが活発になっていることに気付きました。
本記事を要約すると「Googlebotのクロール頻度を減らす方法についてですが、但し、こういうやり方は基本的にしないでください」という内容です。代わりにクロール頻度を減らす方法のドキュメントを読んで、Googlebotのクロール頻度を効果的に管理する方法を学びましょう。
 

おさらい:4xxエラーはクライアントエラーです

サーバがクライアントに返す4xxエラーは、クライアントからのリクエストが何らかの意味で間違っていたことを示すサーバからの信号です。このカテゴリのエラーのほとんどは、「Not found」「Forbidden」「I’m a teapot」(そう、これも存在するのです)等と返され、これ自体は非常に健全なものです。これらのエラーは、サーバ側で何か問題が起きていることを示唆しているわけではありません。
例外は429で、これは「Too many requests」の略です。このエラーは、Googlebotを含む適切なクロールをしているロボットに対して「サーバに負荷がかかりすぎているので、頻度を落とすように」という明確なシグナルを発しています。
 

Googlebotの頻度を減らすための4xxエラーが良くない理由(429を除く)

クライアントエラーは、あくまでもクライアントに起因するエラーです。サーバが過負荷であるとか、重大なエラーに遭遇してリクエストに応答できないとかいうことではありません。単に、クライアントのリクエストに何らかの問題があったということです。仮に404エラーだからといって、それをサーバに負荷がかかっているせいだとして解釈するわけにはいきません。例えば、友人があなたのサイトページ宛てに間違ってリンク設置したために404エラーが大量に発生し、その結果、あなたのサイトページに対するGooglebotのクロール頻度が下がってしまったとしたらどうでしょう?これはかなり不都合なことですよね。403410418も同様です。

ちなみに、対極となる例外は429のステータスコードで、これは「リクエストが多すぎる」という意味です。
 

4xxによるクロール頻度制限がGooglebotに与える影響

4xxのHTTPステータスコードは全て(429を除く)、Google検索からコンテンツを削除することとなります。そのうえ、robots.txtファイルでも4xx HTTPステータスコードで提供しようものなら、そのファイルは存在しないものとして扱われます。例えば、自分が散々着ている洗濯物を洗わないで、と指示したら、Googlebotも汚い洗濯物を放置している状況を分かっているわけで、それはお互いにとって気持ち悪い状況です。
 

Googlebotのクロール頻度を下げる適切な方法

Googlebotのクロール頻度を下げる方法と、Googlebot(とGoogle検索インデックス)がHTTPステータスコードの違いをどう扱うかについては、幅広くドキュメント化していますので是非ご覧ください。要は、以下のいずれかを行っていただきたいのです:

 

より詳細な説明が必要な場合は、Twitterまたはヘルプフォーラムにてご連絡ください。

引用)Search Central Blogを和訳

 

つまり、4xx系エラーは、呼び出しに間違いがあると伝えるステータスコードであって、サーバ側やサイト側でじゃんじゃん使用するような内容ではないよ、とのことです。「そのページは存在していないよ」みたいな感じで、アクセスしたユーザーに教えてあげるような内容なので、クローラーに対して回ってきてほしくないために使うものではないよ、という話です。
但し、429ステータスコードに関しては、「来すぎ、来すぎ、来すぎだから。頻度抑えて」というシグナルなので、この限りではないとのことです。とはいえ、この429もサーバを逼迫させるから、という理由で使用するものであって、単にクローラーを制御するために使うものではありません。

で、どうすれば良いかと言うと、サーバ側の問題で一時的にクロール頻度を下げてもらいたい時に使う500や503ステータスコードを使ってくれと書いてありますが…私から言わせれば、これも正確な対処法ではないでしょうね。Search Consoleでのクロール頻度設定で下げるような設定をするのが適切な対処法になるかと思われます。

とはいえ、本当に存在していないファイルや削除しているファイルなのであれば、普通にファイルを削除した上で404ステータスコードを返すと良いでしょう。但し、せっかく外部からリンク紹介してくれているページだったかもしれませんので、その際は場合によっては301リダイレクト等も視野に入れ、適切なステータスコードを返すようにしてください。

おそらく別に不要なページを落としていったのでは?

そもそもなぜ、Googleがこの注意喚起をしたのかが気になります。おそらくですが「SEO上、サイトのクロール資産を適切なページに割り当てたい」と思い、別に不要なページを404ステータスにしていったサイトが散見されたからだと思います。Googleとしてはポジショントークもあろうかと思いますので、その設定したサイトオーナーの心理を探るのではなく、事実を伝えるのみにとどめたのだと思いますが「クロール資産を操作しようとして、変なことをするな、分かってるぞ」というのが本音なのかもしれません。

というか、私の持論としては、クロール資産を制御したり適切なページをクロールしてほしいなら、サイトをいったん整理した方が良いと思うのです。もっと言えば「クロールしてもらいたいページだけをちゃんと作れ」と言いたいです。「クロールしてほしくないけど、あると便利なページ」というのは基本存在しないと思っている私です。

サイトページのステータスコードを考える時は、本質に合った適切な方法を考えましょう。分からなければいつでもご相談ください。


カテゴリー

新着記事

人気記事

過去記事