デフォルトでは、WordPressの検索はすべての投稿とページを検索結果に含めます。しかし、お店のチェックアウトページ、プレミアムオンラインコース、購読者限定コンテンツなど、一部のコンテンツを除外したい場合があります。
そうすることで、検索者は不要な検索結果や無関係な検索結果をスクロールして余計な時間を費やす必要がなくなります。これは、ブログ記事のアーカイブが多いサイトや、注文関連のページが多いeコマースストアを運営している場合に特に有効です。
WPBeginnerでは、何千ものブログ記事を公開し、100近いユニークなウェブページを持っています。その結果、私たちは合理化された検索ツールの重要性を知っています。私たちの経験では、検索機能を改善する最善の方法は、SearchWPやWPCodeのようなプラグインを使用することです。私たちはWPCodeを自身のブログで使用していますし、私たちのパートナーブランドのいくつかは、彼らのサイトでSearchWPを使用して素晴らしい経験を持っています。
この記事では、WordPressの検索結果から特定のページ、投稿、著者、カテゴリーなどを簡単に除外する方法をご紹介します。
なぜWordPressの検索から項目を除外するのか?
初期設定のWordPress検索は、WordPressの投稿とページすべてから検索結果を表示するので、多くのサイトでうまく機能する。
しかし、時には特定のページや投稿を除外したい場合もあるでしょう。例えば、オンラインストアを運営しているのであれば、チェックアウトページとカートページを除外したいかもしれません。
同様に、WordPressの会員制ウェブサイトを運営している場合やオンラインコースを販売している場合は、一般的にプレミアムな会員限定コンテンツを公開検索結果から除外したいと思うでしょう。特定の著者による投稿など、他のタイプのコンテンツを除外したい場合もあるでしょう。
それでは、WordPressの検索から項目を簡単に除外する方法を見ていきましょう。この記事で紹介する方法の概要は以下の通りです:
注:このガイドでは、ウェブサイトの検索結果からコンテンツを除外する方法を紹介します。しかし、このコンテンツは依然として検索エンジンの検索結果に表示されます。検索エンジンがページをインデックスしないようにしたい場合は、GoogleからWordPressのページを非表示にする方法をご覧ください。
SearchWP WordPressプラグインのインストールとセットアップ
ページ、投稿者、カテゴリー、タクソノミー、タグなどを除外する最も簡単な方法は、SearchWPプラグインを使用することです。これは、30,000以上のサイトで使用されている最高のWordPress検索プラグインです。
初心者にとても優しく、WordPressの検索機能を改良して、より有益で適切な結果を提供することが簡単にできる。私たちはSearchWPの詳細なレビューを書く際に、その機能を詳しく調べました。
このプラグインを使用すると、検索結果からコンテンツタイプ全体を除外することができます。特定のページ、投稿、カスタム投稿タイプを除外することもできます。
最初に行う必要があるのは、プラグインのインストールと有効化です。詳しくは、WordPressプラグインのインストール方法のステップバイステップガイドをご覧ください。
有効化したら、SearchWP ” Settingsに行き、’General’タブをクリックする。
ここで、「ライセンスキー」ボックスにライセンスを入力する必要があります。
この情報は、SearchWPサイトのアカウントで確認できます。完了したら、「Verify Key」ボタンをクリックしてください。
カスタム検索アルゴリズムの作成
プラグインを有効化すると、SearchWPがどのようにインデックスを作成し、検索し、コンテンツを表示するかを微調整することができる。あなたのWordPressブログやウェブサイトのためだけのカスタムGoogle検索アルゴリズムを作成するようにこれを考えることができます。
カスタム検索結果ページからページ、投稿、投稿者などを除外する前に、サイト全体の検索エンジンを作成する必要があります。
まずは、SearchWP “ Algorithmをご覧ください。
ここでは、ページ、投稿、メディアファイルなど、SearchWPが初期設定で検索する異なるコンテンツタイプのセクションが表示されます。
各セクションには、SearchWPがあなたのサイトのコンテンツをどのようにランク付けするかをコントロールする独自の「適用属性の関連性」スライダーがあります。
例えば、「タイトル」スライダーを左に、「コンテンツ」スライダーを右に動かすと、コンテンツがタイトルよりも重くなります。
この時点で、すべてのページ、投稿、カスタム投稿タイプなど、コンテンツタイプ全体を検索結果から除外することができます。
たとえば、ほとんどのWordPressブログには、お問い合わせフォームやホームページなど、いくつかのページがあります。すべてのページを検索対象から除外して、ブログの記事だけが検索結果に表示されるようにすることもできます。
ソースと設定」ボタンをクリックします。
WordPress検索から除外したいコンテンツ(すべてのページを含む)のチェックを外すポップアップが開きます。
完了したら、『完了』ボタンをクリックします。
初期検索エンジン設定のカスタマイザーが完了したら、変更を保存しましょう。特定のページや投稿者、その他のコンテンツを除外する場合でも、最初にサイト全体の新しい検索アルゴリズムを保存する必要があります。
そのためには、画面を一番上までスクロールし、「保存」ボタンをクリックします。
SearchWPはインデックスを自動的に再構築します。インターネット接続の速度とWordPressホスティングプロバイダーによっては、数分かかる場合があります。
Index Status 100%’ と表示されれば、SearchWPがすべてのコンテンツと設定をインデックスしたことがわかります。
これで、除外されたコンテンツが検索結果に表示されることはなくなった。
WordPressの検索から特定の投稿、ページ、カスタム投稿タイプを除外する
カスタム検索アルゴリズムを作成したら、WordPressの検索結果から特定の投稿、ページ、カスタム投稿タイプを除外することができます。
例えば、WooCommerceを使用している場合、お問い合わせフォーム、アカウントログイン、チェックアウトページを除外し、検索結果が商品のみを返すようにすることができます。このようにして、よりスマートなWooCommerce商品検索を作成し、より多くの売上を獲得することができます。
そのためには、「Exclude UI」エクステンションを使用します。このエクステンションは、ページエディターに「Exclude from search(検索から除外する)」ボックスを追加します。
WordPressのダッシュボードで、SearchWP “ Extensionsに向かう。 ここで、’Exclude UI’エクステンションを見つけ、その’インストール’ボタンをクリックする。
その後、WordPressの検索結果から除外したい投稿、ページ、またはカスタム投稿タイプを開きます。
個別投稿を除外する場合は、右側のメニューで「投稿」オプションが選択されていることを確認し、「検索から除外する」ボックスにチェックを入れます。
更新」をクリックして変更を保存します。
上記と同じ手順で、特定のページやカスタム投稿タイプを除外することもできます。唯一の違いは、右側のメニューに「投稿」の代わりに「ページ」またはカスタム投稿タイプの名前が表示されることです。
WordPressの検索から特定のカテゴリー、タグ、カスタム・タクソノミーを除外する
WordPressの検索結果から特定のカテゴリー、タグ、その他のカスタム・タクソノミーを除外することもできます。
例えば、複数著者のWordPressブログでコンテンツを整理・管理するために投稿者が使用するタグがあるかもしれません。これらのタグはあなたのチームが参照するためだけのものなので、検索結果から除外したいでしょう。
これを行うには、SearchWP ” Algorithmに行き、’投稿’セクションまでスクロールするだけです。ここで、’Edit Rules’をクリックする。
検索エンジンのルールを編集するポップアップが開きます。
ルールの追加」ボタンをクリックするだけで、最初のルールを作成できます。
ここで、最初のドロップダウンメニューを開き、’Exclude entries if’を選択する。
残りの設定を使用して、除外したいコンテンツを指定できます。例えば、特定のカテゴリーを除外したい場合は、カテゴリー名を入力します。
また、除外したいカスタムタクソノミーを入力することもできます。
検索結果から特定の投稿タグを除外するには、ドロップダウンメニューを開き、「タグ」を選択するだけです。
次に、除外したいタグの名前を入力する。
別のルールを追加するには、「ルールの追加」ボタンをクリックし、上記と同じプロセスを繰り返すだけです。
ルールの設定に満足したら、「完了」をクリックする。
ルールのカスタマイザーが完了したら、ページの一番上までスクロールし、「保存」をクリックして変更を保存し、インデックスを再構築してください。
今、訪問者があなたのWordPressウェブサイトを検索するとき、SearchWPはその結果から選択したすべてのカテゴリー、タグ、またはカスタムタクソノミーを除外します。
WordPressの検索から特定の投稿者を除外する
WordPressブログに複数の投稿者を追加している場合、特定の投稿者を検索結果から除外したい場合があります。例えば、ある投稿者のブログがもうあなたのサイトに投稿されていない場合、その投稿者のブログを除外することができます。
サイトにコードを追加することで、特定の投稿者が作成した投稿をすべて除外することができます。この操作を行ったことがない場合は、初心者向けのWordPressへのスニペット貼り付けガイドを参照してください。
多くの場合、ガイドはカスタマイザーのコードをテーマのfunctions.phpファイルに追加するように指示します。しかし、これはとても簡単なことではなく、コード内の小さなスペルミスやエラーでさえ、WordPressの一般的なエラーを引き起こしたり、サイトを完全に壊してしまう可能性があります。
幸いなことに、ユーザーがカスタム・コード・スニペットを追加・管理するための簡単な方法がある。
WPCodeは、100万以上のウェブサイトで使用されている最も人気のあるコードスニペットプラグインです。functions.phpファイルを編集することなく、簡単にコードスニペットを追加することができます。また、カスタマイズを失うことなくWordPressテーマを更新することができます。
最初に行う必要があるのは、WPCodeをインストールして有効化することです。詳しくは、WordPressプラグインのインストール方法のステップバイステップガイドをご覧ください。
有効化したら、Code Snippets ” Add Snippetにアクセスしてください。ここで、「カスタムコードを追加」にマウスオーバーし、表示されたら「スニペットを使用」を選択します。
カスタムスニペットの作成」ページが表示されますので、コードタイプ名を入力してください。
これはあくまで参考なので、お好きなものを使ってください。
次に、「コードタイプ」のドロップダウンを開き、「PHP」を選択する。
その後、次のスニペットをコードボックスに貼り付ける:
<?php
function wpb_search_filter( $query ) {
if ( $query->is_search && !is_admin() )
$query->set( 'author','-24' );
return $query;
}
add_filter( 'pre_get_posts', 'wpb_search_filter' ); ?>
24を
除外したい作者のユーザーIDに置き換える必要があります。ユーザーIDの見つけ方については、WordPressでIDを見つける方法をご覧ください。
また、ユーザーIDをカンマ区切りで追加することで、複数の投稿者を検索結果から除外することもできます:
<?php
function wpb_search_filter( $query ) {
if ( $query->is_search && !is_admin() )
$query->set( 'author','-24, -12, -19' );
return $query;
}
add_filter( 'pre_get_posts', 'wpb_search_filter' ); ?>
コードボックスの下に、挿入オプションが表示されます。主な挿入オプションは2つあります:自動挿入」と「ショートコード」です。
WPCodeが自動的にサイト全体にコードを挿入して実行するように、「自動挿入」メソッドを選択します。
コード・スニペットにタグを割り当てることもできます。これにより、トピックや機能ごとにコード・スニペットを分類することができます。
スニペットの設定に満足したら、画面を一番上までスクロールし、「スニペットを保存」をクリックする。
最後に、’有効化’トグルをクリックして、コードスニペットをサイト上で有効化することができます。
更新』をクリックして、この変更を保存することをお忘れなく。
これで、WordPressの検索結果から投稿者が除外されます。
この記事で、特定のページやカスタム投稿タイプ、著者などをWordPressの検索対象から除外する方法をご理解いただけたでしょうか。WordPress の検索結果ページをカスタマイズする方法や、WordPress のデフォルト検索 URL を変更する方法については、こちらのガイドもご覧ください。
If you liked this article, then please subscribe to our YouTube Channel for WordPress video tutorials. You can also find us on Twitter and Facebook.
Jiří Vaněk
Thanks for the WP Code snippet. I also have articles on my blog that are hosted and I don’t want them to be searchable. Since I also have the author of the text registered with them, I can conveniently exclude them from the search thanks to your snippet. Thank you very much.
Javier
Hi!
I have a doubt, it’s possible to exclude a word from search?
For example:
– Keyword to search: laptop
– Not search with the word: macbook
The results should be all the laptops but no the ones who contains the word “macbook”
Thanks and regards!
WPBeginner Support
That kind of customization would require editing how your search engine works, it would be better to use tags or categories for separating your content like that normally.
管理者
Dave C
Hi,
Will this affect SEO in any way?
I want a specific post to be excluded from my own sites Searchbar, but still want it to be found by Google SERP’s.
Thanks,
WPBeginner Support
It will make your page more difficult to find and we have not tested but it shouldn’t have a major effect as long as the page can be easily found.
管理者
Melika
Hi,
The code in “Exclude Specific Tags from WordPress Search” section is faulty and causes WP to throw an error.
WPBeginner Support
The code is currently working, just to be safe you may want to take a look at the recommendations in our guide below:
https://www.wpbeginner.com/beginners-guide/beginners-guide-to-pasting-snippets-from-the-web-into-wordpress/
管理者
Melika
Please look at the snippet once again. (I am only talking about the part after the heading which says “Exclude Specific Tags from WordPress Search”) First of all the syntax is wrong. on line 4 you have } but you have never started a block with {.
Second, You have :
add_filter( ‘pre_get_posts’, ‘wpb_search_filter’ );
but never defined a function named : wpb_search_filter
basically the code is missing one line at the type which should be :
function wpb_search_filter( $query ) {
So either it’s expected from the users to complete the code from what you added in the upper parts of this article or this snippet of code is not complete.
WPBeginner Support
Thank you for clarifying that, it looks like our code block had a hiccup and we resolved the issue so the code should show correctly now.
Brittany
Hi there!
By checking this “search exclude” will the post still be indexed and accessible via google?
I’m trying to find the best way to have a post type available to those who have a link to it. However I do not want people to be able to access it via google or have to password protect the posts. Any suggestions for the best way to do that? (I can explain further if needed)
Any help appreciated! Thanks
WPBeginner Support
For preventing search engines from indexing the page you would want to take a look at our guide below:
https://www.wpbeginner.com/wp-tutorials/how-to-hide-a-wordpress-page-from-google/
管理者
Lisa
Thank you so much for this post! I was having trouble not just with getting Google to stop indexing my Thank You page, but also preventing my own site from indexing it in the search as well! This solved both of my problems.
WPBeginner Support
You’re welcome, glad our guide was able to help you
管理者
Claudia
I have installed the plugin, checked the exclude check on one page but I continue to see on search result, why?
WPBeginner Support
There are a few possible reasons. If you reach out to the plugin’s support they should be able to help you solve the issue
管理者
John
Thanks for the VERY helpful post. As I am not a “coder,” I do have one question…
How do I exclude **more than one** specific terms in a custom taxonomy? How will the code change?
Deborah Smart
Once I’ve excluded a certain page from a WP Search, do I have to change the setting from ‘Public’ to ‘Private’?
I want to be able to give only certain people access to a certain page (for free information or paid information)- but they’re not editors on my blog.