WordPressのサイト内検索でヒットしない原因と対処法

生活

WordPressのサイト内検索で、確かに書いたはずの言葉を入れても記事が出てこない。

そんな経験をして、首をかしげている方も多いのではないでしょうか。

「記事が消えてしまったのかな」「設定をどこか触ってしまったかな」と不安になりますよね。

実は、サイト内検索でヒットしない原因の多くは、WordPressが検索で調べている場所と、こちらが探してほしい場所が食い違っていることにあります。

たとえば、カスタムフィールドやカテゴリー名に書いた言葉は、標準の検索ではもともと調べてもらえない仕組みになっています。

ほかにも、固定ページが検索対象から外れていたり、特定の記事だけが除外されていたり、全角と半角の違いで見つからなかったりと、原因はいくつか考えられます。

この記事では、そうした原因を一つずつ取り上げて、どこを確認すればよいのかをわかりやすく解説していきます。

テーマやプラグインが関係していそうな場合も、バックアップを取ってから、訪問者に迷惑をかけない手順で確かめる方法を紹介しますので、安心して読み進めてください。

「なぜ出てこないのか」がわかれば、落ち着いて対処できるようになりますよ。

この記事でわかること

  • WordPressのサイト内検索でヒットしない主な原因と、最初に確かめたい3つのポイント
  • 固定ページや特定の記事だけがヒットしないときの確認方法
  • カスタムフィールドやカテゴリー名、表記揺れが検索漏れにつながる理由と対応の考え方
  • テーマやプラグインの影響を安全に切り分ける手順と、不要な固定ページを検索から外す方法
  1. WordPressのサイト内検索でヒットしない主な原因は検索対象と設定の違いにある
    1. 検索語が記事内に正しく保存されているか確認する
    2. 記事の公開状態と閲覧制限を確認する
    3. 検索結果がキャッシュされていないか確かめる
    4. noindex設定は通常のサイト内検索に影響しない
  2. 本文に検索語があってもヒットしない場合は標準検索の対象範囲を確認する
    1. WordPress標準検索が調べる項目を知る
    2. ショートコードで表示した文字は検索できない場合がある
    3. 検索対象を変更する独自設定の有無を確認する
  3. 固定ページがヒットしない場合は投稿タイプの指定を見直す
    1. 検索フォームのpost_type指定を確認する
    2. テーマによる固定ページの除外設定を調べる
    3. 投稿と固定ページの両方を検索対象にする
  4. 特定の記事だけヒットしない場合は個別の除外設定を調べる
    1. 記事ごとの検索除外設定を確認する
    2. 非公開やパスワード保護の状態を確認する
    3. 会員向け機能や閲覧制限の影響を調べる
    4. ログイン中だけヒットする場合は表示権限を確認する
  5. 検索フォームと検索結果テンプレートの記述ミスを確認する
    1. searchform.phpの送信先と検索欄の名前を確認する
    2. actionが空欄になっていないか調べる
    3. search.phpは検索処理ではなく結果表示を担う
    4. 子テーマによる古いテンプレートの上書きを確認する
  6. 静的トップページや.htaccessが検索結果ページを妨げる場合がある
    1. 静的HTMLがWordPressより先に表示されていないか確認する
    2. 検索結果のURLが別ページへ転送されていないか調べる
    3. パーマリンク設定を保存し直してルールを更新する
  7. カスタムフィールドやカテゴリーまで検索するには機能の追加が必要になる
    1. カスタムフィールドの値は標準検索の対象外になる
    2. カテゴリー名やタグ名も標準では検索されない場合がある
    3. 検索用プラグインか個別のカスタマイズを選ぶ
  8. 全角・半角などの表記揺れは検索漏れの原因になる
    1. 全角と半角の違いを確認する
    2. ひらがなとカタカナの違いを確認する
    3. 同義語や送り仮名の違いに対応する方法を選ぶ
  9. テーマとプラグインの影響は安全な手順で切り分ける
    1. バックアップ後に検証環境で確認する
    2. トラブルシューティングモードで管理者だけ停止状態を試す
    3. Twenty Twenty-Fiveへ一時的に切り替えてテーマの影響を調べる
    4. プラグインを一つずつ有効にして原因を絞る
  10. 解決しない場合はエラーログと検索条件を詳しく確認する
    1. WP_DEBUGの記録は画面に表示せずログへ残す
    2. 検索時に渡されている検索語と投稿タイプを確認する
    3. 独自コードのpre_get_posts設定を調べる
  11. 不要な固定ページだけをサイト内検索から除外できる
    1. Search Excludeなどでページ単位に除外する
    2. 投稿IDや投稿タイプを指定して除外する
    3. 管理画面の検索まで除外しないよう適用範囲を限定する
  12. まとめ

WordPressのサイト内検索でヒットしない主な原因は検索対象と設定の違いにある

WordPressのサイト内検索でヒットしない原因と対処法

WordPressのサイト内検索でヒットしないときは、検索の仕組みが「探している場所」と「実際に探している場所」で食い違っていることがほとんどです。

まずは、検索語が記事に保存されているか、記事が公開されているか、古い表示が残っていないかの3点を確かめてください。

多くの場合、この基本的な確認だけで原因の見当がつきます。

「ちゃんと書いたはずなのに出てこない」というのは、WordPressを使っている人なら一度はぶつかる素朴な疑問です。

壊れているように見えても、実際には設定や状態の違いで「検索の対象外」になっているだけということがよくあります。

最初に確認したいポイントを、次の表にまとめました。

確認すること よくある状況 確かめ方
検索語が保存されているか 更新ボタンを押し忘れた、言葉が画像の中にある 公開中のページで文字として表示されているか見る
記事の公開状態 下書き、予約投稿、非公開、パスワード保護のまま 投稿一覧の状態表示を見る
キャッシュ 古い検索結果が表示され続けている ログアウトした状態や別のブラウザで検索する
noindex設定 検索エンジン向けの設定と混同している サイト内検索とは別の仕組みだと理解しておく

ここからは、それぞれの項目を順番に見ていきます。

検索語が記事内に正しく保存されているか確認する

意外と多いのが、検索したい言葉がそもそも記事に保存されていないケースです。

編集画面で文章を直したあと、「更新」ボタンを押さずに画面を閉じてしまうと、変更は反映されません。

また、予約投稿や下書きに書いた内容は、公開されるまで検索の対象になりません。

もうひとつ見落としやすいのが、画像の中に書かれている文字は検索できないという点です。

チラシやバナーの画像に「営業時間」と書いてあっても、それは文字ではなく絵として扱われるため、検索には引っかかりません。

