2026年10月16日

2026年10月16日

WordPressの404ページをカスタマイズする入門|テンプレートの仕組みと載せるべき内容

WordPress の404ページは、クラシックテーマなら子テーマに 404.php を、ブロックテーマならサイトエディターで「404」テンプレートを用意するとカスタマイズできます。この記事では、404ページがどのファイルから表示されるかという仕組みから、載せると役に立つ内容、クラシックテーマとブロックテーマそれぞれの作り方、404 のステータスコードを保ったまま公開する確認方法までを、初めての人向けに説明します。

404ページとは何か

404 は、サーバーが「そのアドレスのページは見つからない」と返すステータスコードです。記事を削除した、URL(パーマリンク)を変えた、リンク元が URL を打ち間違えた、といった理由で表示されます。

404ページが出ること自体は異常ではありません。どのサイトにも、削除したページや誤ったリンクは発生します。大切なのは、迷い込んだ訪問者が次の行動を選べるページにしておくことです。テーマ標準の404ページは「見つかりませんでした」と検索窓だけ、ということも多く、ここを整えるだけで離脱を減らせる可能性があります。

どのファイルが表示されるのか

WordPress は「テンプレート階層」という決まりに従って、表示に使うファイルを選びます。ページが見つからないとき、使われるのは次のファイルです。

  • クラシックテーマ: テーマフォルダの 404.php。無ければ index.php が使われます。
  • ブロックテーマ: templates/404.html。サイトエディターで編集した内容は、ファイルではなくデータベースに保存され、そちらが優先されます。

使っているテーマがどちらか分からないときは、管理画面の「外観」メニューを見ます。「エディター」があればブロックテーマ、「カスタマイズ」と「ウィジェット」が中心ならクラシックテーマです。

404ページに載せると役立つ内容

訪問者が404ページで知りたいのは「なぜ見つからないのか」と「次にどこへ行けばいいか」です。次の要素を、上から順に置くと伝わりやすくなります。

  1. 見つからなかったことを伝える見出しと短い説明: 「URL が変わったか、削除された可能性があります」と、考えられる理由を1〜2文で。訪問者を責めるような言い方は避けます。
  2. サイト内検索: 探していた情報に自分でたどり着けるようにします。
  3. 主要なページへの導線: カテゴリー一覧、よく読まれている記事、最近の記事など。
  4. トップページへのリンクと、必要ならお問い合わせページへのリンク。

イラストや遊び心のある文言を入れるのも自由ですが、検索窓や導線が画面の下に押し出されないよう、スマートフォンでの見え方を確認してください。

クラシックテーマで 404.php を作る

テーマのファイルを直接編集すると、テーマの更新で上書きされて消えてしまいます。先に子テーマを用意し、その中に 404.php を作ります。親テーマに 404.php がある場合は、それをコピーして子テーマ側で編集すると、デザインの崩れを抑えられます。作業前にはバックアップを取り、できればステージング環境で試してください。

新しく作る場合の例です。子テーマのフォルダに 404.php として保存します。

<?php
/**
 * 404 テンプレート(子テーマ)
 */
get_header();
?>
<main id="primary" class="site-main error-404">
	<h1><?php esc_html_e( 'お探しのページが見つかりませんでした', 'my-child-theme' ); ?></h1>
	<p><?php esc_html_e( 'URL が変更されたか、ページが削除された可能性があります。キーワードで検索するか、下の一覧からお探しください。', 'my-child-theme' ); ?></p>

	<?php get_search_form(); ?>

	<h2><?php esc_html_e( '最近の記事', 'my-child-theme' ); ?></h2>
	<ul>
		<?php
		$recent = new WP_Query(
			array(
				'posts_per_page'      => 5,
				'post_status'         => 'publish',
				'ignore_sticky_posts' => true,
				'no_found_rows'       => true,
			)
		);
		while ( $recent->have_posts() ) :
			$recent->the_post();
			?>
			<li><a href="<?php echo esc_url( get_permalink() ); ?>"><?php echo esc_html( get_the_title() ); ?></a></li>
			<?php
		endwhile;
		wp_reset_postdata();
		?>
	</ul>

	<h2><?php esc_html_e( 'カテゴリー', 'my-child-theme' ); ?></h2>
	<ul>
		<?php wp_list_categories( array( 'title_li' => '' ) ); ?>
	</ul>

	<p><a href="<?php echo esc_url( home_url( '/' ) ); ?>"><?php esc_html_e( 'トップページへ戻る', 'my-child-theme' ); ?></a></p>
</main>
<?php
get_footer();

コードの要点を説明します。

  • get_header() と get_footer() で、サイト共通のヘッダーとフッターを読み込みます。これを忘れると、メニューの無いページになります。
  • get_search_form() は、テーマが用意している検索フォームを表示する関数です。
  • 最近の記事は WP_Query で取得し、使い終わったら wp_reset_postdata() で元の状態に戻します。no_found_rows は、ページ送りに使う総件数の計算を省いて、問い合わせを軽くする指定です。
  • URL は esc_url()、タイトルは esc_html() を通して出力します。表示する値をエスケープするのは、意図しない HTML やスクリプトが混ざるのを防ぐためです。

main 要素の id や class は、親テーマの他のテンプレートに合わせると、既存の CSS がそのまま効きます。

ブロックテーマでは 404 テンプレートを編集する

ブロックテーマでは、コードを書かずにサイトエディターで編集できます。「外観」→「エディター」→「テンプレート」の一覧から「404」を選び、見出し・段落・検索・最新の投稿などのブロックを並べて保存します(2026年10月現在)。画面の表記は WordPress のバージョンによって異なることがあります。テンプレートが一覧に無い場合は、テンプレートの追加画面から「404」を選んで作成できます。

サイトエディターで保存した内容はデータベースに入るため、テーマを更新しても消えません。一方で、ファイルとして管理したい場合や複数サイトに配る場合は、子テーマの templates/404.html にブロックのマークアップを書いて置く方法もあります。サイトエディターで一度編集したテンプレートはデータベース側が優先されるので、ファイルの変更が反映されないときは、エディター上でカスタマイズをリセットしてください。

公開後に確認すること

404ページを作ったら、存在しない URL を開いて表示を確認します。見た目だけでなく、ステータスコードが 404 のままかも確かめてください。

curl -I https://example.com/no-such-page-check/

1行目に 404 と出れば正常です。200 が返っている場合、見た目は404ページでも、検索エンジンには「中身の薄い通常のページ」と扱われることがあり、Google はこれを「ソフト 404」と呼んでいます。

同じ理由で、見つからないページをすべてトップページへ転送する設定もおすすめしません。訪問者は探していたものと違うページに連れて行かれ、検索エンジンからもソフト 404 と判断されることがあります。転送するのは、記事を移動した・URL を変えたなど、移転先がはっきりしている場合だけにします。

公開後は、Google Search Console の「ページ」レポートで、見つからなかった URL を定期的に確認すると、リンク切れや、転送を設定すべき古い URL が見つかります。

まとめ

  • 404ページはテンプレート階層で決まり、クラシックテーマは 404.php、ブロックテーマは 404 テンプレートが使われる
  • クラシックテーマでは子テーマに 404.php を作り、出力はエスケープする
  • ブロックテーマではサイトエディターの 404 テンプレートを編集する
  • 載せる内容は、理由の説明・サイト内検索・主要ページへの導線・トップへのリンク
  • ステータスコードが 404 のままか確認し、すべてをトップへ転送する設定は避ける

お気軽にご相談ください

お見積りへ お問い合わせへ
▲