If you own a site or online store with lots of content or products, search is vital to ensure that your visitors find what they need quickly. For example, people on eCommerce sites are 2x more likely to purchase something when they search.
It’s not enough just to have a search box on your site; the quality of the search results can make or break your visitors’ experience. If visitors can’t find what they are looking for right away, chances are they will go elsewhere, and you will miss out on that purchase or engagement with your site.
The search experience you get out of the box with a self-hosted WordPress site is pretty basic. It is primarily designed to search over your blog and page archives; you either get a hit with your search or don’t.
We strongly recommend using a dedicated plugin like Jetpack Search for your site or store’s search experience.
Recent improvements to Jetpack Search
In case you are not already familiar with Jetpack Search, it offers:
- Instant search and filtering without reloading the page
- Quick and accurate spelling correction
- Filtered searches (by tags, categories, dates, custom taxonomies, and post types)
- Support for all languages and advanced language analysis for 29 languages
- The ability to scale to sites with millions of posts and/or products without additional load on your servers.
We have been working on Jetpack Search for several years now, and some of the best practices for search have changed. In particular, it used to be common practice to exclude so-called “stopwords” from being indexed. Words such as “the”, “to”, “in”, etc., usually don’t carry much meaning. Searching for “book” or “the book” should usually be expected to return mostly the same results.
Excluding stopwords reduces the size of the data to be stored and speeds up the search. There are some significant drawbacks, though. By excluding stopwords, we could not find the famous quote from Shakespeare’s Hamlet, “to be or not to be”, because it consists entirely of stopwords! In addition, searches for “good” and “not good” return the same results.
Recent advancements in the underlying search engine Lucene have optimized search with stopwords considerably, so we decided to try it. In April, we rebuilt all of our indices that power Jetpack Search with several changes to how we store and query the data; the most significant change was probably no longer excluding stopwords.
We ran an A/B test and found that the number of search queries across all of our sites using Jetpack Search, which returned 0 results, was reduced from 13.5% to 12.5%, a relative decrease of over 7%!
|Zero results||Number of queries||Percent returning zero results|
One of the other industry-standard metrics for measuring the relevancy of search results is measuring click-through rate (CTR). If someone performs a search on your website, and the results don’t seem to be what they are looking for, they won’t click on any of them. If the results are what they are looking for, they will.
Many website viewers only look at the top result, which makes it particularly important to try to return a highly relevant first result. In addition to the stopword change mentioned above, we also improved our multi-lingual analysis. These changes showed significant improvements in click-through rates for several countries (all statistically significant results).
|Country||Number of queries||CTR control||CTR test||% Improvement|
We did discover that our query times increased by about 10-20 milliseconds on average, but given that is barely the blink of an eye, we decided that the increase in relevancy was worth it.
We already have some more ideas on how we can make searches faster without reducing relevancy. Stay tuned for more improvements.
If you are interested in adding Jetpack Search to your store or site to help your visitors find what they need quickly, we now have a specific Jetpack Search plugin available.
Plus, we’re offering new Jetpack Search customers 50% off your first year.