WordPressで長くサイトを管理していると必ず発生する「記事の削除」や「パーマリンクの変更」、カスタム投稿タイプへの移動、固定ページの階層化などのURL構造の変化。何の対策もせず、訪ね当たらない記事や固定ページ、カスタム投稿タイプなどに対してせっかく訪問してくれた方にブラウザ側で素っ気なく404エラーを出していませんか??
削除した記事やパーマリンク構造を変更した記事などは検索エンジンから検索してアクセスされる他にも外部のサイトからリンクされていたりするもの。外部のサイトからのリンク経由でサイトを訪問してもらえたときにリンク切れだったりしたらリンクを入れてくれているサイトにも失礼ですよね?そういうことにならないために404エラーの対処方法を2つ紹介します。
プラグインを使ってトップページにリダイレクトする
WordPressのプラグインに「404 Redirection」というのがあります。プラグインをインストールして有効化するだけで、404エラーが発生したときに自動でトップページへリダイレクトしてくれるプラグインです。特に設定も必要ないので便利です。
404 Redirectionプラグインについては以下のリンク先ページで詳しく書いていますので参照ください。
404エラー発生時にトップページへリダイレクトするプラグイン「404 Redirection」
404エラー用のページを作って対応する
削除なり変更なりがあったことを知らせるページを用意して、404エラーが出たときに専用ページを表示させる方法です。
テキストなどに以下のコードをコピペして、「404.php」として保存してください
保存したファイルは今使っているテーマファイルの「functions.php」と同じ階層へFTPでアップロードしてください。
404ページ(存在しないページ)のみが専用ページへリダイレクトするかを存在しない適当なURLで試してください。逆に今存在するページは確実に表示されるのかを確認してください。
<?php get_header(); ?>
<div class="post">
<p>申し訳ありません</p>
<h2>お探しのページは削除されています。(404エラー Not Found)</h2>
<p>下記は当サイトの掲載カテゴリー一覧ですので、類似の情報を参照ください。</p>
<ul>
<?php wp_list_categories( $args ); ?>
</ul>
</div>
<?php get_footer(); ?>
表示する文言は適宜変更してください。単純にサイトのヘッダー要素と本文、フッター部分を呼び出していますので、テーマによってはカラムが崩れたりすることがあるかもしれませんが、エラーページとして「ページが存在しない」ことを伝えることが主の目的ですのでそれが分れば特に整える必要はないかと思います。
404エラーの対応は前者と後者どちらがいいのか
前者のプラグインを使うと確かにトップページへ自動でリダイレクトされるので、使っている方が多いと思います。
ただ、リンクや検索経由でアクセスしてくれた方に違う内容も含まれているようなトップページを表示するのはどうか??という感覚もあります。例えばWordPressについてしか情報のないサイトへアクセスがあって、404のためにトップへリダイレクトされる分にはいいのですが、WordPressに関する情報がごく一部であとの大半が別の情報のサイトへWordPress関連の検索経由でアクセスがあった場合、全然意図しないサイトへアクセスしたような感覚になり、「騙されてる?」ようなイメージになってしまう可能性がないとも言えません。
そこで、ないものは「ありません」と断った上で、上記のコードそのままなら記事のカテゴリー一覧を表示して目的のカテゴリーから探してもらうようにした方が、
アクセスした人が
「このページないんだ」
↓
「このサイトにはどんなジャンルの記事があるんだ?」
↓
「このジャンルの中に目的の情報があるかも・・・」
と考えてくれ、変なページにいきなりリダイレクトされるよりも親切かもしれません。
サイトの作り手の考え方次第ですがどちらがいいかを選択して確実にアクセスした人を逃がさない工夫をしていきましょう。