410エラーの意味と削除するURLに410を表示させる対処法

スポンサーリンク

検索ページからのリンクでページを開くと「404エラー」と表示されることがよくあります。指定したURLのページが見つからない時に表示されるステータスコードは404です。
同じようにページが表示できない時に表示される「410エラー」があります。

エラー

ここでは「410エラー」の意味や「404エラー」との違いや、自サイトで410を指定する方法について説明します。

HTTPステータスコードの種類

ステータスコードは大きく5つに区分されています。

100番台
リクエストの処理中
200番台
リクエストが処理された
300番台
リダイレクトを処理する
400番台
クライアントのリクエストエラー
500番台
サーバーのエラー

この中でよく見たり使用したりするコードが次の5種類です。

  • 301
  • 302
  • 403
  • 404
  • 500

これらの5種類については後段で詳しく述べますが、さっそく本題の「410」の説明に入ります。

URLが存在しない410エラー

間違ったURLでページを開こうとすると、ほとんどの場合は「404 Not Found」が表示されます。

404エラー

「404 Not Found」には次のような原因があります。

  • ユーザーがURLを間違えて入力した
  • ウェブ管理者がパーマリンク設定を間違えてURLが変わった
  • ウェブ管理者がページを削除した
  • ユーザーに特定のページへのアクセス権が無い(本来は403)

「410」は「410 Gone」と表示されます。404と同じくページが表示されないのですが、Goneは「消滅」と言う意味で、ウェブ管理者が二度と使わないURLを自分で指定する場合にこのコードを使います。

単にページを削除すると、削除したURLに対するリクエストには「404 Not Found」を返します。ユーザーに対してはこれで問題ないのですが、ウェブ管理者にとっては少しうっとうしいことがあります。

それは、検索エンジンは「何かの不具合でページが見つからない」と、判断して繰り返しクロールし続けるからです。

SearchConsoleを開いて「クロールエラー」を見ると、クローラーがやって来る度に「404エラー」が記録されます。
『もう削除したし、リンクも無いのにどうしてまた来るの?』と思っても、クローラーは以前あったURLはクロールしつづけるみたいです。

そこで「410」をhtaccessファイルに記述して、検索エンジンにページを削除したことを知らせるのが「410 Gone」です。

410の記述は次の通りです。

RewriteRule ^hoge\.html$ - [G]

ディレクトリ内のすべてのファイルは次の通りです。

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

WordPressの場合はhtaccessファイルではなく、プラグインを使うといいようです。
》》》410 for WordPress

ウェブサイトを探していて「410エラー」に出くわしたり、ご自分のサイトでページの削除する時に参考にして下さい。

よく出くわすHTTPステータスコード

301リダイレクト
ページやサイトのURLが変更した場合に使います。
302リダイレクト
一時的にURLが変更する場合に使います。
403 Forbidden
アクセス権が無い場合に返されるステータスコードです。
よくある例ではルートディレクトリやサブディレクトリに「index.html index.php index.cgi」などが無い場合です。
404 Not Found
ページが存在しないか、URLが間違っている場合です。
500 Server Error
サーバーにエラーがある場合です。よくある例としては、CGIのパーミッションが間違っているとよくあります。

自サイトにこのようなエラーページが無いか、PC:ステータスコードチェッカーで簡単にチェックできます。

因みに、リクエストもレスポンスも問題なく動いている場合は「200」が返されます。
ステータスコード

コメント