HTTPステータスコードの404と410の扱いをGoogleは今は微妙に区別していた

[対象: 上級]

Googleは、HTTPステータスコードの404と410を現在は区別して取り扱うようになっているようです。
そうは言っても404と410の差異は非常に小さなものになります。

英語版のGoogleウェブマスター向け公式ヘルプフォーラムで投稿のあった質問に対してGoogle社員のJohn Mueller(ジョン・ミューラー)氏が念入りに確認した結果明らかになりました。

we are now treating 410s slightly differently than 404s. In particular, as I mentioned above, when we see a 404 we’ll sometimes want to confirm it to make sure that it’s a permanent removal. With a 410 HTTP result code, we don’t need to do that. In practice, for most sites, the difference will be minimal. When a URL returns 410, we might still crawl it from time to time though, just to make sure that it’s still returning a 404/410. If you can’t serve a 410 HTTP result code, then that’s fine — this is not critical.

私たちは、410を404とほんの少しだけ区別して現在は扱っている。上で述べたよう404を見たときは特にそれが永久的な削除なのかを確かめようとすることがときどきある。410のHTTPステータスコードを見たときはそうする必要はない。実際問題として、ほとんどのサイトにとってはその違いはごく小さなものだ。

URLが410を返したときは、それでも依然として404か410を返すかを確認するためにときどきクロールするかもしれない。

410のHTTPステータスコードを出せなかったとしてもそれで構わない。重大なことではない。

今年2月の時点でMatt Cutts(Matt Cutts)氏が確認したときには、404と410をGoogleは区別せず同じように扱っていました。

違うように扱うか検討中だとのことだったのでその後変更を加えたと考えられます。

微妙であったとしても両者の違いを簡単に表すと、404を返すURLにはGooglebotが再訪するが410を返すURLには再訪しない(頻度が下がる)ということです。

404と410はどちらもページが表示されないことに変わりはないのですが、厳密に言うと意味が違います。

404は“Not found”でファイルが「見つからなかった」ことを表します。
たいして410は“Gone”でファイルが「なくなった」ことを表します。

404はURLの打ち間違いやファイルのうっかり削除で意図しないエラーかもしれません。
一方410はサイト管理者が意図してページを削除したときに返すエラーになります。

クローラが来たときにタイミング良く悪く404を返していることがあり得ます。
このため404が返ってきたURLでも元に戻っているのではないかとGooglebotはときどき訪れるのです。
Googleウェブマスターツールの404クロールエラーがなかなか消えない理由の1つです。

410はサイト管理者が削除を認識している証拠なので名目上、Googlebotは再び訪れる必要がないということになります。
ただしそれでも本当なのかどうかを確かめるために再訪問することがあるかもしれないということです(しつこい?)。

両者を区別するとはいえ微妙な違いにとどまっているようです。
削除したURLに対しては絶対的に410を返すべきということでなさそうですね。

とは言え削除したURLの再チェックの間隔を少しでも空けて、Googleにもう消えていることをアピールしたいなら410を返すという選択肢をとってもいいだろうとは考えます。

以前にも説明しましたが復習として、.htaccessを利用して410を返す設定を最後に載せておきます。

− 個別のファイルを削除したとき(例: hoge.html)

RewriteRule ^hoge\.html$ - [G]

− 中にあるファイルをすべて含めてディレクトリごと削除したとき(例: /xyz/)

RewriteCond %{REQUEST_URI} ^/xyz/
RewriteRule .* - [G]