sandywp / plugins / search-exclude

Search Exclude

4.8 out of 5 stars. 4.8 217 reviews

Hide any post or page from the search results.

Launch a sandbox with this plugin → No signup.
Ready in seconds.

v2.6.6 50,000+ installs WP 4.7+ PHP 5.6+

your-sandbox.sandywp.com/wp-admin
Search Exclude running inside a SandyWP sandbox

What you get inside

2 screens
  • screenshot-1.png

  • screenshot-2.png

About this plugin

With this plugin you can exclude any page, post or whatever from the WordPress search results by checking off the corresponding checkbox on post/page edit page.
Supports quick and bulk edit.

On the plugin settings page you can also see the list of all the items that are hidden from search.

Presentation

QuadLayers | Community

Questions

Does this plugin affect SEO?

No, it does not affect crawling and indexing by search engines.
The ONLY thing it does is hiding selected post/pages from your site search page. Not altering SEO indexing.

If you want posts/pages to be hidden from search engines you may add the following snippet to your functions.php:

function add_meta_for_search_excluded()
{
    global $post;
    if (false !== array_search($post->ID, get_option('sep_exclude', array()))) {
        echo '<meta name="robots" content="noindex,nofollow" />', "\n";
    }
}
add_action('wp_head', 'add_meta_for_search_excluded');

Note: already indexed pages will remain indexed for quite a while. In order to remove them from Google index, you may use Google Search Console (or similar tool for other engines).

Are there any hooks or actions available to customize plugin behaviour?

Yes.
There is an action searchexclude_hide_from_search.
You can pass any post/page/custom_post ids as an array in the first parameter.
The second parameter specifies state of visibility in search. Pass true if you want to hide posts/pages,
or false – if you want show them in the search results.

Example:
Let’s say you want “Exclude from Search Results” checkbox to be checked off by default
for newly created posts, but not pages. In this case you can add following code
to your theme’s function.php:

add_filter('default_content', 'exclude_new_post_by_default', 10, 2);
function exclude_new_post_by_default($content, $post)
{
    if ('post' === $post->post_type) {
        do_action('searchexclude_hide_from_search', array($post->ID), true);
    }
}

Also there is a filter searchexclude_filter_search.
With this filter you can turn on/off search filtering dynamically.
Parameters:
$exclude – current search filtering state (specifies whether to filter search or not)
$query – current WP_Query object

By returning true or false you can turn search filtering respectively.

Example:
Let’s say you need to disable search filtering if searching by specific post_type.
In this case you could add following code to you functions.php:

add_filter('searchexclude_filter_search', 'filterForProducts', 10, 2);
function filterForProducts($exclude, $query)
{
    return $exclude && 'product' !== $query->get('post_type');
}

4.8

217 reviews

  • 5 ★ 203
  • 4 ★ 5
  • 3 ★ 1
  • 2 ★ 1
  • 1 ★ 7

Ratings come from WordPress.org. SandyWP does not collect its own reviews.

sandywp / also on the shelf

Try another plugin

  • Exclude Search

    4.0 · 70+ installs

    Exclude posts, pages, products or custom posts from WordPress search results.

  • Tailored Easy Exclude

    5.0 · 20+ installs

    Small plugin that allows you to exclude pages or posts from WordPress administration post/page listing, and post/page can be…

Spin up a real WordPress site in seconds.

Test plugins, build a demo, hand a client a link — then squash it and start again. No local setup, no Docker.