Version 2.5 is now available to all active license holders. It includes a number of optimizations, bug fixes, and other enhancements that improve SearchWP in a number of ways. The two big additions in version 2.5 are an alternate indexer and some better feedback when search strings have been manipulated by SearchWP’s algorithm.

Alternate Indexer

A small percentage of SearchWP customers have had trouble getting the indexer to work. This is usually due to a custom hosts file (or other DNS issue) that prevented the background process from working correctly. To be more specific the HTTP calls that keep the background indexer working were not being properly received. There have also been a couple of cases where a misconfigured caching layer prevented the indexer requests from being properly received as well. As a solution to both issues, an alternate indexer has been added. Unlike background processing by default, when the alternate indexer is enabled you will need to keep a browser window open while the indexing process runs. This is not ideal, so the default remains the background indexing process, but if a server configuration issue is preventing that from working properly, the alternate indexer should resolve the issue.

To enable the alternate indexer, you can use the searchwp_alternate_indexer hook which will enable the new trigger on the main SearchWP settings screen:

Screen Shot 2015-03-18 at 9.03.32 AM

Better search string manipulation feedback

SearchWP’s algorithm includes some optimizations that aren’t immediately apparent:

  • Minimum word length
  • Common words (stopwords)
  • Maximum search terms

There have been reasonable defaults set for each of the above but if you’re new to SearchWP you may for example search for something, not get an expected result, and feel that SearchWP was behaving improperly. In most cases it’s due to a term that doesn’t meet the minimum word length requirement not being met, or a common word being excluded that you don’t want excluded.


SearchWP will now check for circumstances like these. When found, SearchWP will include an Admin Bar entry letting you know just how the search was modified based on default settings. Each entry links directly to the hook you can use to modify SearchWP’s behavior should you want to do that.


The overall intention of this feature is to help you better understand the inner workings of SearchWP and also answer questions about why an expected search result may have not shown up.

There were a number of smaller updates/tweaks introduced in 2.5 — here’s a full changelog:

  • [New] Alternate, browser based indexer for cases where background indexing doesn’t work
  • [New] Front end Admin Bar entry that calls out any search modifications put in place (e.g. minimum word length, common words, maximum search length)
  • [New] New filter: searchwp_alternate_indexer to trigger the new browser-based indexer
  • [New] New filter: searchwp_log_search to allow prevention of search logging on a per-case basis
  • [New] New filter: searchwp_init to allow for dynamic initialization of SearchWP
  • [New] New filter: searchwp_max_delta_attempts to catch edge cases causing repeated delta updates
  • [New] New filter: searchwp_indexer_taxonomies allows developers to customize which taxonomies are indexed
  • [New] New filter: searchwp_indexer_unindexed_args to customize WP_Query arguments used to locate unindexed posts
  • [New] New filter: searchwp_indexer_unindexed_media_args to customize WP_Query arguments used to locate unindexed Media
  • [New] New filter: searchwp_failed_index_notice to customize who can see the notice about unindexed posts
  • [New] New filter: searchwp_remove_pre_get_posts to define whether all hooks to pre_get_posts are removed during indexing (a very common conflict)
  • [New] New filter: searchwp_indexer_pre_process_content allows developers to customize the content being indexed before it is processed and indexed
  • [New] Set default array of excluded IDs to the main search query’s post__not_in
  • [New] Set default array of included IDs to the main search query’s post__in
  • [New] PDF metadata is now indexed
  • [Change] Use get_query_var() instead of directly grabbing $wp_query attributes
  • [Change] Add index.php to default loopback endpoint to avoid false positives with WAFs
  • [Change] Use debug.txt instead of debug.log
  • [Change] PDF text extraction abstracted to it’s own method SWP()->extract_pdf_text( $post_id )
  • [Fix] Fixed an issue that prevented limiting Media results for an engine to more than one MIME type group
  • [Fix] Fixed an off-by-one issue that prevented single terms from being indexed when using the searchwp_process_term_limit filter
  • [Fix] Fixed an issue that interfered with pagination in the WP admin when searchwp_in_admin was set to true
  • [Fix] PHP Warning cleanup in Dashboard Widget
  • [Fix] Only output Dashboard Widget assets on the Dashboard
  • [Fix] Fixed an overflow issue in Dashboard Widget when collapsed on load
  • [Fix] Fixed an issue where Dashboard Widget stats transients were not cleared when stats were reset
  • [Improvement] Better minimum height for statistics graph
  • [Improvement] Better width restriction on settings screen for post type tabs
  • [Improvement] Better detection of database environment change that may interfere with indexing
  • [Improvement] Weights of less than 0 are now called out to ensure intention of excluding results
  • [Improvement] Better checks against searchwp_indexed_post_types when displaying settings screen
  • [Improvement] Main search algorithm optimizations
  • [Improvement] Indexer now checks for excluded posts before reindexing them after a purge
  • [Improvement] Optimizations to search algorithm when weights of zero are used
  • [Improvement] UI improvements on the settings screen
  • [Update] Updated translation files
  • [Update] Updated updater

Want to make your search awesome right now?

More than 30,000 sites have chosen SearchWP!

You can utilize all of the content that’s gone unrecognized by native WordPress keyword search instantly with SearchWP.

Get SearchWP for just $99

  • Committed Support
    If you need help, support is fast, friendly, and here for you
  • Streamlined Setup
    Installation and setup that’s optimized for speed
  • Great Documentation
    Helpful, clear, and usable documentation is a priority

See what SearchWP customers have to say

  • “SearchWP is a great plugin that is easy to use & provides a lot of utility. I have also been especially impressed with their level of support. They responded very quickly & helped me sort my issue in absolutely no time. I would definitely recommend.”

  • “Jonathan, the developer, was very responsive to my questions and even made me some custom code modifications. Wonderful service!”

  • “SearchWP lets you easily configure a custom search engine placing more or less emphasis on whatever fields and post types that you want. Very clean interface. Super helpful plugin. Thanks!”

[wpforms id="3080"]