WordPress検索機能の使い方とカスタマイズ完全ガイド|検索できない原因と解決策も解説

はじめに

WordPressの検索機能は、サイト内の記事や固定ページをユーザーが素早く探すための重要な機能です。記事数が少ないうちは標準検索だけでも十分ですが、コンテンツが増えるほど「探したい記事が見つからない」「固定ページが出ない」「カスタム投稿タイプを検索できない」「検索結果が遅い」といった課題が出やすくなります。

特に、ブログ、メディアサイト、企業サイト、ECサイト、会員サイトでは、検索体験の良し悪しが回遊率やお問い合わせ、購入率にも影響します。この記事では、WordPress検索機能の基本的な使い方から、検索フォームの設置、デザイン変更、検索対象のカスタマイズ、プラグインによる強化、検索できない原因と解決策、SEOへの活用方法までをまとめて解説します。

1. WordPress検索機能とは?標準機能でできること

1-1. WordPressの検索機能の基本的な仕組み

WordPressの検索機能は、検索フォームに入力されたキーワードをもとに、サイト内の投稿データを検索して結果を表示する仕組みです。検索フォームから送信される検索語は、一般的にURLの ?s=検索キーワード という形で渡され、WordPressのクエリ処理によって検索結果ページが生成されます。

WordPressでは WP_Querys パラメータを使ってキーワード検索が行われます。また、検索語の前にハイフンを付けると、その語を含む投稿を除外できる仕様もあります。たとえば WordPress -プラグイン と検索すると、「WordPress」を含み「プラグイン」を含まない投稿を探す動きになります。WordPress Developer Resources

検索は便利ですが、Googleのような高度な検索エンジンとは異なります。標準機能では、関連度の細かい調整、同義語対応、表記ゆれ対応、カスタムフィールド検索、詳細な絞り込み検索などには限界があります。そのため、サイトの規模や目的に合わせてカスタマイズやプラグイン導入を検討することが大切です。

1-2. 検索フォームと検索結果ページの役割

WordPress検索は、大きく分けて「検索フォーム」と「検索結果ページ」で構成されています。

検索フォームは、ユーザーがキーワードを入力するための検索窓です。ヘッダー、サイドバー、フッター、記事下、404ページなどに設置できます。ユーザーが検索フォームにキーワードを入力して送信すると、WordPressが検索クエリを受け取り、該当するコンテンツを検索結果ページに表示します。

検索結果ページは、検索キーワードに一致した投稿や固定ページを一覧表示するページです。テーマによって表示内容は異なりますが、一般的には記事タイトル、抜粋、アイキャッチ画像、投稿日、カテゴリーなどが表示されます。クラシックテーマでは search.php、ブロックテーマでは検索結果用テンプレートを編集して表示内容を調整できます。

1-3. 標準検索で検索対象になる範囲

WordPressの標準検索では、検索クエリが検索ページとして処理される場合、post_type が未指定なら any として扱われ、検索から除外されていない投稿タイプが対象になります。post_typeany は、リビジョンや exclude_from_search が true の投稿タイプを除いた投稿タイプを取得する指定です。WordPress Developer Resources

ただし、実際にどのコンテンツが検索結果に出るかは、テーマ、プラグイン、カスタム投稿タイプの登録設定、検索結果テンプレートの実装によって変わります。たとえば、カスタム投稿タイプを作成していても exclude_from_search が true になっている場合、通常の検索結果には表示されません。

また、標準検索はカテゴリー名、タグ名、カスタムフィールド、PDF内テキスト、商品SKUなどを細かく検索対象にするには不十分な場合があります。これらを検索対象に含めたい場合は、コードで拡張するか、検索強化プラグインを使うのが一般的です。

1-4. 標準検索のメリットと限界

WordPress標準検索のメリットは、追加費用なしですぐ使えることです。テーマに検索フォームが用意されていれば、設定だけでサイト内検索を始められます。シンプルなブログや記事数の少ないサイトであれば、標準検索でも十分に役立ちます。

一方で、標準検索には次のような限界があります。

検索精度を細かく調整しにくい、検索対象を柔軟に広げにくい、絞り込み検索を作りにくい、検索結果の並び順を関連度で最適化しにくい、大規模サイトでは検索が重くなる場合がある、といった点です。

そのため、記事数が増えてきたサイトや、商品、事例、求人、不動産、講座、イベントなどを扱うサイトでは、標準検索に加えてカスタマイズやプラグインの導入を検討するとよいでしょう。

2. WordPressに検索フォームを設置する方法

2-1. ブロックエディターで検索ブロックを追加する方法

ブロックエディターを使っている場合は、「検索」ブロックを追加するだけで簡単に検索フォームを設置できます。投稿、固定ページ、ウィジェットエリア、テンプレートパーツなど、ブロックを追加できる場所であれば設置可能です。

操作手順は次のとおりです。

WordPress管理画面で編集したいページを開き、「+」ボタンから「検索」と入力して検索ブロックを選択します。検索ボックスのラベルやボタン文言を変更し、必要に応じて配置や幅を調整して保存します。

WordPress公式ドキュメントでは、検索ブロックで検索ボタンの位置、ボタンの有無、アイコン表示、色、タイポグラフィ、枠線、余白などを調整できることが案内されています。WordPress.org

初心者が最も簡単に検索窓を追加するなら、まず検索ブロックを使う方法がおすすめです。

2-2. ウィジェットでサイドバーやフッターに設置する方法

クラシックテーマやウィジェットエリアを持つテーマでは、サイドバーやフッターに検索フォームを設置できます。

管理画面で「外観」→「ウィジェット」を開き、検索ブロックまたは検索ウィジェットをサイドバーやフッターに追加します。保存後、実際のサイトを表示して検索窓が表示されているか確認しましょう。