確認するときは、次の手順がわかりやすいです。

  1. 公開中の記事ページをブラウザで開く
  2. キーボードの「Ctrl」と「F」を同時に押してページ内検索をする
  3. 探している言葉が文字として見つかるか確かめる

ページ内検索で見つからなければ、サイト内検索でもヒットしないのは自然なことです。

あわせて、言葉の書き方が微妙に違っていないかも見ておくと安心です。

記事の公開状態と閲覧制限を確認する

WordPressのサイト内検索は、基本的に「公開」状態の記事だけを探します。

投稿一覧で、記事の状態が次のどれになっているかを確認してみてください。

  • 下書き:検索結果には出ない
  • 予約済み:公開日時になるまで出ない
  • レビュー待ち:公開されるまで出ない
  • 非公開:権限のある人がログインしているときだけ出る
  • パスワード保護:ログインしていない訪問者の検索には出ない

特に注意したいのが、管理者としてログインしたまま検索を試しているときです。

ログイン中は非公開の記事が見える場合があるため、自分の画面と訪問者の画面で結果が違うことがあります。

「自分では出るのに、お客さんからは見つからないと言われた」という場合は、この違いを疑ってみましょう。

会員制の仕組みや閲覧制限をかける機能を使っている場合も、制限中の記事は訪問者の検索結果に出ないことがあります。

検索結果がキャッシュされていないか確かめる

キャッシュとは、ページを速く表示するために、一度作った画面を一時的に保存しておく仕組みです。

表示が速くなる便利な仕組みですが、新しく公開した記事が検索結果にすぐ反映されない原因になることがあります。

次のような方法で、古い表示が残っていないかを確かめてみてください。

  • ブラウザの「シークレットウィンドウ」で検索してみる
  • スマートフォンなど別の端末で検索してみる
  • キャッシュ用のプラグインを使っていれば、キャッシュを削除してから試す
  • レンタルサーバー側の高速化機能が有効なら、その設定画面でキャッシュを削除する

キャッシュを消したとたんに検索結果に出てくるようなら、原因はここにあったと考えてよいでしょう。

noindex設定は通常のサイト内検索に影響しない

「noindexにしたから、サイト内検索にも出なくなったのでは」と心配される方がいますが、通常はその心配はいりません。

noindexは、Googleなどの検索エンジンに「このページは検索結果に載せないでください」と伝えるための設定です。

一方、WordPressのサイト内検索は、サイトの中に保存されている記事を自分で探す仕組みです。

両者は別々に動いているため、noindexを付けても、サイト内検索の結果は基本的に変わりません。

逆に言えば、noindexを付けたからといって、サイト内検索から記事を隠せるわけでもありません。

もしnoindexを付けた記事だけが見つからないなら、テーマやプラグインに別の除外設定があるかもしれないので、その点もあわせて確認してみてください。

本文に検索語があってもヒットしない場合は標準検索の対象範囲を確認する

WordPressのサイト内検索でヒットしない原因と対処法

記事の中に確かに書いてある言葉なのに検索で出てこない場合、多くはその文字が「WordPressが検索で調べる場所」に入っていないことが原因です。

画面上は本文に見えていても、実際にはショートコードや別の仕組みで表示されている文字は、標準の検索では見つけられないことがあります。

まずは標準検索がどこを調べているのかを知り、そのうえで検索対象を変える設定が加えられていないかを確かめていきましょう。

WordPress標準検索が調べる項目を知る

WordPressに最初から備わっている検索機能は、記事のすべてを調べているわけではありません。

基本的に調べているのは、次の3つの項目です。

項目 標準検索の対象
記事のタイトル 対象になる
本文(編集画面に入力した内容) 対象になる
抜粋 対象になる
カテゴリー名・タグ名 対象にならない
カスタムフィールドの内容 対象にならない
コメント・投稿者名 対象にならない

ここで大事なのは、検索で調べているのはデータベースに保存されている元の文章だという点です。

読者が目にする完成した画面の文字を調べているわけではありません。

たとえば本文の中で「Word」と「Press」の間だけ太字にしているような場合、保存されている中身は文字の間に飾りの記号が入った状態になります。

そのため、画面では「WordPress」と読めても、検索ではひと続きの言葉として見つからないことがあります。

また、標準検索は原則として公開済みの記事だけが対象です。

下書きや予約投稿の記事は、本文に言葉が入っていても検索結果には出てきません。

ショートコードで表示した文字は検索できない場合がある

本文に見えているのに検索できない原因として、特に多いのがショートコードです。

ショートコードとは、[]で囲んだ短い記号を本文に書いておくと、表示するときに別の内容に置き換えてくれる仕組みのことです。

吹き出しやボタン、表、よく使う定型文などを表示するときによく使われています。

このとき、データベースに保存されているのは置き換える前の記号だけです。

置き換えた後に表示される文章は本文の中に保存されていないため、標準検索では見つけられません。

同じような理由で、次のような方法で表示している文字も検索にかからないことがあります。

  • ショートコードで呼び出した吹き出しや定型文
  • 複数の記事で使い回す「同期パターン」(以前の「再利用ブロック」)の中身
  • サイドバーやフッターなどのウィジェットに書いた文章
  • 画像の中に文字として入っている言葉

確かめ方はかんたんです。

編集画面で検索したい言葉がそのまま文字として入力されているかを見てください。

ブロックエディターなら、右上のメニューから「コードエディター」に切り替えると、保存されている中身をそのまま確認できます。

そこに言葉が見当たらず、記号やブロックの呼び出しだけが書かれているなら、それが検索できない理由と考えてよいでしょう。

どうしても検索で見つけてほしい言葉であれば、本文や抜粋に普通の文字として書き添えておくのが手軽な対処法です。

検索対象を変更する独自設定の有無を確認する

標準の対象範囲に入っているはずなのに見つからない場合は、検索の仕組みそのものが書き換えられていないかを疑ってみましょう。

WordPressでは、テーマやプラグイン、追加したプログラムによって、検索する場所を広げたり狭めたりできるようになっています。

以前に誰かが設定したまま忘れられていることも珍しくありません。

次のような場所を順番に確認してみてください。

  1. テーマの設定画面に「検索」に関する項目がないか
  2. 検索機能を強化するプラグインが入っていないか(プラグイン一覧で「検索」「Search」などの名前を探す)
  3. テーマのfunctions.phpやコード追加用のプラグインに、検索に関する記述がないか
  4. サイトを制作会社や知人に作ってもらった場合、検索の仕組みを変えていないか

functions.phpの中では、「pre_get_posts」「posts_search」「search_columns」といった言葉を含む記述が、検索の対象を変えているかもしれない目印になります。

たとえば検索する場所を「タイトルだけ」に絞る記述が入っていると、本文にいくら言葉があっても検索結果には出てきません。

