サイトの健全性
ソフト404とは?404ページが正しく機能しているか確認する方法
存在しないURLに正しく404を返せているか、気づきにくい「ソフト404」の検出です。
404ページとは何か
Webサイトでは、リクエストされたURLが存在するかどうかを、サーバーがステータスコードという形で応答する仕組みになっています。存在しないページに対しては404(Not Found)や410(Gone)といったコードを返すのが本来の姿で、これはブラウザや訪問者だけでなく、検索エンジンのクローラーに対しても「このURLには何もない」ことを伝える共通のルールです。この応答が崩れ、存在しないはずのページが200(OK)として扱われてしまう状態は「ソフト404」と呼ばれます。
どうして大事なのか
ソフト404は見た目だけでは気づきにくい問題です。ブラウザには別のページの内容がそれらしく表示されるため、訪問者は違和感を持たないことも珍しくありません。一方で検索エンジンのクローラーにとっては、「存在しないはずのページが200 OKで正常に存在している」という矛盾した情報として扱われ、これが評価やクロールの挙動に影響を及ぼす原因になります。
ここで引っかかると…
この状態が続くと、削除したはずのページがいつまでも検索結果に残り続けることがあります。またクローラーが同じような内容のページを何度も巡回することでクロール効率が落ち、本来インデックスしてほしい新しいページの発見が遅れる原因にもなります。サイトの規模が大きいほど、この影響は積み重なっていきます。逆に、存在しないURLへのアクセスに対して常に404または410のステータスコードが返り続けている状態が理想です。
直す方法
WordPressなど多くのCMSでは、存在しないURLへのアクセスは標準で404を返すよう作られていますが、リダイレクト設定やカスタムルーティングを追加した際に意図せず崩れることがあります。サーバーやフレームワークの設定で、未定義のパスへのアクセス時にトップページへリダイレクト(301/302)している場合は、404を返す専用のエラーページに差し替えます。確認にはブラウザの開発者ツールのNetworkタブや、curlコマンドでステータスコードを直接見る方法が確実です。
Kotoriではどうやって計測しているか
実際には存在しないランダムなURL(例: /kotori-healthcheck-404-3f9a2c)にアクセスし、サーバーが返すステータスコードを確認します。正しく設定されたサイトであれば、存在しないページには404(Not Found)または410(Gone)というステータスコードが返ります。この2つのいずれかが返っていれば合格と判定します。一部のCMSやサーバー設定では、存在しないURLにアクセスしてもエラーとして扱わず、200(OK)というステータスコードとともにトップページなど別のページの内容を表示してしまうことがあります。これが「ソフト404」と呼ばれる状態です。