One of the most consistent annoyances some of our customers report is the lack of power behind the WordPress search function, so we’re constantly on the lookout for the best WordPress Search plugin. When you have a large number of posts and pages, it can be maddening to try and track down a small bit of content that you published a few years ago.
And indexing the content of pdfs or other file uploads? Forget it. It’s not even in the realm of possibility.
“Searching” for the Best WordPress Search Plugin
While there are several things we can do to improve WordPress search, the solutions have always varied and often depend on the need of each individual customer. We’ve never come to a consensus on the best way to improve the WordPress search.
One thing we’ve done in the past is setup an externally-powered search, like a Custom Google Search – but there are typically caveats with that approach ( Some, like Google, will show advertisements on your site search results, subscriptions for customized versions are $100/yr+, etc).
Of course, in addition to SearchWP, there are some other enhanced WordPress search plugins available. Here’s a basic feature comparison between SearchWP and some other WordPress search plugins (please let us know if we’ve missed any you’d like to see here).
If you want to check out the individual plugins in this table you can use the links below:
In it’s bare bones form, the default WordPress search is severely limited. A common gripe among users is the lack of indexing custom post types, for example. If your website has any custom post types (say, a custom post type for your portfolio content, or product reviews, etc) – WordPress will not show these in your search results by default.
But, like anything in WordPress, a developer can customize the search functionality to their heart’s content.
Spoiler: Jonathan Christopher, the developer behind SearchWP, has done a brilliant job here.
Getting started with SearchWP
Out of the box, you see a list of all post types on your site. On my example site used for this review, I created a few thousand posts and pages. For the content, I used a script to generate example content with the Scrabble database to randomize words in the titles and some of the content:
The large quantity was added to see how this would affect the speed of SearchWP when making search queries. Technical jargon aside, it had little effect on the speed (once the plugin indexed the site, which is performed after activating the plugin).
Nerd bonus: The initial build of the index of ~5k posts and pages took about 6 minutes.
Performing a search was a breeze, and of course, just like default WordPress, if I’m searching for an exact term or phrase that’s contained in the title or the content of a post or page, it shows up fine:
Where’s Carmen SanDiego?
Where in the World?
To test the functionality of searching within custom post types, the post type of “Missing Things” was then added. To turn on searching within custom post types, I simply checked the post types’ name in the SearchWP settings:
Now, upon searching, the custom post type is included:
Customizing the Search Engine that powers your site
What if you could customize the search engine on your site? When you first install SearchWP, the settings page gives you a good deal of additional options for every post type on your site:
From here, you can customize how important each area of the site is, regarding your search results – including custom fields.
Example: I’ve added the words “Carmen Sandiego” as a post title in one post, and as part of the post content in another. If I have the post title weight number in SearchWP set higher than the post content‘s weight number, the post title search results will show before the post content search results.
If I change this, the search results will be re-ordered accordingly.
What if you can’t remember the exact name or phrase for what you’re looking for? With the default WordPress search, you’re out of luck.
With the SearchWP fuzzy matches extension, the functionality of broadening the search parameters to approximate results is possible.
I’m looking for a post I wrote about someone that starts with the letter ‘W’. What was it? Will? Walter? Wimbledon? Ah! Now I remember. But I only recall four of the letters.
Without the extension, if I search for ‘Wald’ the results are nil:
But if I activate the fuzzy matches extension, and run the search again, I’ll get a result:
Beyond post types
What if you have a site that contains, say, hundreds of PDF files? How do you search the text within those? Typically, you’d have to manually go through the media manager, looking over every PDF you uploaded, one by one, until you find the content.
With SearchWP, PDF content is indexed as well. I added a PDF file containing the word “Waldo” in the title, and behold! It found the content just as easily as a post/page/custom post type:
The title of the PDF:
I could have gone much much more in depth with this plugin review, but even while staying pretty close to the surface, it’s clear that SearchWP completely changes finding the content that you’re looking for in your WordPress site. Compared to other solutions we’ve used, the comparison isn’t even close. SearchWP is far and away the best WordPress search plugin we’ve used to date.
And that’s before we even mention all of the extensions available to improve search for more specific use cases. Here’s a list of currently available extensions:
- bbPress integration (handy for forum administrators)
- Boolean Search ( handy to use exclusion-based searches, like NOT )
- Term archive priorities ( for supplemental search engines )
- Term synonyms ( allows you to define term synonyms )
- Polylang & WPML integration ( great for multi-lingual sites )
I highly recommend SearchWP for site owners with large amounts of content.
WP Bacon did an excellent tutorial on how to use SearchWP & Genesis to Create a WordPress Image Search Engine. Give it a read!
Disclaimer: There are affiliate links in this post. HOWEVER, the views are 100% our own and are 100% genuine. We did receive a test copy of SearchWP for free.