ただし、functions.phpは書き間違えるとサイトが表示されなくなることもある大切なファイルです。

中身を見るだけにとどめ、書き換えや削除は必ずバックアップを取ってから行うようにしてください。

検索強化のプラグインを使っている場合は、プラグイン独自の検索用データが古いままになっていて、新しく書いた本文が反映されていないこともあります。

そのようなときは、プラグインの設定画面に検索用データを作り直す項目がないか確認してみるとよいでしょう。

固定ページがヒットしない場合は投稿タイプの指定を見直す

WordPressのサイト内検索でヒットしない原因と対処法

WordPressの標準の検索は、もともと投稿と固定ページの両方を対象にしています。

それなのに固定ページだけが出てこない場合は、どこかで検索の対象が「投稿だけ」に絞られている可能性が高いです。

多くは検索フォームの設定か、テーマ側の設定が原因なので、この2か所を順番に確認していきましょう。

WordPressでは、投稿や固定ページなど記事の種類のことを「投稿タイプ」と呼びます。

検索のときにこの投稿タイプが指定されていると、指定外の種類はどれだけ言葉が一致していても結果に出てきません。

検索フォームのpost_type指定を確認する

まず確かめたいのは、検索フォームが「投稿だけを探す」設定になっていないかです。

いちばん簡単なのは、実際に検索したあとのページのアドレス(URL)を見る方法です。

検索後のURLの例 意味
https://example.com/?s=料金 投稿タイプの指定なし(標準の状態)
https://example.com/?s=料金&post_type=post 投稿だけを検索している

URLの中に「post_type=post」という文字が入っていれば、それが固定ページが出てこない原因です。

確認のため、ブラウザのアドレス欄に「サイトのURL/?s=調べたい言葉」と直接入力してみてください。

この方法で固定ページが表示されるなら、検索フォームの作りに原因があると判断できます。

検索フォームは、テーマの「searchform.php」というファイルや、ウィジェット、ブロックなどで作られています。

ファイルの中に「<input type=”hidden” name=”post_type” value=”post”>」のような記述があれば、これが投稿だけに絞り込んでいる部分です。

画面には見えない隠れた項目なので、見た目だけでは気づきにくい点に注意しましょう。

テーマによる固定ページの除外設定を調べる

URLに投稿タイプの指定がないのに固定ページが出てこない場合は、テーマ側で除外されているかもしれません。

テーマによっては、カスタマイザーやテーマ独自の設定画面に「検索結果に固定ページを含める」といった項目が用意されています。

この項目がオフになっていれば、オンに切り替えるだけで解決することがあります。

設定画面に見当たらない場合は、functions.phpの中で検索の対象が変えられていないかを確認します。

特に次のような書き方は、固定ページを検索から外している目印になります。

  • 「is_search()」と「post_type」が近くに書かれている
  • 「set( ‘post_type’, ‘post’ )」のように、投稿だけを指定している

こうした記述は、表示を速くしたい、ブログ記事だけを見せたいといった理由で、意図的に入れられていることもあります。

消す前に「なぜこの設定が入っているのか」を一度考えておくと、ほかの部分への思わぬ影響を防げます。

投稿と固定ページの両方を検索対象にする

原因がわかったら、投稿と固定ページの両方が検索されるように直します。

検索フォームが原因だった場合は、次のどちらかの方法をとります。

  1. 「post_type」を指定している隠れた項目を削除し、標準の状態に戻す
  2. 投稿と固定ページの両方を指定する形に書き換える

両方を指定する場合は、「name=”post_type[]” value=”post”」と「name=”post_type[]” value=”page”」の2つの隠れた項目を並べて書きます。

functions.phpが原因だった場合は、「’post’」となっている部分を「array( ‘post’, ‘page’ )」に書き換えると、両方が検索対象になります。

ただし、テーマのファイルを直接書き換えると、テーマを更新したときに元に戻ってしまうことがあります。

変更は子テーマで行い、作業前には必ずバックアップを取っておきましょう。

直したあとは、固定ページにしか書かれていない言葉で検索して、きちんと結果に出てくるかを確かめてください。

なお、「お問い合わせ完了ページ」のように、検索に出てほしくない固定ページがある場合も考えられます。

そうしたページは、すべての固定ページを外すのではなく、個別に除外する方法で対応するのがおすすめです。

特定の記事だけヒットしない場合は個別の除外設定を調べる

WordPressのサイト内検索でヒットしない原因と対処法

ほかの記事は検索に出るのに、特定の記事だけがヒットしない場合は、その記事だけに設定された「除外」や「公開状態」が原因であることが多いです。

まずは記事の編集画面を開き、検索除外の設定、公開状態、閲覧制限の3点を順番に確かめてみましょう。

サイト全体の設定ではなく記事ごとの設定なので、見落としやすいところでもあります。

記事ごとの検索除外設定を確認する

テーマやプラグインによっては、記事の編集画面に「サイト内検索から除外する」といった項目が用意されています。

このチェックが入っていると、その記事は本文に検索語があっても結果に出てきません。

以前に別の担当者が設定したり、記事を複製したときに設定が引き継がれたりして、知らないうちにチェックが入っていることもあります。

確認する場所の例は次のとおりです。

  • 記事編集画面の右側にある設定欄
  • 本文の下に表示される、テーマ独自の設定欄
  • 「Search Exclude」など、検索除外用のプラグインが追加した項目

なお、検索エンジン向けの「インデックスしない」という設定と、サイト内検索の除外は別物です。

名前が似ていて混同しやすいので、どちらの検索に対する設定なのかを説明文でよく確かめてから変更しましょう。

非公開やパスワード保護の状態を確認する

記事の公開状態によっても、検索に出るかどうかが変わります。

編集画面の「公開状態」や「表示状態」の欄を見て、どの状態になっているかを確認してください。

公開状態 一般の訪問者の検索結果
公開 表示される
非公開 表示されない
パスワード保護 ログインしていない人には表示されない
下書き・レビュー待ち 表示されない
予約済み 公開日時になるまで表示されない

とくに見落としやすいのがパスワード保護です。

WordPressの標準の検索では、パスワード保護をかけた記事は、ログインしていない人の検索結果には出てきません。

中身を見せたくない記事を守るための動きなので、故障ではありません。

検索に出したい場合は、公開状態を「公開」に戻すことを検討しましょう。

予約投稿の場合は、公開日時が意図せず先の日付になっていないかもあわせて見ておくと安心です。

会員向け機能や閲覧制限の影響を調べる

会員サイト用のプラグインや閲覧制限の機能を使っている場合、制限をかけた記事は検索結果から外れることがあります。

「会員だけが読める記事」を、会員でない人の検索結果に出さないようにする仕組みが働いているためです。

