存在しないページは、301?、ハード404?、ソフト404?

ウェブページの閲覧に使われる規格のことを、HTTPプロトコルと言います。

ウェブサーバーとブラウザが、HTTPプロトコルに従ってやりとりするときには、HTTPステータスコード(HTTP Status Code)と呼ばれる通信の状態を、3桁の数字で交わします。

あなたが本格的にWebサイトを管理しているなら、HTTPステータスコードの概要くらいは、理解しておくことをおすすめします。

さしあたり、この記事を読む前に、最低でもHTTPステータスコードの「200」と「404」は抑えておいてください。
※ついでに301、302、500の概要も

200と404をざっくりと説明します。

200は、「OK」を表し、サーバーとクライアント(ブラウザ)のやり取りが正常に行われたことを示します。
何も問題がなければ、200でやりとりされるのでユーザーが普段意識することはありません。

一方404は、「Not Found」を表し、指定したファイル(ウェブページ)が見つからなかったことを示します。
本当にそのページが存在しないこともあるし、単純なURLの打ち間違いで発生することもあります。

さて、ここからが本題です。

存在しないページ、つまりそのままでは404を返す状況をどのようにするべきか、という悩ましい問題があります。

ないんだから、そのまま放っておけばいいという考えもあるでしょうが、存在しないページへのリンク、すなわちリンク切れが多いのはユーザーにとっては不親切と言えます。

SEOの観点から言えば、すでに存在しなくなってしまったページが受けていた被リンクが無駄になってしまいます。

Search Engine JournalのAnn Smatry女史は、次のようにするのがベストだと言っています。

  • 強いページは、存在する別のページに301リダイレクトする
  • それ以外のページは、そのまま404エラーを返す

301で転送することで、すでに存在しなくなったページが持っていた力を別のページに引き継がせるわけですね。
一方で、たいして強くないページは、「もう存在しない」として本来あるべき自然な状態にしておきます。

一見、賢そうに思える手法ですが、Sphinnでは激論を巻き起こしています。

激論といっても、Sugarraeというメンバーが、Ann Smatryに食ってかかっているという感じですが。(??;

大方の意見をまとめると、404のページをそのままにしておくよりは、301を使って存在するページにリダイレクトしたほうが、好ましいようです。

ほぼ等しいコンテンツのページに301するのが最適ですが、内容が近いページあればそこに301するのが次善の策でしょう。

対応するページがなくても、404で「ページが存在しません」とエラー表示するよりは、サイト内の別ページに送ったほうがマシだとも言えます。

また、被リンクをほとんど受けていないとしても、「塵も積もれば山となる」ではありませんが、せっかく集めた被リンクを無駄にするのは、もったいないことです。

Ann Smartyは、301を乱用するとペナルティを受ける可能性があるとの理由から、301の限定利用を勧めていますが、301の使いすぎが危険なのは異なるドメイン間の場合のようで、同一ドメイン内での301の多用は、少なくともペナルティは受けないようです。
数百、数千のリダイレクトを実行しても、何も問題が発生していないというコメントもありました。

Sphinnで、Ann Smatyを攻撃(口撃?)したSugarraeは、ソフト404という方法も使っているそうです。

ソフト404とは、一見すると「ページが見つかりません、もう存在しません」とエラーを返しているのですが、実際には正常な200のステータスコードを返しています。

どういうことかというと、エラーメッセージをが書かれたウェブページを作成しておき、存在しないページにアクセスしたときに表示させるのです。

ユーザーにはエラーページですが、サーチエンジンに対してはきちんと存在する(200を返す)ページです。
※カスタム404ページとは違います。

ユーザーには「もうそのページはありませんよ」と伝えるものの、サーチエンジンには「これがそのページです」と提示しているわけですね。
※ユーザーにもサーチエンジンにも同じページを見せているので、クローキングではありません。

こちらも賢そうな方法に思えますが、Googleからソフト404は「使うな」という指示が出ています。

サーチエンジンのロボットが、存在しないページをクロール・インデックスしようとして時間を消費し、正常に存在するページの取得に悪影響が出るかもしれないからです。

ソフト404を使うくらいなら、ユーザーに対してもサーチエンジンに対しても、通常の404(ハード404)を使って、ハッキリと「存在しません」と伝えたほうがずっと良いとのことです。

存在しないページの取り扱いについては、「これがベスト」という方法はなさそうで、状況によって301と404(ハード404)を、使い分けるのが賢明でしょうか。

301が使えるときは使って、そうではないときは404ですかね。

404で表示するページも標準で準備されているそっけないものではなく、理由を説明して、サイトのトップページやサイトマップのページへのリンクを貼ってあるカスタマイズしたものを作成しておけば、せっかく訪問してくれたユーザーにとっても親切ですね。

あなたは、すでに存在しないページをどのように処理していますか?