Disable Search

Description

This plugin prevents WordPress from allowing and handling any search requests from the front-end of the site. Specifically, this plugin:

  • Prevents the search form from appearing if the theme uses the standard get_search_form() function to display the search form.
  • Prevents the search form from appearing if the theme uses a searchform.php template
  • Prevents the search item from appearing in the admin tool bar when shown on the front-end.
  • Disables the search widget.
    • Removes the Search widget from the list of available widgets
    • Deactivates any search widgets currently in use in any sidebars (they are hidden, not deleted; they’ll reappear in their original locations if this plugin gets deactivated)
  • Disables the search block.
    • Removes the Search block from the list of available blocks
    • Deactivates any search blocks currently in use, such as in posts or as a widget (they are disabled, not deleted; they’ll reappear if this plugin gets deactivated and the associated placeholder block doesn’t get deleted)
  • With or without a search form, the plugin prevents any direct or manual requests by visitors, via either GET or POST requests, from actually returning any search results.
  • Submitted attempts at a search will be given a 404 File Not Found response, rendered by your site’s 404.php template, if present.
  • Disables output of SearchAction in SEO schema by the Yoast SEO plugin.

The plugin only affects search on the front-end of the site. It does not disable searching in the admin section of the site.

Links: Plugin Homepage | Plugin Directory Page | GitHub | Author Homepage

Installation

  1. Install via the built-in WordPress plugin installer. Or install the plugin code inside the plugins directory for your site (typically /wp-content/plugins/).
  2. Activate the plugin through the ‘Plugins’ admin menu in WordPress

FAQ

Will this disable the search capabilities in the admin section of the blog?

No.

Will this prevent Google and other search engines from searching my site?

No. This only disables WordPress’s capabilities with regards to search.

Search engines index your site and search their index of your site. They do not make use of your site’s native search capabilities. You can only prevent search engines from searching your site by blocking their web crawlers and purging their cache of your site (which is well beyond the scope of this plugin).

Why do I still see a search form on my site despite having activated this plugin?

The most likely cause for this is a theme that has the markup for the search form hardcoded into one or more of the theme’s template files (excluding searchform.php). This is generally frowned upon nowadays (the theme should be calling get_search_form() or using searchform.php to get the search form). There is no way for this plugin to prevent this hardcoded form from being displayed.

However, even if this is the case, the form won’t work (thanks to this plugin), but it will still be displayed.

Can the front-end search only be selectively disabled, allowing it to appear and work under certain conditions (such as only for logged-in users, etc)?

No, not at this time, though it is feature being considered. (In truth, custom coding could certainly be used to achieve this, but that obviously requires coding knowledge.)

Is this plugin GDPR-compliant?

Yes. This plugin does not collect, store, or disseminate any information from any users or site visitors.

Does this plugin include unit tests?

Yes.

Reviews

སྤྱི་ཟླ་གཉིས་པ། 9, 2022
Simple and Very Handful
སྤྱི་ཟླ་དང་པ། 2, 2022
Love this plugin! Really didn't want a search bar on my site and this took care of the problem. I have used this plugin for about a year with no hiccups at all. Thank you for developing it!
སྤྱི་ཟླ་དགུ་པ། 17, 2021
I was looking for hours to hide the search form in the theme I am using. This plugin worked in 2 clicks: install and activate Really great!!
སྤྱི་ཟླ་བདུན་པ། 28, 2019
does what it says. no options is much better.
སྤྱི་ཟླ་བཅུ་པ། 8, 2018
good!!
Read all 13 reviews

Contributors & Developers

“Disable Search” is open source software. The following people have contributed to this plugin.

Contributors

“Disable Search” has been translated into 4 locales. Thank you to the translators for their contributions.

Translate “Disable Search” into your language.

Interested in development?

Browse the code, check out the SVN repository, or subscribe to the development log by RSS.

Changelog

2.0.1 (2023-09-02)

  • Change: Safeguard JS from throwing error if WP JS isn’t loaded (should be rare to never)
  • Change: Note compatibility through WP 6.3+
  • Change: Update copyright date (2023)
  • Change: Tweak code alignment
  • New: Add .gitignore file
  • Unit tests:
    • Fix: Allow tests to run against current versions of WordPress
    • New: Add composer.json for PHPUnit Polyfill dependency
    • Change: Prevent PHP warnings due to missing core-related generated files

2.0 (2021-09-13)

Highlights:

  • This release finally addresses disabling the search block, notes compatibility through WP 5.8+, and restructures unit test directories.

Details:

  • New: Disable the search block
    • New: Add disable_core_search_block() to unregister block via PHP
    • New: Add enqueue_block_editor_assets() to register JS script to unregister search block via JS
    • New: Add JS script file to unregister search block
    • Change: Update documentation to reflect search block being disabled
  • Change: Remove get_search_form() and simply use __return_empty_string() as callback to 'get_search_form' filter
  • Change: Note compatibility through WP 5.8+
  • Change: Tweak installation instruction
  • Unit tests:
    • Change: Restructure unit test directories
      • Change: Move phpunit/ into tests/
      • Change: Move phpunit/bin into tests/
    • Change: Remove ‘test-‘ prefix from unit test file
    • Change: In bootstrap, store path to plugin file constant
    • Change: In bootstrap, add backcompat for PHPUnit pre-v6.0

1.8.3 (2021-05-01)

  • Fix: Change __wakeup() method visibility from private to public to avoid warnings under PHP8
  • Fix: Throw an error when attempting to unserialize an instance of the class to actually prevent it from happening

Full changelog is available in CHANGELOG.md.