次のような点を確認してみてください。

  • その記事に会員限定や閲覧制限の設定がかかっていないか
  • カテゴリーやタグ単位で制限がかかり、記事がその対象に含まれていないか
  • プラグインの設定に「制限した記事を検索結果から隠す」といった項目がないか

記事そのものには何も設定していなくても、カテゴリー単位の制限に巻き込まれていることがあります。

記事の設定だけでなく、プラグイン側の設定画面も一度のぞいてみましょう。

ログイン中だけヒットする場合は表示権限を確認する

管理画面にログインしたまま検索すると出てくるのに、ほかの人からは「出てこない」と言われることがあります。

これは、ログイン中の自分には見る権限があり、一般の訪問者にはないために起こる違いです。

たとえば非公開の記事は、管理者や編集者としてログインしていると検索結果に出ることがあります。

つまり、自分の画面でヒットしていても、訪問者に同じように見えているとは限りません。

確認するときは、次の手順で訪問者と同じ状態にして検索するのが確実です。

  1. ブラウザのシークレットウィンドウ(プライベートウィンドウ)を開く
  2. ログインしていない状態でサイトを表示する
  3. 問題の記事にしか書かれていない言葉で検索する

ここでヒットしなければ、公開状態や閲覧制限など、表示権限に関わる設定が原因と考えられます。

反対にログインしていなくてもヒットするなら、訪問者の環境で古い表示が残っているなど、別の理由を疑ってみましょう。

検索フォームと検索結果テンプレートの記述ミスを確認する

WordPressのサイト内検索でヒットしない原因と対処法

どんな言葉で検索してもヒットしない場合は、検索フォームの送信先と検索欄の名前に誤りがないかを最初に確認しましょう。

あわせて、検索結果を表示するテンプレートの書き方や、子テーマに残った古いファイルも見直すと原因が見つかりやすくなります。

記事の設定に問題がなくても、テーマ側の記述が少し違うだけで検索がうまく動かなくなることがあります。

searchform.phpの送信先と検索欄の名前を確認する

テーマの検索フォームは、多くの場合「searchform.php」というファイルに書かれています。

このファイルで特に大事なのは、フォームの送信先(action)と、検索欄の名前(name)の2か所です。

WordPressは、検索欄の名前が「s」になっているときだけ、入力された言葉を検索語として受け取ります。

名前が「search」や「q」などになっていると、言葉を入力しても検索として扱われず、普通のページが表示されるだけになります。

標準的な書き方と、よくある誤りを比べてみましょう。

確認する箇所 正しい例 よくある誤り
送信先(action) <?php echo esc_url( home_url( ‘/’ ) ); ?> 空欄、古いドメインや試験用のアドレスを直接書いている
送信方法(method) get post になっている
検索欄の名前(name) s search、q、keyword など別の名前になっている

送信先にアドレスを直接書いている場合は、サイトの引っ越しや「https」への切り替えのあとに古いアドレスが残っていないかも見ておきましょう。

検索したあとのアドレス欄に「?s=検索語」が付いていれば、フォームは正しく言葉を送れていると判断できます。

actionが空欄になっていないか調べる

送信先が「action=””」のように空欄だと、フォームは今見ているページのアドレスに検索語を送ります。

トップページで検索したときは問題なく見えても、カテゴリーページや記事ページから検索すると結果が変わるのはこのためです。

たとえば、カテゴリーページで検索すると、そのカテゴリーの中だけに絞られた結果になることがあります。

記事ページで検索した場合は、検索結果ではなく同じ記事がもう一度表示されたり、「ページが見つかりません」と出たりすることもあります。

「検索する場所によって結果が違う」と感じたら、送信先がサイトのトップを指しているかを確かめてください。

search.phpは検索処理ではなく結果表示を担う

「search.php」は名前から検索そのものを行うファイルに見えますが、実際には検索結果を画面に並べる役目のファイルです。

記事を探す処理はWordPressの本体が行い、search.phpはその結果を受け取って表示しているだけです。

そのため、search.phpの中に次のような書き方があると、正しく探せていても結果が表示されません。

  • 結果を順番に表示する処理(have_posts と the_post)が入っていない
  • 新しい WP_Query や query_posts で記事を取り直していて、検索語の条件が消えている
  • 結果が0件のときの表示だけが書かれ、条件分岐が逆になっている

特に、テンプレートの中で記事を取り直す書き方は、検索語を無視して新着記事などを並べてしまう原因になりやすいので注意しましょう。

なお、search.phpがテーマにない場合は、一覧用のテンプレートなどが代わりに使われます。

子テーマによる古いテンプレートの上書きを確認する

子テーマを使っている場合、子テーマに同じ名前のファイルがあると、親テーマのファイルより優先して使われます。

以前に修正のためsearchform.phpやsearch.phpを子テーマへ写していると、親テーマが更新されても子テーマ側の古い記述が使われ続けます。

次の手順で確認してみましょう。

  1. 子テーマのフォルダに searchform.php や search.php があるか確認する
  2. ある場合は、親テーマの同じファイルと中身を見比べる
  3. 必要なら、ファイルを保存しておいてから子テーマ側の名前を一時的に変える
  4. 検索がヒットするようになれば、子テーマ側のファイルが原因と判断できる

ファイルを触る前には、必ずバックアップを取っておくと安心です。

いつ写したファイルか覚えていない場合ほど、古い書き方が残っている可能性があるので一度確認しておきましょう。

静的トップページや.htaccessが検索結果ページを妨げる場合がある

WordPressのサイト内検索でヒットしない原因と対処法

検索してもいつもトップページが表示される、または「ページが見つかりません」と出る場合は、検索の仕組みより手前で表示が邪魔されている可能性があります。

よくある原因は、サーバーに残った古いHTMLファイルが先に読み込まれていることや、.htaccessの転送設定で検索結果のURLが別のページへ移されていることです。

この場合は、ファイルの置き場所、転送の有無、パーマリンク設定の保存し直しの順に確認すると原因を絞り込みやすくなります。

静的HTMLがWordPressより先に表示されていないか確認する

多くのサーバーでは、同じフォルダに「index.html」と「index.php」の両方があると、index.htmlのほうが優先して表示される設定になっています。

WordPressは index.php から動いているため、古いindex.htmlが残っていると、WordPressがまったく動かないままHTMLのページだけが表示されます。

検索結果のURLは「ドメイン/?s=検索語」のように末尾に条件が付くだけなので、トップページと同じindex.htmlが表示され、何を検索してもトップページが出るという状態になります。

こうしたファイルは、次のようなきっかけで残っていることが多いです。

  • 以前のホームページから作り替えたときに、古いindex.htmlを消し忘れた
  • レンタルサーバーが最初に用意した「準備中」のページが残っている
  • 工事中ページを作るために、自分でindex.htmlを置いたままにしている

