検索ページからのリンクでページを開くと「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 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」が返されます。
コメント