サイドバーに検索フォームを置くと、記事を読んでいるユーザーが別の記事を探しやすくなります。フッターに置く場合は、ページ下部まで読んだユーザーの次の行動を促す導線として機能します。

ただし、スマホ表示ではサイドバーが下部に回り込むテーマも多いため、スマホユーザーが多いサイトではヘッダーやメニュー内にも検索導線を設けると便利です。

2-3. テーマのメニューやヘッダーに検索窓を表示する方法

多くのWordPressテーマには、ヘッダーやグローバルメニューに検索アイコンを表示する設定があります。設定場所はテーマによって異なりますが、一般的には「外観」→「カスタマイズ」または「外観」→「エディター」から変更できます。

ヘッダー検索は、サイト全体のどこからでも使いやすい点がメリットです。特に記事数が多いブログやメディアサイトでは、ヘッダーに検索窓または検索アイコンを配置することで、ユーザーが迷ったときにすぐ検索できます。

注意点として、ヘッダーの検索フォームはデザインが崩れやすい場所でもあります。PCでは問題なく見えても、スマホでは検索窓が狭すぎる、ボタンが押しにくい、メニューと重なるといったことがあります。設置後は必ず複数の画面幅で確認しましょう。

2-4. ショートコードやテンプレートに検索フォームを埋め込む方法

テーマファイルに検索フォームを直接埋め込みたい場合は、get_search_form() を使います。WordPress公式リファレンスでは、get_search_form() は検索フォームを表示する関数で、子テーマまたは親テーマ内の searchform.php を探し、存在しない場合はデフォルトの検索フォームを表示すると説明されています。WordPress Developer Resources

たとえば、テーマテンプレート内の任意の場所に次のコードを追加します。

PHP
<?php get_search_form(); ?>

ショートコードとして検索フォームを使いたい場合は、functions.php に次のようなコードを追加します。

PHP
function my_search_form_shortcode() {
return get_search_form( false );
}
add_shortcode( 'search_form', 'my_search_form_shortcode' );

これで、投稿や固定ページ内に次のショートコードを入力すると検索フォームを表示できます。

[search_form]

テーマファイルを編集する場合は、必ず子テーマを使うか、編集前にバックアップを取っておきましょう。親テーマを直接編集すると、テーマ更新時に変更内容が消える可能性があります。

3. WordPress検索フォームの基本的な使い方

3-1. キーワード検索の使い方

WordPressの検索フォームでは、探したい語句を入力して検索ボタンを押すだけでサイト内検索ができます。たとえば、「ワードプレス 検索」「テーマ カスタマイズ」「Contact Form 7」など、ユーザーが知りたい内容に近いキーワードを入力します。

検索精度を高めるには、短すぎる語句よりも具体的な語句を入力するのがおすすめです。「設定」だけで検索するよりも、「パーマリンク 設定」「検索フォーム 設置」のように複数語を組み合わせたほうが、目的の記事に近づきやすくなります。

サイト運営者側は、ユーザーが検索しそうな言葉を記事タイトル、見出し、本文、タグ、カテゴリーに自然に含めておくと、検索結果に表示されやすくなります。

3-2. 複数キーワード検索の使い方

WordPressでは、複数のキーワードをスペースで区切って検索できます。たとえば「WordPress 検索 カスタマイズ」と入力すると、それらの語句に関連するコンテンツが検索されます。

また、WordPressの検索では、検索語の前にハイフンを付けることで除外検索ができます。たとえば「WordPress 検索 -プラグイン」と入力すると、プラグインを含む結果を除外した検索ができます。WordPress Developer Resources

ただし、検索結果の扱いはテーマやプラグインによって変わることがあります。検索強化プラグインを導入している場合は、完全一致、部分一致、AND検索、OR検索、フレーズ検索などの挙動が標準検索と異なる場合があります。

3-3. 検索結果ページの見方

検索結果ページでは、入力したキーワードに関連する投稿や固定ページが一覧表示されます。一般的には、タイトル、抜粋、アイキャッチ画像、カテゴリー、投稿日などを見ながら目的のページを選びます。

ユーザーにとって見やすい検索結果にするには、次の情報を表示すると効果的です。

記事タイトル、本文の抜粋、アイキャッチ画像、カテゴリー、更新日、該当キーワードを含む文脈です。特に検索キーワードを含む抜粋が表示されると、ユーザーは「この記事に答えがありそうか」を判断しやすくなります。

検索結果ページが単なるタイトル一覧だけだと、ユーザーはどれをクリックすべきか迷います。検索結果ページも重要なランディングページの一つと考え、見やすく整えましょう。

3-4. 検索結果に表示されないコンテンツの確認方法

検索しても特定のページが表示されない場合は、まずそのコンテンツが公開状態になっているか確認します。下書き、非公開、パスワード保護、予約投稿、ゴミ箱内の記事は、通常の訪問者向け検索に表示されない場合があります。

次に、投稿タイプの設定を確認します。カスタム投稿タイプの場合、exclude_from_search が true に設定されていると検索対象から外れます。また、検索結果テンプレート側で投稿タイプを限定している場合も、検索結果に表示されません。

さらに、SEOプラグインや検索プラグイン、会員制プラグイン、キャッシュプラグインが検索結果の表示に影響していることもあります。原因を切り分けるには、テーマを一時的に標準テーマへ変更する、プラグインを一つずつ停止する、キャッシュを削除する、といった確認が有効です。

4. WordPress検索機能をカスタマイズする方法

4-1. searchform.phpで検索フォームのデザインを変更する