確かめ方は簡単です。

ブラウザで「ドメイン/index.php?s=テスト」のように、index.phpを直接付けて検索してみてください。

これで正しく検索結果が出るなら、index.htmlが先に表示されているのが原因と考えられます。

  1. サーバーのファイル管理画面やFTPソフトで、WordPressを入れたフォルダを開く
  2. index.html や index.htm があるか確認する
  3. 見つかったらパソコンに保存してから、名前を「index.html.bak」などに変える
  4. トップページと検索結果が正しく表示されるか確かめる

いきなり削除せず、まずは名前を変えるだけにしておけば、何かあってもすぐ元に戻せます。

なお、index.phpは絶対に消したり名前を変えたりしないように気をつけてください。

検索結果のURLが別ページへ転送されていないか調べる

検索ボタンを押したあと、ブラウザのアドレス欄を見てみましょう。

本来は「?s=検索語」の部分が残っているはずですが、ここが消えていたり、まったく別のURLになっていたりする場合は、どこかで転送されています。

アドレス欄の様子 考えられる原因
「?s=検索語」が消えてトップページのURLになる https化やwwwの有無をそろえる転送設定で、検索条件が切り捨てられている
特定のページのURLに変わる 転送用プラグインの設定や、.htaccessに書いた転送ルールに当てはまっている
URLはそのままで「ページが見つかりません」と出る WordPressの書き換えルールがうまく働いていない

転送が疑われるときは、WordPressを入れたフォルダにある「.htaccess」というファイルを確認します。

中身を見る前に、必ずファイルをパソコンへ保存してバックアップを取っておきましょう。

「# BEGIN WordPress」の行より上に、「Redirect」や「RewriteRule」で始まる行があれば、自分やサーバー会社が追加した転送設定です。

サイトの引っ越しやhttps化のときに書いた設定が、検索結果のURLまで別の場所へ送ってしまっていることがあります。

どの行が原因か分からない場合は、書き換える前に、その設定を入れたときの手順書やサーバー会社の案内を見直すと安心です。

また、転送用のプラグインを入れている場合は、その設定画面の転送ルール一覧に、トップページや「?s=」を含むURLを対象にしたものがないかも見ておきましょう。

パーマリンク設定を保存し直してルールを更新する

URLは正しいのに「ページが見つかりません」と出る場合は、WordPressがURLを読み取るための書き換えルールが古くなっている可能性があります。

サイトの引っ越しや、パーマリンクの形を変えたあとに起こりやすい症状です。

このときは、パーマリンク設定を何も変えずに保存し直すだけで直ることがよくあります。

  1. 管理画面の「設定」から「パーマリンク」を開く
  2. 今の設定は変えずに、そのまま「変更を保存」を押す
  3. サイトに戻って、もう一度検索してみる

保存すると、WordPressが書き換えルールを作り直し、.htaccessの「# BEGIN WordPress」から「# END WordPress」までの部分も書き直されます。

この範囲はWordPressが自動で上書きするため、自分で追加した設定をこの範囲の中に書いていると消えてしまいます。

独自の設定は、必ずこの範囲の外に書いておきましょう。

もし保存後の画面に、.htaccessを書き換えられなかったという案内が出た場合は、ファイルの書き込み権限が足りていない状態です。

そのときは画面に表示された内容を写して手作業で.htaccessへ貼り付けるか、サーバー会社の案内に沿って権限を確認してください。

カスタムフィールドやカテゴリーまで検索するには機能の追加が必要になる

WordPressのサイト内検索でヒットしない原因と対処法

WordPressに最初から付いている検索は、カスタムフィールドの値やカテゴリー名、タグ名までは調べてくれません。

そのため、こうした場所にしか書かれていない言葉で検索しても、記事はヒットしないのが普通の動きです。

検索できるようにしたい場合は、検索用のプラグインを入れるか、検索の仕組みを個別に広げる必要があります。

カスタムフィールドの値は標準検索の対象外になる

カスタムフィールドとは、記事の本文とは別に「価格」「所在地」「担当者名」などの情報を入れておくための欄のことです。

Advanced Custom Fieldsのようなプラグインを使って、入力欄を増やしているサイトも多いと思います。

ところが、ここに入れた値は本文やタイトルとは別の場所に保存されています。

WordPressの標準検索は、この別の場所までは見に行かないため、画面上ではページに表示されている言葉でも、検索ではヒットしないということが起こります。

たとえば、次のような作りのサイトでよく見られる症状です。

  • 物件紹介で、住所や最寄り駅をカスタムフィールドに入れている
  • 商品紹介で、型番やメーカー名を専用の欄に入れている
  • スタッフ紹介で、名前や資格を入力欄で管理している

「ページに書いてあるのに見つからない」と感じたら、その言葉が本文に入っているのか、専用の入力欄に入っているのかを、編集画面で確かめてみてください。

カテゴリー名やタグ名も標準では検索されない場合がある

カテゴリーやタグの名前も、標準の検索では対象になっていません。

たとえば「旅行」というカテゴリーに入っている記事でも、本文やタイトルに「旅行」という言葉がなければ、「旅行」で検索してもその記事は出てこないことがあります。

読者としては「カテゴリーの名前で探せば一覧が出るはず」と思いがちなので、ここは意外とつまずきやすいところです。

なお、使っているテーマによっては、独自に検索の範囲を広げていることもあります。

そのため「場合がある」としていますが、特に何も手を加えていなければ、カテゴリー名やタグ名では探せないと考えておくとよいでしょう。

手軽な対策としては、検索の範囲を広げなくても、カテゴリーやタグの一覧ページへのリンクをサイドバーやメニューに置いておく方法もあります。

読者が言葉を入力しなくても目的の記事にたどり着けるので、検索の仕組みを変えるほどではない場合には十分役に立ちます。

検索用プラグインか個別のカスタマイズを選ぶ

カスタムフィールドやカテゴリー名まで検索できるようにする方法は、大きく分けて2つあります。

どちらが向いているかは、サイトの作りや、ご自身がどこまで触れるかで変わります。

方法 向いている人 気をつけたい点
検索用プラグインを入れる プログラムの記述に自信がない人、管理画面の設定だけで済ませたい人 ほかのプラグインやテーマとの相性、記事数が多い場合の動作の重さ
個別にカスタマイズする テーマのファイルを編集した経験がある人、必要な範囲だけ広げたい人 記述を間違えるとサイトが表示されなくなるおそれ、テーマ更新で消える可能性

プラグインでよく名前が挙がるものに、RelevanssiやSearchWPがあります。

どちらも、カスタムフィールドやカテゴリー、タグを検索の対象に加えたり、ヒットした記事の並び順を工夫したりできるのが特徴です。

