クロール頻度を下げる目的で404や403を使用しないようにとGoogleが警告

[レベル: 上級]

Googlebot のクロール頻度を下げる目的で 403404 など 400 番台の HTTP ステータスコードを返してはいけない

Google 検索セントラルブログで Gary Illyes(ゲイリー・イリェーシュ)氏がこのように注意喚起しました。

日本語記事がまだ公開されていないので、要点をこの記事で解説します。

4xx はクライエントエラー、クロール頻度に影響しない

400 番台(以降、4xx)の HTTP ステータスコードは、クライアント(≒ブラウザ)に起因するエラーを意味します。

たとえば、404 であれば、間違った URL をクライアントがリクエストしてしてしまい、その URL が見つからなかったため Not found がに返されます。
403 であれば、禁止されている URL にクライアントがアクセスしてしまったために Forbidden が返されます。

「サーバーに負荷がかかっている」のように、サーバー側に発生している問題を意味しません。
したがって、4xx の HTTP ステータスコードを受信しても Googlebot がクロール頻度を下げることはありません。

もし、4xx がクロール頻度に影響するとしたら、逆に困った事態が発生するかもしれません。

たとえば存在しない URL に対して他のサイトから大量のリンクが張られていて、404 を返す URL が Googlebot に検出されたとします。
もし 4xx がクロール頻度を下げてしまうとしたら、サイト運営者が意図していないのに、Googlebot のクロールが減少してしまいます。

例外は 429

クロール頻度に 4xx は影響しませんが、例外があります。
それは、429 です。

429Too Many Requests を意味し、一定期間に一定回数以上アクセスした相手に、サーバーからの応答の継続拒否を伝えます。
この状態が続くと、Googlebot はクロール頻度を抑えます。

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

Googlebot のクロール頻度を下げる適切な方法として、次の 2 つをイリェーシュは推奨しています。

  • Search Console のクロール頻度設定から最大クロール頻度を制限する ※推奨
  • 500503 もしくは 429 の HTTP ステータスコードを返す

イリェーシュによれば、Googlebot のクロールを制御する目的で 4xx を返すサイトや CDN が、ここ数か月増えているのだそうです。
もしあなたが、こうしたサイトに該当するのであれば、正しい方法でクロール頻度を制御してください。

説明したように、404403 ではクロール頻度は下がりません。
意味のないエラーをこうした方法は増やすだけです。

次のドキュメントにも目を通しておきましょう。