検索フォームのHTMLを変更したい場合は、テーマ内に searchform.php を作成します。get_search_form() はテーマ内の searchform.php を読み込むため、このファイルを用意すれば独自デザインの検索フォームを表示できます。WordPress Developer Resources

基本的な searchform.php の例は次のとおりです。

PHP
<form role="search" method="get" class="search-form" action="<?php echo esc_url( home_url( '/' ) ); ?>">
<label>
<span class="screen-reader-text">検索キーワード</span>
<input type="search" class="search-field" placeholder="キーワードを入力" value="<?php echo esc_attr( get_search_query() ); ?>" name="s">
</label>
<button type="submit" class="search-submit">検索</button>
</form>

このコードでは、name="s" が重要です。WordPressは s パラメータを検索キーワードとして扱うため、ここを変更すると標準検索が正常に動作しなくなります。

デザインはCSSで調整します。

CSS
.search-form {
display: flex;
gap: 8px;
}

.search-field {
width: 100%;
padding: 10px;
}

.search-submit {
padding: 10px 16px;
cursor: pointer;
}

検索フォームは見た目だけでなく、アクセシビリティも重要です。ラベルを完全に消すのではなく、視覚的に隠す screen-reader-text を使うと、スクリーンリーダー利用者にも配慮できます。

4-2. search.phpで検索結果ページの表示を変更する

クラシックテーマでは、検索結果ページの表示は主に search.php で制御します。search.php がない場合は、テーマのテンプレート階層に従って archive.phpindex.php が使われます。

基本的な search.php の例は次のとおりです。

PHP
<?php get_header(); ?>

<main class="search-results">
<h1><?php echo esc_html( get_search_query() ); ?>」の検索結果</h1>

<?php if ( have_posts() ) : ?>
<?php while ( have_posts() ) : the_post(); ?>
<article <?php post_class(); ?>>
<h2><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2>
<?php if ( has_post_thumbnail() ) : ?>
<a href="<?php the_permalink(); ?>"><?php the_post_thumbnail( 'medium' ); ?></a>
<?php endif; ?>
<p><?php the_excerpt(); ?></p>
</article>
<?php endwhile; ?>

<?php the_posts_pagination(); ?>

<?php else : ?>
<p>該当する記事は見つかりませんでした。別のキーワードで検索してみてください。</p>
<?php get_search_form(); ?>
<?php endif; ?>
</main>

<?php get_footer(); ?>

検索結果ページでは、0件だった場合の案内も重要です。単に「見つかりません」と表示するだけでなく、再検索フォーム、人気記事、カテゴリー一覧、おすすめ記事への導線を追加すると離脱を減らせます。

4-3. 検索結果の表示件数や並び順を変更する

検索結果の表示件数や並び順を変更するには、pre_get_posts フックを使います。たとえば、検索結果を1ページ12件に変更する場合は、functions.php に次のコードを追加します。

PHP
function my_search_posts_per_page( $query ) {
if ( ! is_admin() && $query->is_main_query() && $query->is_search() ) {
$query->set( 'posts_per_page', 12 );
}
}
add_action( 'pre_get_posts', 'my_search_posts_per_page' );

更新日順に並べたい場合は次のように指定します。

PHP
function my_search_orderby_modified( $query ) {
if ( ! is_admin() && $query->is_main_query() && $query->is_search() ) {
$query->set( 'orderby', 'modified' );
$query->set( 'order', 'DESC' );
}
}
add_action( 'pre_get_posts', 'my_search_orderby_modified' );

ただし、検索結果の並び順を単純に日付順にすると、古い記事でも検索意図に合う記事が下がってしまう場合があります。関連度順にしたい場合は、検索強化プラグインの導入も検討しましょう。

4-4. 固定ページや特定カテゴリーを検索対象から除外する

検索結果から固定ページを除外し、投稿だけを表示したい場合は、検索時の post_typepost に限定します。

PHP
function my_search_only_posts( $query ) {
if ( ! is_admin() && $query->is_main_query() && $query->is_search() ) {
$query->set( 'post_type', 'post' );
}
}
add_action( 'pre_get_posts', 'my_search_only_posts' );

特定カテゴリーを除外したい場合は、category__not_in を使います。

PHP
function my_exclude_category_from_search( $query ) {
if ( ! is_admin() && $query->is_main_query() && $query->is_search() ) {
$query->set( 'category__not_in', array( 3, 8 ) );
}
}
add_action( 'pre_get_posts', 'my_exclude_category_from_search' );

この例では、カテゴリーIDが3と8の記事を検索結果から除外します。カテゴリーIDは、管理画面のカテゴリー編集画面のURLなどから確認できます。

4-5. カスタム投稿タイプを検索対象に追加する

カスタム投稿タイプを検索対象に含めたい場合は、post_type に対象の投稿タイプを配列で指定します。

PHP
function my_include_custom_post_types_in_search( $query ) {
if ( ! is_admin() && $query->is_main_query() && $query->is_search() ) {
$query->set( 'post_type', array( 'post', 'page', 'works', 'news' ) );
}
}
add_action( 'pre_get_posts', 'my_include_custom_post_types_in_search' );

この例では、通常投稿、固定ページ、worksnews を検索対象にしています。

ただし、カスタム投稿タイプ側で exclude_from_search が true になっていると、検索対象になりません。カスタム投稿タイプを登録しているコードや、カスタム投稿タイプ作成プラグインの設定を確認しましょう。

4-6. カテゴリー・タグ・カスタムフィールドを検索対象に含める

標準検索だけでは、カテゴリー名、タグ名、カスタムフィールドの値を思い通りに検索対象にできない場合があります。この場合、方法は大きく2つあります。

1つ目は、pre_get_posts やSQL関連のフィルターを使って自作する方法です。自由度は高いですが、データベースクエリやセキュリティ、パフォーマンスへの配慮が必要です。

2つ目は、検索プラグインを使う方法です。たとえばRelevanssiは、カテゴリー、タグ、カスタムフィールド、コメントなどを検索対象にでき、検索結果を関連性順に並べる機能もあります。WordPress.org 日本語

カスタムフィールド検索は便利ですが、対象を広げすぎると検索ノイズが増えたり、検索速度が落ちたりします。重要なフィールドだけを検索対象にする設計が大切です。

5. WordPress検索機能をプラグインで強化する方法

5-1. プラグインを使うべきケース

検索プラグインを使うべきなのは、標準検索ではユーザーが目的の情報にたどり着きにくい場合です。

たとえば、記事数が多い、カスタム投稿タイプを使っている、商品検索を強化したい、カテゴリーやタグで絞り込みたい、カスタムフィールドを検索したい、検索結果を関連度順にしたい、リアルタイム検索を導入したい、といったケースです。

一方で、記事数が少ない個人ブログなら、まずは標準検索とテンプレート改善だけで十分な場合もあります。プラグインは便利ですが、入れすぎると表示速度や管理性に影響するため、目的に合うものだけを選びましょう。

5-2. 検索対象を広げたい場合に使えるプラグイン

検索対象を広げたい場合は、RelevanssiやSearchWPのような検索強化プラグインが候補になります。

Relevanssiは、WordPress標準検索を置き換え、関連性順の並び替え、あいまい一致、フレーズ検索、キーワードハイライト、カテゴリー・タグ・カスタムフィールド検索などに対応しています。ただし、インデックス用にデータベース容量を多く使う可能性がある点には注意が必要です。WordPress.org 日本語

SearchWPは、カスタムフィールド、PDF、メディアファイル、カスタム投稿タイプ、カスタムデータベーステーブルなどをインデックスできる検索プラグインとして案内されています。SearchWP

検索対象を広げると便利になる一方、関係の薄い結果も増えやすくなります。何でも検索対象にするのではなく、ユーザーが実際に探したい情報に絞って設定しましょう。

5-3. 絞り込み検索を実装したい場合に使えるプラグイン

絞り込み検索を作りたい場合は、FacetWPのようなファセット検索系プラグインが役立ちます。FacetWPは、チェックボックス、ドロップダウン、日付範囲、スライダー、ページャー、位置情報など複数のファセットタイプに対応していると案内されています。facetwp.com

絞り込み検索は、不動産サイト、求人サイト、商品一覧、制作実績、店舗一覧、講座一覧、イベント情報などと相性がよい機能です。たとえば「地域」「価格帯」「カテゴリー」「タグ」「投稿日」「難易度」などで条件を絞れるようにすると、ユーザーは目的の情報を見つけやすくなります。

ただし、条件が多すぎると逆に使いにくくなります。ユーザーが比較・選択するときに本当に必要な条件だけを設計しましょう。

5-4. Ajax検索やリアルタイム検索を導入する方法

Ajax検索やリアルタイム検索を導入すると、ユーザーがキーワードを入力している途中で候補や検索結果を表示できます。ページ遷移せずに結果を確認できるため、検索体験が向上します。

Ajax Search Liteは、WordPress向けのライブ検索プラグインで、カテゴリーや投稿タイプのフィルター、オートコンプリート、キーワード候補、カスタム投稿タイプやカスタムフィールド対応などが案内されています。WordPress.org 日本語

リアルタイム検索は便利ですが、入力のたびに検索処理が走るため、サイトによっては負荷が増える場合があります。アクセス数が多いサイトでは、キャッシュ設定、インデックス方式、サーバースペックも考慮しましょう。

5-5. 検索精度を高めるプラグインの選び方

検索プラグインを選ぶときは、次の観点で比較しましょう。

検索対象にしたいデータに対応しているか、関連度の調整ができるか、日本語検索に向いているか、カスタム投稿タイプやカスタムフィールドに対応しているか、絞り込み検索ができるか、Ajax検索に対応しているか、表示速度に影響しにくいか、現在のテーマや主要プラグインと相性がよいか、サポートや更新が継続されているか、無料版で足りるか有料版が必要か、という点です。

特に日本語サイトでは、ひらがな、カタカナ、漢字、英数字、全角半角、表記ゆれが検索精度に影響します。導入前にテスト環境で実際のキーワードを使い、検索結果の質を確認しましょう。

5-6. プラグイン導入時の注意点

検索プラグインを導入するときは、本番サイトへいきなり入れるのではなく、可能であればテスト環境で検証しましょう。

確認すべきポイントは、検索結果が想定どおりか、表示速度が落ちていないか、検索結果ページのデザインが崩れていないか、既存のSEO設定に影響しないか、キャッシュプラグインと競合しないか、スマホで使いやすいか、管理画面が重くならないか、という点です。

また、検索プラグインによってはインデックス作成が必要です。記事数が多いサイトでは、初回インデックスに時間がかかったり、データベース容量を使ったりします。導入前にバックアップを取り、サーバー容量にも余裕を持たせましょう。

6. WordPressで絞り込み検索を作る方法

6-1. 絞り込み検索が必要なサイトの特徴

絞り込み検索が必要なのは、ユーザーが複数の条件で情報を探すサイトです。

たとえば、商品数が多いECサイト、地域や職種で探す求人サイト、価格や間取りで探す不動産サイト、ジャンルや難易度で探す学習サイト、カテゴリーやタグが多いメディアサイト、実績や事例を業種別に見せたい企業サイトなどです。

逆に、記事数が少ないブログやシンプルな会社案内サイトでは、通常のキーワード検索とカテゴリー導線だけで十分な場合もあります。絞り込み検索は便利ですが、設計と運用が複雑になるため、必要性を見極めて導入しましょう。

6-2. カテゴリー別に検索できるフォームの作り方

カテゴリー別に検索できるフォームを作るには、検索フォームにカテゴリー選択を追加します。シンプルな例は次のとおりです。

PHP
<form role="search" method="get" action="<?php echo esc_url( home_url( '/' ) ); ?>">
<input type="search" name="s" placeholder="キーワードを入力" value="<?php echo esc_attr( get_search_query() ); ?>">

<?php
wp_dropdown_categories( array(
'show_option_all' => 'すべてのカテゴリー',
'name' => 'cat',
'orderby' => 'name',
'selected' => get_query_var( 'cat' ),
'hierarchical' => true,
) );
?>

<button type="submit">検索</button>
</form>

このフォームでは、キーワードとカテゴリーを組み合わせて検索できます。ブログやメディアサイトでは、「全体検索」と「カテゴリー検索」を組み合わせるだけでも使いやすさが大きく向上します。

6-3. タグやカスタムタクソノミーで絞り込む方法

タグやカスタムタクソノミーで絞り込みたい場合は、フォームからタクソノミーの値を送信し、pre_get_poststax_query を設定する方法があります。

たとえば、カスタムタクソノミー genre で絞り込む場合の考え方は次のとおりです。

PHP
function my_search_filter_by_genre( $query ) {
if ( ! is_admin() && $query->is_main_query() && $query->is_search() ) {
if ( ! empty( $_GET['genre'] ) ) {
$query->set( 'tax_query', array(
array(
'taxonomy' => 'genre',
'field' => 'slug',
'terms' => sanitize_text_field( wp_unslash( $_GET['genre'] ) ),
),
) );
}
}
}
add_action( 'pre_get_posts', 'my_search_filter_by_genre' );

フォーム側では、genre という名前でセレクトボックスやチェックボックスを送信します。複数条件を組み合わせる場合は、配列の扱いやサニタイズ、クエリの組み立てに注意が必要です。

6-4. チェックボックス・プルダウン・ラジオボタンを使った検索UI

絞り込み検索のUIには、チェックボックス、プルダウン、ラジオボタンなどがあります。それぞれ向いている用途が異なります。

チェックボックスは、複数条件を同時に選べる場合に適しています。たとえば「初心者向け」「無料」「動画あり」のような条件です。

プルダウンは、選択肢が多い場合や画面をすっきり見せたい場合に向いています。カテゴリー、地域、ブランド、投稿タイプなどに使いやすい形式です。

ラジオボタンは、1つだけ選ばせたい条件に適しています。たとえば「新着順」「人気順」「価格が安い順」のような並び替え条件に使えます。

スマホでは、チェックボックスが多すぎると縦に長くなります。初期状態では主要条件だけを表示し、詳細条件は開閉式にするなど、画面サイズに合わせた設計が重要です。

6-5. ECサイトやメディアサイトで使いやすい検索条件の設計

ECサイトでは、商品名、カテゴリー、価格帯、ブランド、在庫状況、評価、サイズ、カラーなどが検索条件になります。ただし、すべてを並べると使いにくくなるため、購入判断に影響する条件を優先しましょう。

メディアサイトでは、カテゴリー、タグ、公開日、更新日、難易度、対象読者、著者、人気順などが候補になります。記事数が多い場合は、検索結果にカテゴリーや更新日を表示すると、ユーザーが選びやすくなります。

検索条件を設計するときは、運営者が分類したい軸ではなく、ユーザーが探したい軸を優先することが大切です。サイト内検索キーワードやアクセス解析を見ながら、よく探されているテーマに合わせて条件を改善しましょう。

7. WordPress検索ができない・表示されない原因と解決策

7-1. 検索フォームが表示されない原因

検索フォームが表示されない場合、まずテーマ側で検索フォームの表示設定が無効になっていないか確認します。ヘッダー検索やメニュー検索は、テーマ設定でオン・オフできる場合があります。

次に、ウィジェットやブロックが正しい場所に配置されているか確認します。ブロックテーマの場合は、テンプレートやテンプレートパーツの編集内容が保存されているかも見直しましょう。

テーマファイルに get_search_form() を追加したのに表示されない場合は、編集しているテンプレートが実際に使われているか、PHPエラーが出ていないか、キャッシュが残っていないかを確認します。

7-2. 検索しても結果が出ない原因

検索しても結果が出ない場合は、検索キーワードがコンテンツ内に存在するか確認します。記事タイトルや本文に検索語が入っていない場合、標準検索ではヒットしないことがあります。

次に、対象コンテンツが公開済みか確認します。下書き、非公開、予約投稿、ゴミ箱内の記事は通常の検索結果に表示されません。

また、検索結果テンプレートで独自クエリを使っている場合、メインクエリではなく別の条件で上書きされている可能性があります。query_posts() でメインクエリを置き換えている古い実装はトラブルの原因になりやすいため、pre_get_postsWP_Query を適切に使いましょう。

7-3. 固定ページやカスタム投稿が検索されない原因

固定ページやカスタム投稿が検索されない場合は、検索クエリで post_type が限定されている可能性があります。たとえば、post_typepost に固定されていると、固定ページやカスタム投稿タイプは検索結果に出ません。

カスタム投稿タイプの場合は、登録設定の exclude_from_search を確認します。この値が true の場合、その投稿タイプは検索対象から除外されます。WordPressの post_typeany は、検索除外設定が有効な投稿タイプを除く仕様です。WordPress Developer Resources

プラグインでカスタム投稿タイプを作っている場合は、プラグイン側の設定画面に「検索対象に含める」「検索から除外」などの項目がないか確認しましょう。

7-4. 検索結果ページが404になる原因

検索結果ページが404になる場合は、パーマリンク設定やリライトルールに問題がある可能性があります。まず「設定」→「パーマリンク」を開き、何も変更せずに「変更を保存」をクリックしてリライトルールを再生成します。

次に、検索フォームの action 属性が正しいか確認します。通常は次のようにトップページURLへ送信します。

PHP
action="<?php echo esc_url( home_url( '/' ) ); ?>"

また、検索キーワード用のinputには必ず name="s" を指定します。ここが別の名前になっていると、WordPressが検索クエリとして認識できません。

7-5. テーマやプラグインの競合による不具合

検索機能の不具合は、テーマやプラグインの競合で起きることがあります。特に、検索プラグイン、SEOプラグイン、キャッシュプラグイン、会員制プラグイン、カスタム投稿タイプ関連プラグインは検索結果に影響しやすいです。

原因を切り分けるには、まずキャッシュを削除します。それでも改善しない場合は、プラグインを一つずつ停止して検索結果が変わるか確認します。テーマが原因か調べるには、一時的にWordPress標準テーマへ切り替えて確認します。

本番サイトで直接試すと表示崩れや機能停止につながるため、可能であればステージング環境やテスト環境で検証しましょう。

7-6. キャッシュやパーマリンク設定が原因の場合

キャッシュが原因で、検索結果が古いまま表示されたり、検索フォームの変更が反映されなかったりすることがあります。ページキャッシュ、ブラウザキャッシュ、サーバーキャッシュ、CDNキャッシュを順番に削除して確認しましょう。

検索結果ページはユーザーごとにキーワードが変わるため、キャッシュ設定によっては意図しない結果が表示されることがあります。キャッシュプラグインを使っている場合は、検索結果ページをキャッシュ対象から除外する設定も検討してください。

パーマリンク設定を変更した後に検索結果が404になる場合は、パーマリンク設定画面で保存し直すことで改善することがあります。

7-7. WordPress本体・テーマ・プラグイン更新後の確認ポイント

WordPress本体、テーマ、プラグインを更新した後は、検索フォームと検索結果ページを必ず確認しましょう。

確認するポイントは、検索フォームが表示されているか、検索ボタンが動くか、検索結果ページが404にならないか、検索結果のデザインが崩れていないか、カスタム投稿タイプが検索されるか、絞り込み条件が正常に動くか、スマホ表示で操作できるか、という点です。

更新前にはバックアップを取り、更新後に問題が出た場合は、直前に更新したテーマやプラグインから順番に確認します。特に検索プラグインは、インデックス再作成が必要になる場合があります。

8. WordPress検索の精度と使いやすさを改善するコツ

8-1. ユーザーが探しやすい検索窓の配置

検索窓は、ユーザーが「探したい」と思った瞬間に見つけられる場所へ配置することが重要です。おすすめの配置は、ヘッダー、グローバルナビ、サイドバー、記事下、フッター、404ページです。

記事数が多いサイトでは、ヘッダーに検索アイコンを置くと便利です。ブログではサイドバーや記事下、ECサイトでは商品一覧ページ上部、FAQサイトではページ上部に大きめの検索窓を置くと効果的です。

検索窓が目立たないと、ユーザーは検索機能に気づかず離脱してしまいます。サイトの目的に合わせて、自然に目に入る場所へ配置しましょう。

8-2. プレースホルダーや検索ボタンの文言を工夫する

検索フォームのプレースホルダーには、ユーザーが何を入力すればよいか分かる文言を入れましょう。

たとえば、単に「検索」とするよりも、「キーワードを入力」「記事を検索」「商品名・カテゴリーで検索」「お悩みを入力してください」のように具体的にすると使いやすくなります。

検索ボタンも、サイトに合わせて「検索」「探す」「記事を探す」「商品を探す」などに変更できます。細かな文言ですが、ユーザーの行動を後押しする大切な要素です。

8-3. 検索結果のタイトル・抜粋・アイキャッチを見やすくする

検索結果ページでは、ユーザーが素早く目的の記事を選べるように、タイトル、抜粋、アイキャッチ画像を見やすく表示しましょう。

タイトルはクリックできることが分かるデザインにし、抜粋は長すぎず短すぎない文字数にします。アイキャッチ画像を表示すると視認性が上がりますが、画像が多すぎると読み込みが遅くなるため、適切なサイズを使いましょう。

また、投稿日よりも更新日が重要なサイトでは、更新日を表示するとユーザーが新しい情報を選びやすくなります。カテゴリーやタグも表示すると、検索結果の内容を判断しやすくなります。

8-4. 検索結果が0件だった場合の案内を改善する

検索結果が0件だった場合、単に「見つかりませんでした」と表示するだけではユーザーが離脱しやすくなります。0件ページには、次のような案内を追加しましょう。

別のキーワードで検索する案内、検索フォームの再表示、人気記事一覧、カテゴリー一覧、よく読まれている記事、お問い合わせへの導線などです。

文言の例は次のとおりです。

「該当する記事は見つかりませんでした。キーワードを短くする、別の言葉に変える、カテゴリーから探すなどをお試しください。」

0件ページは、検索体験を改善するチャンスです。ユーザーが次の行動を取りやすいように設計しましょう。

8-5. 人気記事・関連カテゴリーへの導線を追加する

検索結果ページには、人気記事や関連カテゴリーへの導線を追加すると回遊率を高めやすくなります。

たとえば、「WordPress 検索」と検索したユーザーには、検索フォームの設置方法、検索結果ページのカスタマイズ、検索できない原因、検索プラグイン比較などの記事が関連しやすいです。

検索キーワードと完全一致する記事がなくても、関連カテゴリーや人気記事を提示すれば、ユーザーは近い情報にたどり着けます。特に0件ページや検索結果が少ないページでは、関連導線が重要です。

8-6. スマホでも使いやすい検索フォームにする

スマホでは、検索フォームの幅、入力欄の高さ、ボタンの押しやすさが重要です。入力欄が小さすぎるとタップしにくく、ボタンが近すぎると誤操作が増えます。

スマホ向けには、検索窓を横幅いっぱいにする、ボタンを大きくする、余白を確保する、検索アイコンだけでなくテキストも併用する、入力中に画面が崩れないようにする、といった工夫が有効です。

また、ヘッダー内に検索フォームを常時表示すると画面を圧迫する場合があります。その場合は、検索アイコンをタップすると検索窓が開くデザインにすると使いやすくなります。

9. WordPress検索を高速化する方法

9-1. 検索が遅くなる主な原因

WordPress検索が遅くなる主な原因は、記事数の増加、検索対象の広げすぎ、カスタムフィールド検索、複雑な絞り込み条件、データベースの肥大化、サーバースペック不足、キャッシュ設定の不備です。

標準検索はシンプルですが、投稿数が多くなると検索処理に時間がかかる場合があります。さらに、カスタムフィールドやタクソノミー、複数条件での絞り込みを追加すると、データベースへの負荷が高くなることがあります。

検索が遅いと、ユーザーは結果を見る前に離脱します。記事数が増えてきたら、検索精度だけでなく検索速度も定期的に確認しましょう。

9-2. 記事数が多いサイトでの検索負荷対策

記事数が多いサイトでは、検索対象を必要な投稿タイプに絞ることが効果的です。検索に不要な固定ページ、古い投稿、非表示にしたい投稿タイプなどを除外すると、検索結果の質と速度を改善しやすくなります。

また、検索結果の表示件数を増やしすぎないことも大切です。1ページに50件、100件と表示すると、表示速度が遅くなります。10〜20件程度に抑え、ページネーションで分割するのが一般的です。

画像を表示する場合は、適切なサムネイルサイズを使い、遅延読み込みを活用しましょう。検索結果ページは一覧表示になるため、画像サイズの最適化が速度に影響します。

9-3. キャッシュ設定で検索体験を改善する

キャッシュは表示速度改善に役立ちますが、検索結果ページでは注意が必要です。検索結果はキーワードごとに内容が変わるため、キャッシュ設定によっては不正確な結果が表示されることがあります。

キャッシュプラグインを使う場合は、検索結果ページやクエリ付きURLの扱いを確認しましょう。?s=keyword のようなURLをキャッシュするかどうか、キャッシュ対象から除外できるかを設定します。

また、検索フォームやAjax検索では、JavaScriptやAPIリクエストがキャッシュや最適化設定の影響を受けることがあります。動作がおかしい場合は、キャッシュ削除や最適化除外を試しましょう。

9-4. 不要な検索対象を減らして速度を改善する

検索対象を広げすぎると、検索結果に関係の薄いコンテンツが混ざり、速度も落ちやすくなります。

たとえば、サイト内検索に不要な投稿タイプ、古いお知らせ、管理用ページ、サンクスページ、LP、非公開に近い固定ページなどは検索対象から除外してもよい場合があります。

検索対象を絞ることで、ユーザーにとって有益な結果だけを表示しやすくなります。検索機能は「たくさん出す」ことよりも「探しているものに早くたどり着ける」ことが重要です。

9-5. 高速検索プラグインや外部検索サービスの活用

大規模サイトでは、WordPress標準検索だけでなく、インデックス型の検索プラグインや外部検索サービスを活用する方法もあります。

検索プラグインの中には、独自のインデックスを作成して検索精度や速度を高めるものがあります。外部検索サービスを使うと、WordPressのデータベース負荷を下げながら高度な検索体験を実現できる場合もあります。

ただし、外部サービスは費用、データ連携、個人情報、運用保守を考慮する必要があります。まずは標準検索の改善、検索対象の整理、キャッシュ設定、プラグイン導入の順に検討するとよいでしょう。

10. WordPress検索機能をSEOとサイト改善に活かす方法

10-1. サイト内検索キーワードからユーザーニーズを把握する

サイト内検索キーワードは、ユーザーがそのサイトで何を探しているかを示す重要なデータです。Google検索から流入したキーワードだけでなく、サイト内で検索されたキーワードを見ることで、ユーザーの具体的な悩みや不足している情報が分かります。

たとえば、「ワードプレス 検索 表示されない」というサイト内検索が多ければ、検索機能のトラブル解決記事を強化する価値があります。「WordPress 検索 プラグイン」が多ければ、プラグイン比較や導入手順の記事が求められている可能性があります。

検索データは、記事作成、リライト、カテゴリー設計、内部リンク改善に活用できます。

10-2. 検索されているのに記事がないテーマを見つける

サイト内検索でよく検索されているのに、該当する記事がないテーマは、新規記事の有力な候補です。

検索結果が0件だったキーワードを定期的に確認し、ユーザーが求めている情報がサイト内に存在するか見直しましょう。0件キーワードは、ユーザーのニーズと現在のコンテンツのズレを示しています。

また、記事はあるのに検索結果に出ていない場合は、タイトルや見出し、本文内の表現がユーザーの検索語と合っていない可能性があります。その場合は、記事内容をリライトし、ユーザーが使う言葉を自然に追加しましょう。

10-3. 検索結果ページのインデックス可否を判断する

WordPressの検索結果ページを検索エンジンにインデックスさせるかどうかは慎重に判断する必要があります。

一般的には、サイト内検索結果ページはキーワードごとに大量生成されやすく、内容が薄いページになりやすいため、noindexにするケースが多いです。特に、検索結果が0件のページや、品質の低い一覧ページが大量にインデックスされると、SEO上好ましくない場合があります。

ただし、特定の検索条件ページをランディングページとして設計し、十分な独自コンテンツや内部リンクを持たせる場合は、インデックス対象として検討することもあります。基本方針としては、自動生成に近い検索結果ページはnoindex、価値ある一覧ページはカテゴリーページやタグページとして整備するのがおすすめです。

10-4. 内部リンクやカテゴリー設計の改善に活用する

サイト内検索で同じキーワードが何度も検索されている場合、ユーザーがナビゲーションやカテゴリーから目的の情報にたどり着けていない可能性があります。

たとえば、「料金」「お問い合わせ」「使い方」「導入事例」などが頻繁に検索されているなら、ヘッダーやフッター、トップページ、サイドバーに分かりやすい導線を追加すると改善できます。

また、特定のテーマが多く検索されている場合は、そのテーマに対応するカテゴリーやまとめページを作ると、ユーザーが探しやすくなります。検索データは、サイト構造の改善にも役立つ貴重なヒントです。

10-5. 検索データをコンテンツ改善に反映する

検索データを活用するには、定期的に次の点を確認します。

よく検索されているキーワード、検索結果が0件のキーワード、検索後にクリックされている記事、検索後に離脱しているキーワード、表記ゆれが多いキーワードです。

これらをもとに、既存記事のタイトルや見出しを改善したり、新規記事を作成したり、関連記事への内部リンクを追加したりします。

サイト内検索は、ユーザーが自分の言葉でニーズを入力してくれる場所です。単なる機能として放置せず、SEOとコンテンツ改善のデータ源として活用しましょう。

11. WordPress検索機能に関するよくある質問

11-1. WordPressの検索機能は無料で使える?

はい、WordPressの標準検索機能は無料で使えます。検索フォームを設置すれば、追加費用なしでサイト内検索を利用できます。

ただし、検索精度を高めたい、カスタムフィールドを検索したい、絞り込み検索を作りたい、Ajax検索を導入したいといった場合は、有料プラグインや開発費用が必要になることがあります。

まずは標準検索を使い、課題が明確になってからプラグインやカスタマイズを検討すると無駄がありません。

11-2. WordPressで検索対象を投稿だけにできる?

はい、できます。pre_get_posts を使って、検索時の post_typepost に限定します。

PHP
function my_search_only_post_type_post( $query ) {
if ( ! is_admin() && $query->is_main_query() && $query->is_search() ) {
$query->set( 'post_type', 'post' );
}
}
add_action( 'pre_get_posts', 'my_search_only_post_type_post' );

この設定をすると、検索結果には通常投稿だけが表示され、固定ページやカスタム投稿タイプは除外されます。

11-3. WordPressで固定ページを検索対象に含めるには?

固定ページを検索対象に含めたい場合は、post_typepage を指定します。投稿と固定ページの両方を対象にするなら、次のようにします。

PHP
function my_search_posts_and_pages( $query ) {
if ( ! is_admin() && $query->is_main_query() && $query->is_search() ) {
$query->set( 'post_type', array( 'post', 'page' ) );
}
}
add_action( 'pre_get_posts', 'my_search_posts_and_pages' );

ただし、固定ページの中には、お問い合わせ完了ページ、LP、規約ページなど検索結果に出したくないページもあります。その場合は、ページIDを指定して除外しましょう。

11-4. WordPressでカテゴリー検索はできる?

はい、できます。カテゴリーアーカイブを使う方法と、検索フォームにカテゴリー選択を追加する方法があります。

カテゴリーごとの記事一覧を見せたいだけなら、カテゴリーアーカイブで十分です。キーワード検索とカテゴリー絞り込みを組み合わせたい場合は、検索フォームにカテゴリー選択を追加します。

メディアサイトやブログでは、検索フォームとカテゴリー導線を組み合わせることで、ユーザーが目的の記事を見つけやすくなります。

11-5. WordPressで検索結果が出ないときは何から確認すべき?

まず、検索したキーワードが記事タイトルや本文に含まれているか確認します。次に、該当記事が公開状態か、投稿タイプが検索対象になっているか、exclude_from_search が有効になっていないかを確認します。

そのうえで、検索結果テンプレート、テーマ設定、検索プラグイン、キャッシュ、パーマリンク設定を順番に見直します。

特に、検索フォームの name="s" が抜けている、フォームの送信先URLが間違っている、検索結果テンプレートで独自クエリが上書きされている、キャッシュが古い、という原因はよくあります。

まとめ

WordPressの検索機能は、標準機能だけでもすぐに使えます。検索ブロック、ウィジェット、get_search_form() を使えば、ヘッダー、サイドバー、フッター、記事内などに検索フォームを設置できます。

一方で、サイトの規模が大きくなるほど、標準検索だけでは検索精度や使いやすさに限界が出てきます。検索結果ページの表示改善、検索対象の調整、カスタム投稿タイプの追加、カテゴリーやタグでの絞り込み、検索プラグインの導入などを行うことで、ユーザーが目的の情報にたどり着きやすくなります。

検索できない、検索結果が表示されない、固定ページやカスタム投稿が出ないといったトラブルは、投稿タイプ設定、テンプレート、プラグイン、キャッシュ、パーマリンクを順番に確認すれば原因を見つけやすくなります。

また、サイト内検索はSEO改善にも役立ちます。ユーザーが検索しているキーワードを分析すれば、不足している記事テーマや内部リンクの課題が見えてきます。

WordPress検索は、単なるサイト内機能ではなく、ユーザー体験とコンテンツ改善を支える重要な仕組みです。まずは標準機能を正しく使い、必要に応じてカスタマイズやプラグインで強化していきましょう。