無料で使える範囲や有料版の内容は変わることがあるので、導入前に公式の案内で確かめておくと安心です。

こうしたプラグインの多くは、検索用の索引をあらかじめ作っておく仕組みになっています。

そのため、入れたあとに管理画面で索引を作る操作が必要になることが多い点は覚えておきましょう。

個別にカスタマイズする場合は、テーマのfunctions.phpなどに、検索の範囲を広げる処理を書き足すことになります。

この方法を選ぶときは、次の点を守っておくと失敗しにくくなります。

  1. 作業の前に、サイト全体のバックアップを取っておく
  2. 親テーマを直接書き換えず、子テーマに追加する
  3. 本番のサイトではなく、できればテスト用の環境で動きを確かめる
  4. 追加した内容と日付をメモしておき、元に戻せるようにする

特に、親テーマのファイルに直接書き足すと、テーマを更新したときに消えてしまいます。

「どこまで検索させたいのか」を先に決めておけば、プラグインで広く対応するのか、必要な部分だけを個別に足すのかも選びやすくなりますよ。

全角・半角などの表記揺れは検索漏れの原因になる

WordPressのサイト内検索でヒットしない原因と対処法

同じ言葉のつもりでも、全角と半角、ひらがなとカタカナ、送り仮名の違いなどがあると、サイト内検索でヒットしないことがあります。

WordPressの標準の検索は、基本的に入力された文字と同じ並びの文字が記事の中にあるかを探す仕組みだからです。

まずは記事側と検索する側でどんな表記の違いがあるかを確かめ、そのうえで対応の方法を選ぶのが近道です。

ただし、どこまでを同じ文字として扱うかは、サーバーのデータベースの設定(文字を比べるときの決まり)によって変わります。

そのため、「自分のサイトでは実際にどうなるか」を試して確かめることが大切です。

全角と半角の違いを確認する

英数字や記号は、全角と半角が混ざりやすい部分です。

たとえば、記事には「WordPress」と全角で書いてあるのに、検索では半角で「WordPress」と入力すると、環境によってはヒットしないことがあります。

よく混ざりやすいのは、次のような部分です。

種類 全角の例 半角の例
英字 PC PC
数字 2024年 2024年
カタカナ メール メール
記号 ()/- ()/-

もうひとつ見落としやすいのが、言葉と言葉のあいだに入れる空白です。

WordPressの標準の検索は、半角の空白で区切ると複数の言葉として探しますが、全角の空白はそのままでは区切りとして扱われないことがあります。

その場合、「ワードプレス 検索」のような入力がひとかたまりの言葉として探されて、ヒットしにくくなります。

日本語向けの補助プラグインなどで調整されている場合もあるので、半角と全角の空白で結果が変わるか試してみてください。

ひらがなとカタカナの違いを確認する

「りんご」と「リンゴ」、「めーる」と「メール」のように、ひらがなとカタカナの違いも検索漏れの原因になります。

これもデータベースの設定によっては同じ文字として扱われますが、別の文字として扱われる環境もあります。

確認するときは、次の順番で試すとわかりやすいですよ。

  1. 記事の本文に実際に書かれている表記をそのまま検索する
  2. 同じ言葉をひらがな、カタカナに変えて検索する
  3. 漢字で書く言葉なら、漢字とかなの両方で検索する
  4. 結果の件数がどう変わるかをメモしておく

なお、設定によっては濁点や半濁点の有無まで同じ扱いになり、「ハ」で探して「パ」を含む記事が出てくるといった、思わぬ結果になることもあります。

「ヒットしない」だけでなく「関係ない記事が出る」場合も、表記の扱いが関係していることがあると覚えておくと、原因を探しやすくなります。

同義語や送り仮名の違いに対応する方法を選ぶ

「申し込み」と「申込」、「問い合わせ」と「問合せ」のような送り仮名の違いは、データベースの設定では同じ扱いになりません。

「パソコン」と「PC」のような同じ意味の別の言葉も同じで、文字が違う以上、標準の検索では別の言葉として探されます。

対応の方法はいくつかあるので、サイトの規模や手間に合わせて選びましょう。

方法 向いている場合 注意点
サイト内の表記を統一する 記事数がそれほど多くない場合 過去の記事も見直す手間がかかる
記事の中で別の表記も自然に添える よく検索される言葉が限られている場合 不自然に言葉を並べると読みにくくなる
同じ意味の言葉をまとめて探せる機能を使う 記事数が多く、言い換えも多い場合 プラグインの設定や確認に時間がかかる
検索窓の近くに入力のコツを書いておく すぐにできる手軽な対策をしたい場合 読む人が気づかないこともある

まずは、表記のルールを決めて、これから書く記事をそろえていくことから始めるのがおすすめです。

「数字は半角」「申し込みは送り仮名をつける」など、簡単な決まりを紙やメモにまとめておくだけでも、検索漏れはぐっと減らせます。

そのうえで、よく使われる言い換えが多いと感じたら、同じ意味の言葉をまとめて扱える仕組みを検討すると無理がありません。

テーマとプラグインの影響は安全な手順で切り分ける

WordPressのサイト内検索でヒットしない原因と対処法

検索の不具合がテーマやプラグインのせいかどうかは、「いったん止めてみて、検索が直るかどうか」で確かめるのがいちばん確実です。

ただし、公開中のサイトでいきなりプラグインを止めたりテーマを変えたりすると、見た目が崩れたり機能が止まったりして、訪問者に迷惑がかかります。

そこで、バックアップを取ってから、訪問者に影響が出ない方法で一つずつ試すという順番で進めましょう。

バックアップ後に検証環境で確認する

作業を始める前に、まずはサイト全体のバックアップを取っておきます。

バックアップがあれば、万が一表示がおかしくなっても元の状態に戻せるので、安心して確認作業に取り組めます。

バックアップするものは、次の二つです。

  • 記事や設定が入っているデータベース
  • テーマ、プラグイン、画像などのファイル一式

どちらか片方だけでは元に戻せないことがあるので、必ず両方をそろえておきましょう。

そのうえで、できれば本番のサイトとは別に用意した「検証環境」で試すのがおすすめです。

検証環境とは、本番サイトをそっくり写した練習用のサイトのことで、レンタルサーバーによっては管理画面から簡単に作れる機能が用意されています。

ここなら何を止めても訪問者には見えないため、気兼ねなく確認できます。

トラブルシューティングモードで管理者だけ停止状態を試す

検証環境を用意するのが難しい場合は、「Health Check & Troubleshooting」というWordPress公式のプラグインが役に立ちます。

