Fine tuning the search configuration

After selecting the proper environment and plugins, there are a few tricks to increase search performance.

High performance impact changes

These changes are recommended on most shared hosts and lower performance servers, as well as in cases with thousands of posts. These changes can improve the search performance significantly.

For big databases - Use the Index WP MySQL For Speed plugin

If you have a relatively big database, then the Index WP MySQL For Speed is a amazing tool to generate additional indexes on database tables like the posts, post metadata, users etc.. It can yield a huge performance gain for your overall site as well as the queries.
WARNING! Please be very careful when using any database altering tools. Make sure to have a full website backup before initiating any commands or changes.

Disable search when typing

While it's a great feature, it requires a decent server to handle. Shared hosts tend to have an execution limit, which can be reached very quickly with constant ajax requests.
To disable this feature go to the General Options -> Behavior panel. Also, make sure that either the magnifier or the return button action is set to 'Trigger live search' (see screenshot), otherwise the live results will not appear.
After this change the user will have to hit the Return key or click the magnifier icon to start the ajax search process (depending on your configuration).

Front-end filters

Front-end filters are effective even if they are visually turned off! To disable them, they have to be removed on the search configuration.
Using front-end filters can be a major blow for the overall search performance, especially when combining a lot of filters on a large set of results.
  • Make sure to minimize the number of front-end filters
  • Remove the less important filters if possible
  • Use them in combination with the search cache

Exclusions or inclusions by taxonomy terms or tags

The exclusion/inclusion documentation can be found here.
  • Minimize the number of items excluded/included - instead of excluding/including by multiple child categories, exclude the parent category only etc..
  • Do not use the inclusions and exclusions at the same time. In that case using an inclusion should be sufficient, as everything else is excluded.

Disable autocomplete, or use only google as autocomplete source

Autocomplete is triggered on every keystroke, so just like the previous option - unless only google is selected as the source. In that case your server is not invoked in the process.
Solution 1:
Solution 2:

Use the index table engine

If your main results are Posts, Pages, Products or other custom post types, you should definitely consider using the Index Table engine.
Using the index table engine is highly recommended if:

Disable secondary (fill) logic

By default this feature is disabled, but in case you decided to use it, it can cause a decent performance slowdown.
To turn it off, go the the General Options -> Behavior panel and set the "Secondary logic" option:

Enable the search cache

There is a built-in, optional file and database based search cache. To enable it, go to the Cache Settings submenu.
Cache Settings
There is either a File or Database caching method. We recommend trying both to find out which one works in your case faster.

Medium performance impact changes

These changes can have a relateively big impact on the overall performance.

Enabling the custom ajax handler

As discussed in the previous section, the ajax performance is unfortunately affected by every single plugin you have installed.
However there is an implemented custom ajax handler, which can try to bypass unneccessary plugin loading, making this process faster.
To enable the custom ajax handler, click the Compatibility Settings submenu.

Disable image cropping

Cropping images to thumbnails can cause a definite slowdown, mostly in cases where the source images are too big. Image cropping can be disabled on the Caching options page: