【WordPress】404ページで検索キーワードを提案する機能を追加する方法

【WordPress】404ページで検索キーワードを提案する機能を追加する方法 WordPress

WordPressサイトにおいて、404ページ(ページが見つからないエラーページ)は訪問者が離脱しやすいポイントの一つです。しかし、404ページに検索フォームや関連キーワードを表示することで、ユーザーを他の有用なコンテンツに導くことができます。この記事では、404ページに検索キーワードの提案機能を追加する方法を解説します。

404ページの作成自体がまだの場合は、プラグイン無しで独自の404ページを作成する方法|子テーマで安全にカスタマイズを先にご覧ください。

スポンサーリンク

404テンプレートを編集する

まず、テーマフォルダ内にある404.phpを編集または作成します。以下は基本構造の例です。

404.php:検索フォームとおすすめキーワード
<?php get_header(); ?>

<main>
  <h2>お探しのページは見つかりませんでした</h2>
  <p>代わりに以下のキーワードで検索してみてください。</p>

  <?php get_search_form(); ?>

  <div class="suggested-keywords">
    <h3>おすすめキーワード</h3>
    <ul>
      <?php
        $keywords = array('最新記事', 'カテゴリ一覧', 'お問い合わせ', '人気記事', 'WordPressカスタマイズ');
        foreach ($keywords as $keyword) {
          echo '<li><a href="' . esc_url(home_url('/?s=' . urlencode($keyword))) . '">' . esc_html($keyword) . '</a></li>';
        }
      ?>
    </ul>
  </div>
</main>

<?php get_footer(); ?>

検索フォームのスタイル調整

テーマによっては検索フォームが縦長に表示されたりデザインが崩れたりすることがあります。CSSで404ページ専用のスタイルを当てることで、デザイン性を維持しながらユーザーの利便性を高められます。

style.css:おすすめキーワードのスタイル
.suggested-keywords ul {
  list-style: none;
  padding: 0;
}

.suggested-keywords li {
  display: inline-block;
  margin: 0 10px 10px 0;
}

.suggested-keywords a {
  background: #f0f0f0;
  padding: 6px 10px;
  border-radius: 4px;
  text-decoration: none;
}

動的に人気キーワードを表示する方法(応用)

より高度な実装としては、投稿に付けられたタグの使用頻度から提案ワードを動的に生成する方法もあります。たとえば、get_terms()関数で使用頻度の高いタグを取得する方法があります。

使用頻度の高いタグを取得
$tags = get_terms(array(
  'taxonomy' => 'post_tag',
  'orderby' => 'count',
  'order'   => 'DESC',
  'number'  => 5,
));

foreach ($tags as $tag) {
  echo '<li><a href="' . esc_url(get_tag_link($tag)) . '">' . esc_html($tag->name) . '</a></li>';
}

これにより、多くの投稿に付けられているタグを自動的に提案として表示できます。

「使用頻度」と「アクセス数」は別の指標
orderby => 'count'がソートするのは、そのタグが付けられている投稿の件数です。ページの閲覧数(アクセス数)とは別の指標のため、少数の記事にしか付いていないタグでも、その記事が非常によく読まれているケースは上位に来ません。実際のページビューに基づいた人気順で提案したい場合は、記事ごとの閲覧数を記録するカスタムフィールドやプラグインを別途用意する必要があります。

よくある質問(FAQ)

Q404ページでURLのキーワードから関連記事を検索して表示するには?
A$_SERVER[‘REQUEST_URI’]からURLスラッグを取得し、sanitize_text_field()でサニタイズ後にWP_Queryのsパラメーターに渡して関連記事を検索します。404.phpテンプレートに実装します。
Q404ページに最近の投稿や人気記事を表示するには?
AWP_Queryでorderby=dateまたはorderby=meta_value(view_count等)で最新・人気記事を取得してリスト表示します。404ページのUX改善に有効です。
QGoogle Search Consoleで404エラーを減らす方法はありますか?
A旧URLから新URLへの301リダイレクト設定(.htaccessまたはRedirectionプラグイン)が最も効果的です。また内部リンクが正しいURLを指しているか定期的にチェックします。

まとめ

404ページで離脱を防ぐには、ユーザーが次にどのページに進めばいいかを提示することが重要です。検索フォームとともに、関連キーワードや使用頻度の高いタグを表示することで、サイト内の回遊性を高め、ユーザーの満足度も向上します。ぜひ自分のテーマに合わせてカスタマイズしてみてください。