• soft 404は存在しないURLを404または410で返し移転時だけ301にする

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を返すよう案内しています。

転送先を選ぶときは、次の順で判断します。

  1. 旧URLと同じ内容を引き継ぐ新URLがあるか調べる
  2. ある場合は、旧URLからその新URLへ301転送する
  3. ない場合は、無関係な上位ページへ転送せず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を使ってください。

戻る