WordPress

404とは?ページが見つからないときの意味と、WordPressで404ページを作る方法

公開 約5分で読めます

TL;DRこの記事の要点

  • 404は、サーバーがリクエストされたページを見つけられないときに返すステータスコード
  • Googleは、429を除く4xx系を同じ扱いにする。200のままエラーを表示するとソフト404になる
  • WordPressは、テーマの404.phpで専用の404ページを作れる。デザインを変えても返事の番号は404のまま
  • このブログでは、Claude Codeに頼んで404ページをターミナル風に作り替えた
目次7項目
  1. 404とは?ページが見つからないときの、サーバーの返事
  2. どんなときに出てくる?
  3. 404と410、ソフト404の違い
  4. WordPressで404ページを作る方法
  5. このブログの404ページは、ターミナル風にしました
  6. URLを変えたときにも出る404
  7. 迷ったときの確認ポイント

存在しないURLを開くと出てくる「404」。
意味と、WordPressで404ページを作る方法を、404ページをターミナル風に作り替えたこのブログの例で説明します。

404って、結局なに?

開こうとしたページが、サーバーに見つからなかったときの番号だよ。

404とは?ページが見つからないときの、サーバーの返事

404は、HTTPのステータスコードのひとつです。
正式な名前は「404 Not Found」。
MDNによると、サーバーがリクエストされたリソースを見つけられないことを示す、クライアントエラーのレスポンスです。

ステータスコードは、サーバーからの返事の番号です。
正常に表示されたページでは、通常200、URLを恒久的に移したときの転送は301、見つからないときは404が返ります。

このブログに、存在しないURLでアクセスしたときの返事を、Claude Codeにcurl -Iで調べてもらいました。
先頭の行は、こうなっていました。

  • HTTP/2 404

画面に出るデザインはサイトごとに違いますが、サーバーは、見た目とは別に、ページが見つからないことを示す404を返します。Googleも、この番号を見てページの状態を判断します。

どんなときに出てくる?

404が出る場面は、だいたい3つ。

  • URLを打ち間違えたとき
  • ページが移動したり削除されたりして、転送もされていないとき
  • リンク先のURLが間違っている、またはリンク先が消えている、いわゆる「リンク切れ」のとき

MDNでも、404の主な原因として、この3つが挙げられています。
どれも「そのURLには、今ページがない」状態です。

404と410、ソフト404の違い

見つからないときの番号には、404のほかに410もあります。

  • 404: ページが見つからない。一時的か恒久的かは、これだけでは分からない
  • 410: ページが恒久的に削除された

ただ、検索エンジンのGoogleは、この2つをほぼ同じに扱います。
Googleのドキュメントによると、429を除く4xx系のエラーは同じ扱いです。
すでにインデックスされているURLはインデックスから外され、新しく見つけた404のURLは処理されません。
クロールの頻度も、少しずつ下がっていきます。

もうひとつ、「ソフト404」という状態もあります。
ページの中身は「見つかりません」なのに、番号は200のまま、という状態です。
Googleのドキュメントでは、200を返しながら実質的にエラーの内容(空白のページやエラーメッセージ)を表示しているページを、ソフト404として扱うと書かれています。
この場合、Search Consoleにエラーが表示される場合があります。

404ページって、好きなデザインにしていいの?

見た目は変えていいよ。
ただ、番号は404のままにするのが大事。

WordPressで404ページを作る方法

WordPressでは、テーマの404.phpというファイルが、404のときに表示されます。
公式ドキュメントのテンプレート階層によると、404のときは404.phpが最初に探され、なければindex.phpが使われます。
なので、使っているテーマのフォルダに404.phpを置けば、専用の404ページにできます。
すでにある場合は、その中身を書き換えます。
中身の最小例は、こうです。

<?php get_header(); ?>
<main>
	<h1>ページが見つかりません</h1>
	<?php get_search_form(); ?>
</main>
<?php get_footer(); ?>

WordPressは、404のときこのテンプレートを使い、返事の番号も404にします。
見出しと、検索フォームだけの形です。

ここに何を置くかは、自由です。
このブログでは、次の内容を入れました。

  • 見つからなかったことを伝える見出し
  • キーワード検索の入力欄
  • 新着記事の一覧(6件)
  • トップページへ戻るボタン

このブログの404ページは、ターミナル風にしました

このブログの404ページは、「おしゃれな404ページを作ってみようか」という自分の一言から、Claude Codeに作ってもらいました。
サイト名の「Cat’s Hand」と、ターミナルのcatコマンドをかけた演出です。
「最初は普通の0がいて、肉球が押しのける動きにしたい」「ボタンは新着記事の下に置きたい」と自分が頼んで、調整してもらいました。

「4 肉球 4」の数字と、ターミナル風の3行

黒い背景に、水色の「4」と、真ん中に「0」が並びます。
最初は普通の0が出ています。
1秒ほどたつと肉球が叩きつけられて、0を弾き飛ばして入れ替わります。
その下に、ターミナルの画面のような3行を出しました。
たとえば/abc/という存在しないURLを開くと、こう表示されます。

  • $ cat /abc/
  • cat: /abc/: No such file or directory
  • $(点滅するカーソル)

catは、ファイルの中身を表示するコマンドです。
存在しないファイルを指定すると、「No such file or directory」というエラーが返ります。
それを、存在しないURLを開いた状態に見立てています。
ターミナルについては、ターミナルとは?Macでの開き方と、最初に知っておきたい基本にまとめています。

デザインを変えても、番号は404のまま

作り替えたあとも、本番のサイトで同じ確認をしてもらいました。
見た目が変わっても、返ってきた番号はHTTP/2 404のままでした。

URLを変えたときにも出る404

404は、URLを変えたのに古いURLから転送されていないときにも出ます。
URLを変えたときの古いURLの扱いは、別の記事にまとめています。

詳しくはWordPressのカテゴリを親子変更したら古いURLでも表示された原因と301転送に書いています。
URLを変えたときの転送は、301リダイレクトとは?WordPressでの使いどころと、302との違いで説明しています。

迷ったときの確認ポイント

  1. 見た目ではなく、返事の番号を確認する(curl -Iや、ブラウザの開発者ツールの「ネットワーク」で見られます)。見つからないページに200が返っていたら、ソフト404です
  2. 消したページや変えたURLは、転送が必要か考える(恒久的な移動なら301)
  3. 404ページには、検索や新着記事など、ほかのページへ移れる入口を置く

あわせて知っておきたい用語

301(リダイレクト)
古いURLから新しいURLへ、恒久的に転送すること。詳しくはこちら
スラッグ
記事やカテゴリのURLに入る識別名。変えるとURLも変わります。詳しくはこちら
ターミナル
コマンドで操作する画面。curlやcatも、ここで使います。詳しくはこちら
410
ページが恒久的に削除されたことを示すステータスコード。

この記事が参考になったら、応援クリックをお願いします

Cat's Handこの記事を書いた人

Web制作歴10年以上。WordPressのテーマカスタマイズやコーディングを中心に、副業・本業ともにweb制作に携わっています。このブログでは、実際に手を動かして分かったことを書いています。