このプラグインには「トラブルシューティングモード」という機能があり、ログインしている管理者の画面だけ、プラグインをすべて止めて標準のテーマに切り替えた状態を再現できます。

訪問者には普段どおりのサイトが表示され続けるので、公開中のサイトでも比較的安全に試せるのが大きな利点です。

使い方の流れは、おおむね次のとおりです。

  1. プラグインを追加して有効にする
  2. 管理画面の「ツール」から「サイトヘルス」を開き、トラブルシューティングの項目に進む
  3. トラブルシューティングモードを開始する
  4. サイトを開いて、いつもヒットしない言葉で検索してみる
  5. 確認が終わったら、トラブルシューティングモードを終了する

この状態で検索がヒットするようになれば、原因はテーマかプラグインのどちらかにあると判断できます。

反対に、止めた状態でもヒットしない場合は、テーマやプラグイン以外のところを疑うことになります。

Twenty Twenty-Fiveへ一時的に切り替えてテーマの影響を調べる

次に、テーマが原因かどうかを確かめます。

WordPressに標準で用意されている「Twenty Twenty-Five」に一時的に切り替えて、検索の結果が変わるかどうかを見てみましょう。

標準テーマは検索の仕組みに余計な手を加えていないため、比べる相手としてちょうどよいのです。

切り替えたときの結果は、次のように読み取れます。

標準テーマでの結果 考えられること
ヒットするようになった 使っているテーマの検索まわりの作りに原因がある可能性が高い
変わらずヒットしない テーマ以外、つまりプラグインなどに原因がある可能性が高い

なお、テーマを切り替えると、メニューやサイドバーの配置が変わったり、テーマ独自の設定が見えなくなったりすることがあります。

本番サイトで切り替える場合は、訪問者の少ない時間帯に短時間で済ませ、確認後はすぐ元のテーマに戻しましょう。

トラブルシューティングモードの中で切り替えれば、管理者の画面だけで試せるのでより安心です。

プラグインを一つずつ有効にして原因を絞る

プラグインが怪しいとわかったら、すべて止めた状態から一つずつ有効に戻しては検索する、という作業をくり返します。

手間はかかりますが、どれが原因かをはっきりさせるにはこの方法がいちばん確実です。

確認するときは、毎回同じ言葉で検索するのがポイントです。

言葉を変えてしまうと、結果が変わった理由がプラグインなのか言葉なのか、わからなくなってしまいます。

特に、次のような種類のプラグインは検索に関わることが多いので、優先して確かめると早く見つかります。

  • 検索の機能を広げたり、検索結果を並べ替えたりするもの
  • 表示を速くするためにページを一時保存するもの
  • 会員向けの制限や、特定のページを隠す機能があるもの
  • 多言語に対応させるもの

原因のプラグインが見つかったら、まずはそのプラグインの設定に検索に関わる項目がないかを見直してみましょう。

設定で解決しない場合は、更新が出ていないか確認するか、同じような働きをする別のプラグインへの置き換えを検討します。

確認した内容は、「どのプラグインを有効にしたら、どうなったか」を簡単にメモしておくと、あとで見返すときや誰かに相談するときにも役立ちます。

解決しない場合はエラーログと検索条件を詳しく確認する

WordPressのサイト内検索でヒットしない原因と対処法

ここまでの確認でも原因が見つからないときは、エラーの記録(ログ)と、検索するときに実際に渡されている条件を確かめるのが次の手です。

画面ではわからない不具合も、記録や条件を見ると原因が見えてくることがよくあります。

難しそうに見えますが、順番に見ていけば一つずつ確かめられます。

WP_DEBUGの記録は画面に表示せずログへ残す

WordPressには、内部で起きたエラーを書き出す「デバッグモード」という仕組みがあります。

これを有効にすると、検索したときに裏でエラーが出ていないかを調べられます。

設定は、サーバー上にある「wp-config.php」というファイルに書き加えて行います。

作業の前に、必ずファイルの控え(バックアップ)を取っておきましょう。

書き加える内容と、それぞれの意味は次のとおりです。

書き加える設定 意味
define( ‘WP_DEBUG’, true ); デバッグモードを有効にする
define( ‘WP_DEBUG_LOG’, true ); エラーをファイルに記録する
define( ‘WP_DEBUG_DISPLAY’, false ); エラーを画面には表示しない

これらは、ファイル内の「編集が必要なのはここまで」という意味の一文(英語で書かれています)より上に書き加えます。

すでに「WP_DEBUG」の行がある場合は、新しく足さずにその行の値を書き換えてください。

ここで大切なのは、エラーを画面に出さず、ログだけに残すことです。

画面に表示させてしまうと、訪問者にもエラーの中身が見えてしまい、サイトの内部情報が外に出るおそれがあります。

設定したら、ヒットしない言葉で何度か検索してみましょう。

記録は通常「wp-content」フォルダの中の「debug.log」というファイルに残ります。

中身を開き、検索した時刻のあたりに書かれている内容を見ると、どのテーマやプラグインのファイルで問題が起きているかの手がかりになります。

確認が終わったら、設定を元に戻し、debug.logも削除しておきましょう。

ログファイルを置いたままにすると、外部から読まれてしまう場合があるためです。

検索時に渡されている検索語と投稿タイプを確認する

エラーが見当たらない場合は、検索したときにどんな条件がWordPressに渡されているかを確かめます。

いちばん手軽なのは、検索したあとのブラウザのアドレス欄を見る方法です。

通常は「?s=」のあとに検索した言葉が続く形になっています。

日本語は「%E3%81…」のような記号の並びに変換されて表示されますが、これは正常な状態です。

アドレス欄では、次の点を確かめてみてください。

  • 「s=」のあとに、入力した言葉がきちんと入っているか
  • 「post_type=」が付いている場合、探したい種類のページが指定されているか
  • 見覚えのない条件(カテゴリーの指定など)が付け加えられていないか

たとえば「post_type=post」とだけ付いていれば、投稿しか探していないことがわかります。

もっと詳しく知りたい場合は、Query Monitorのような、ページを表示したときの内部の処理を確認できるプラグインを使う方法もあります。

実際にデータベースへ送られた検索の命令を見られるので、条件が途中で書き換えられていないかを確かめやすくなります。

こうした確認用のプラグインは、調べ終わったら停止しておくのが安心です。

独自コードのpre_get_posts設定を調べる

アドレス欄の条件は正しいのに結果がおかしい場合は、サイトに追加された独自のコードが、検索の条件を途中で書き換えている可能性があります。

その代表が「pre_get_posts」という仕組みを使ったコードです。

これは記事を取り出す直前に条件を変えられる便利な機能ですが、書き方を誤ると検索にも影響が出ます。

次のような場所に、この言葉が含まれていないか探してみましょう。

  1. 使っているテーマ(子テーマを含む)の「functions.php」
  2. コードを追加するためのプラグインに登録した内容
  3. 制作会社などが用意した独自のプラグイン

見つかったら、その中身で次の点を確かめます。

確認する点 起こりやすい問題
検索のときだけ働く条件になっているか 一覧ページ用の設定が検索にも効いてしまう
メインの表示だけを対象にしているか ほかの部品や管理画面にまで影響が出る
探す種類や件数を固定していないか 特定の種類のページしか出てこない
除外の条件が広すぎないか 必要な記事まで結果から外れてしまう

怪しい部分があれば、控えを取ったうえで、その部分だけを一時的に無効にして検索してみます。

それで結果が変われば、原因はそのコードだと判断できます。

functions.phpは、書き間違えるとサイト全体が表示されなくなることがあります。

管理画面からではなく、サーバーにファイルで接続できる状態で作業し、すぐ元に戻せるようにしておきましょう。

自分で書いた覚えのないコードであれば、作った人や制作会社に、ログや確認した条件を添えて相談するのが近道です。

不要な固定ページだけをサイト内検索から除外できる

WordPressのサイト内検索でヒットしない原因と対処法

お問い合わせの完了ページや、プライバシーポリシーのような固定ページは、検索結果に出なくてもいいですよね。

結論から言うと、こうした不要なページだけを選んでサイト内検索から外すことができます。

手軽なのはプラグインを使う方法で、慣れている方なら投稿IDや投稿タイプを指定するコードでも対応できます。

検索結果に関係のないページが並ぶと、本当に読んでほしい記事が下に埋もれてしまいます。

見せたいページがきちんと上に出るように、不要なページは外しておくと使いやすくなります。

Search Excludeなどでページ単位に除外する

コードを触りたくない方には、「Search Exclude」のような除外用プラグインが向いています。

このタイプのプラグインを入れると、固定ページや投稿の編集画面に「検索結果から除外する」といったチェック欄が追加されます。

外したいページでチェックを入れて保存するだけなので、とても簡単です。

使い方の流れは次のとおりです。

  1. 管理画面の「プラグイン」から除外用プラグインを探して追加し、有効化する
  2. 検索から外したい固定ページの編集画面を開く
  3. 除外のチェック欄にチェックを入れて更新する
  4. サイトの検索窓で、そのページが出てこないか確かめる

プラグインによっては、設定画面で除外中のページを一覧で確認できるものもあります。

あとから「どのページを外したんだったかな」と迷わずに済むので便利です。

ただし、プラグインを入れる前には、最近も更新されているか、今のWordPressで動作確認されているかを確認しておきましょう。

長いあいだ更新が止まっているものは、ほかの機能とぶつかる心配があるためです。

投稿IDや投稿タイプを指定して除外する

プラグインを増やしたくない場合は、テーマの「functions.php」などに除外のための記述を加える方法もあります。

やり方は大きく分けて二つあります。

方法 向いている場面 注意点
投稿IDを指定して外す 特定の数ページだけを外したい ページを作り直すとIDが変わる
投稿タイプを指定して外す 固定ページをまとめて外したい 必要な固定ページまで消えてしまう

投稿IDは、固定ページの一覧で該当ページにカーソルを合わせたときや、編集画面のアドレス欄に出てくる数字で確認できます。

この数字を「検索結果に含めないもの」として指定すると、そのページだけが外れます。

一方、投稿タイプで指定すると、固定ページを丸ごと検索の対象から外すことになります。

「不要なページだけを外したい」なら、基本は投稿IDで指定するほうが安全です。

投稿タイプごと外すと、会社案内やサービス紹介など、本当は見つけてほしいページまで検索に出なくなってしまいます。

どちらの方法でも、書き加える前にファイルの控えを取っておきましょう。

管理画面の検索まで除外しないよう適用範囲を限定する

除外の設定で意外と見落としやすいのが、どこにまで効かせるかという範囲です。

範囲を決めずに書くと、管理画面の固定ページ一覧で検索したときにも、そのページが見つからなくなることがあります。

「あのページを直したいのに、管理画面で探しても出てこない」となると困りますよね。

そうならないように、除外の条件には次の三つをそろえておくのが基本です。

  • 管理画面ではないこと(サイトを見ている人向けの画面だけに効かせる)
  • メインの表示であること(サイドバーの新着一覧などには効かせない)
  • 検索結果ページであること(カテゴリー一覧などには効かせない)

この三つを満たすときだけ除外が働くようにしておけば、訪問者の検索結果からは外れ、管理画面では今までどおり探せます。

設定が終わったら、サイトの検索窓と管理画面の検索の両方で試してみてください。

サイト側では出てこず、管理画面では見つかる状態になっていれば、うまく設定できています。

プラグインを使う場合も、念のため管理画面で該当ページが探せるかを一度確認しておくと安心です。

まとめ

この記事のポイントをまとめます。

  • サイト内検索でヒットしないときは、まず検索語が記事に保存されているか、記事が公開されているか、古い表示が残っていないかを確かめる
  • ショートコードなどで表示している文字は、標準の検索では見つからないことがある
  • 固定ページだけが出ない場合は、検索フォームやテーマで対象が「投稿だけ」に絞られていないかを見直す
  • 特定の記事だけ出ない場合は、記事ごとの検索除外設定、公開状態、閲覧制限を確認する
  • どの言葉でも出ない場合は、検索フォームの送信先や検索欄の名前、検索結果テンプレートの書き方を見直す
  • いつもトップページが出るときは、サーバーに残った古いHTMLファイルや.htaccessの転送設定を疑う
  • カスタムフィールドやカテゴリー名、タグ名まで検索したいときは、プラグインなどで機能を追加する
  • 全角と半角、ひらがなとカタカナなどの表記の違いも、ヒットしない原因になる
  • テーマやプラグインの影響を調べるときは、バックアップを取ってから訪問者に影響が出ない方法で一つずつ試す
  • それでも原因がわからないときは、エラーログや検索の条件を確かめ、不要な固定ページは検索から外して見やすく整える

サイト内検索でヒットしないと、「何か大きな故障が起きたのでは」と不安になりますよね。

でも実際には、設定が一つ違っていたり、検索する場所が思っていたのと違っていたりと、原因は意外と身近なところにあることがほとんどです。

大切なのは、あわてずに簡単な確認から順番に進めていくことです。

記事の公開状態や表記の違いといった基本から見ていけば、多くの場合は原因の見当がつきます。

テーマやファイルを触るときは、必ずバックアップを取ってから進めれば安心です。

ひとつずつ確かめていけば、きっと検索で記事がきちんと見つかるようになりますので、気楽な気持ちで取り組んでみてください。

タイトルとURLをコピーしました