soft 404は存在しないURLを404または410で返し移転時だけ301にする
公開日: 執筆:佐藤
soft 404を直すには、画面に「ページがありません」と表示するだけでなく、HTTP応答をURLの実態に合わせます。内容が存在しないURLは404 Not Foundまたは410 Gone、内容が別のURLへ移った場合だけは、その移転先へ301 Moved Permanentlyを返してください。
ページの見た目が404でも、サーバーが200 OKを返していればsoft 404です。先にHTTPステータスコードを確認し、次に本文と転送先を調べます。
soft 404は存在しないページが200を返す状態を指す
Googleのsoft 404に関する説明では、存在しないページに対して404 Not Foundではなく200 OKを返す状態をsoft 404としています。
たとえば、存在しない商品URLへアクセスしたとき、共通の「商品が見つかりません」というHTMLを表示しながら、応答だけは200 OKになっている場合です。利用者には削除済みと見えても、HTTP応答は有効なページが取得できたことを示します。
確認する対象は二つです。
| 確認対象 | 調べること |
|---|---|
| 画面の内容 | 求めた内容が存在するか、別の案内だけが表示されているか |
| HTTP応答 | 200、301、404、410のどれを返しているか |
画面の文言だけでは判定できません。Googleウェブマスターツールで報告されたURLは、Fetch as Googlebotで取得し、返されたHTTP応答も確認します。
URLの実態から200、301、404、410を選ぶ
ステータスコードは、検索結果に残したいかどうかではなく、そのURLに何があるかで決めます。
| URLの状態 | 返す応答 | 処理 |
|---|---|---|
| 求められた内容が存在する | 200 OK |
正しい内容を表示する |
| 同じ内容が別URLへ恒久的に移った | 301 Moved Permanently |
対応する新URLへ転送する |
| 内容が存在しない | 404 Not Found |
404ページを表示する |
| 内容を削除し、存在しないことを明示する | 410 Gone |
410応答を返す |
200 OKのままにするなら、エラー案内ではなく、そのURLで求められる内容が必要です。内容がないなら、HTMLだけを直すのではなく応答も404または410へ変えます。
301は対応する移転先がある場合だけ使う
削除したURLをすべてトップページへ転送してはいけません。利用者が商品Aを探しているのに会社案内へ送られても、同じ目的を満たせないためです。Googleの404に関する説明も、内容が移った場合は関連する新URLへ301転送し、代わりになる内容がなければ404または410を返すよう案内しています。
転送先を選ぶときは、次の順で判断します。
- 旧URLと同じ内容を引き継ぐ新URLがあるか調べる
- ある場合は、旧URLからその新URLへ301転送する
- ない場合は、無関係な上位ページへ転送せず404または410を返す
表記を間違えたURLから正しいURLへ転送する場合も、意図したページが一つに決まることを確認します。似たページが複数あるなら、機械的に一つへ寄せず、元のリンクやアクセス元を調べます。
404ページを親切にしても応答は404にできる
404ページには、トップページへのリンク、サイト内検索、主要な案内への導線を置けます。利用者を助けるHTMLを表示することと、404 Not Foundを返すことは両立します。
共通テンプレートを使う場合は、存在しないURLでも通常ページと同じ200 OKを返していないか確認してください。CMSのテーマで404画面を作っていても、サーバーやアプリケーションの応答設定が別ならsoft 404は残ります。
修正を制作会社へ依頼するときは、次の三点を受け取ります。
- 対象URLの一覧
- 各URLを200、301、404、410のどれにしたかという対応表
- 修正後に取得したHTTP応答の確認結果
画面制作を依頼しただけでは、HTTP応答まで直ったとは限りません。どのURLを残し、どの内容を移し、どのURLを終了するかはサイト運営者が決めます。
最初の一手は、soft 404として報告されたURLを一件選び、表示内容とHTTPステータスコードを並べて確認することです。内容がないのに200 OKなら404または410へ直し、対応する移転先がある場合だけ301を使ってください。
関連記事

