【WordPress】削除やパーマリンク変更を行った記事や固定ページなどにアクセスされたときに出る「404」エラーの対応

公開日: 更新日: サイト作成日記
Knowledge Base トラブル 対処




WordPressで長くサイトを管理していると必ず発生する「記事の削除」や「パーマリンクの変更」、カスタム投稿タイプへの移動、固定ページの階層化などのURL構造の変化。何の対策もせず、訪ね当たらない記事や固定ページ、カスタム投稿タイプなどに対してせっかく訪問してくれた方にブラウザ側で素っ気なく404エラーを出していませんか??

削除した記事やパーマリンク構造を変更した記事などは検索エンジンから検索してアクセスされる他にも外部のサイトからリンクされていたりするもの。外部のサイトからのリンク経由でサイトを訪問してもらえたときにリンク切れだったりしたらリンクを入れてくれているサイトにも失礼ですよね?そういうことにならないために404エラーの対処方法を2つ紹介します。

プラグインを使ってトップページにリダイレクトする

WordPressのプラグインに「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(); ?>
【注意】コードをコピーして使用する前に必ずお読みください

この記事内にコードが記載されている場合、コードはそのままコピー(いわゆるコピペ)してお使いいただいても構いませんが、以下の件にご留意ください。

使用については自己責任でお願いします

コードの確認は私の管理するサイト、またはテスト環境で問題が起こらなかったものですので、お使いの環境での動作等を保証するものではありません。

万が一このコードを使用してサイトに重篤なトラブルが生じても当サイト、当サイト管理者は一切責任を負いません

コードの変換エラーなどにより動作しない場合、更新エラーが出る場合があります

コードをそのままコピーしても問題なく使えるよう文字列変換を行った上で掲載しておりますが、希に変換できていない場合があり、コードエラーとなることがあります

その場合には以下の方法で修正を行ってみてください

  1. コードの中に全角の記号が入っていませんか?
  2. 半角にすることで解消できます
  3. コードの中に全角の空白(スペース)がありませんか?
  4. 半角にすることで解決できます
  5. 上のようなことがないのに更新できない
  6. 特に日本語での文字列が入っている場合には全角での文字列があるということでエラーになる場合があります。エラーとして返される行の先頭に空白がある場合には空白をなくすことできちんと認識され更新されるようになることが多いです。

コードを転載する場合には

ご自身のサイトで当ページのコードを転載される場合には必ず当ページへのリンクを入れていただきますようお願いいたします


表示する文言は適宜変更してください。単純にサイトのヘッダー要素と本文、フッター部分を呼び出していますので、テーマによってはカラムが崩れたりすることがあるかもしれませんが、エラーページとして「ページが存在しない」ことを伝えることが主の目的ですのでそれが分れば特に整える必要はないかと思います。

404エラーの対応は前者と後者どちらがいいのか

前者のプラグインを使うと確かにトップページへ自動でリダイレクトされるので、使っている方が多いと思います。

ただ、リンクや検索経由でアクセスしてくれた方に違う内容も含まれているようなトップページを表示するのはどうか??という感覚もあります。例えばWordpressについてしか情報のないサイトへアクセスがあって、404のためにトップへリダイレクトされる分にはいいのですが、Wordpressに関する情報がごく一部であとの大半が別の情報のサイトへWordpress関連の検索経由でアクセスがあった場合、全然意図しないサイトへアクセスしたような感覚になり、「騙されてる?」ようなイメージになってしまう可能性がないとも言えません。

そこで、ないものは「ありません」と断った上で、上記のコードそのままなら記事のカテゴリー一覧を表示して目的のカテゴリーから探してもらうようにした方が、
アクセスした人が
「このページないんだ」
  ↓
「このサイトにはどんなジャンルの記事があるんだ?」
  ↓
「このジャンルの中に目的の情報があるかも・・・」
と考えてくれ、変なページにいきなりリダイレクトされるよりも親切かもしれません。

サイトの作り手の考え方次第ですがどちらがいいかを選択して確実にアクセスした人を逃がさない工夫をしていきましょう。

いつでもご相談・サイトカスタマイズの依頼を受け付けています

Wordpressのカスタマイズ、不具合解消のご相談はすべてココナラのダイレクトメッセージからお受けしております。まずはこちらのバナーからお気軽にお問い合わせください。

※一度もココナラを使ったことがない方はココナラへの無料登録が必要です。こちらから登録後、上のリンクをクリックする、またはココナラトップページから「ひまあーと」を検索してお問い合わせください。


【スポンサーリンク】