Avoiding No-Result Searches

Avoiding No-Result Searches

Often, the search box is the first thing a user interacts on an e-commerce website. They generally know what they want to buy—either the brand name or the general product category—and want to see if it’s available. If it is, that’s a new sale. But what happens if an item isn’t available, or when user queries aren’t properly understood?

A bad no-results page can lead to decrease in sales, traffic, and return of customers. So, it’s important to avoid a no-results page by understanding the user better and providing better interpretation of search queries.

In this article, we’ll go over how to avoid a no-results page in the first place, and how we can create a good no-results page when necessary.

Avoid a No-results Page

Often there are ways to adjust search results to reduce the probability of running into a no-results page. In this article, I will demonstrate ways to adjust Sajari results to improve search outcomes for an e-commerce site (however, this is equally true for non e-commerce use cases).

This includes features such as relevance tuning, typo tolerance, and rules to handle low or no-inventory products. However, before you turn to those adjustments, let’s look at reducing no-results probability through better indexing and content strategies.

Indexing

Improving search results begins with indexing your content. When you index your site, Sajari can use categories and subcategories to build a model of your data. For example, you may have a parent-level category for tops that includes T-shirts, button-downs, long sleeves, blouses, and bodysuits. You can also enrich data (e.g., using classification to label content) as it’s indexed to provide better results.

Assuming your data is clean, and you have a well-defined schema, Sajari does a very good job of building search relevance right out of the box. It also offers a number of other features to help improve relevance and results to avoid no-results. This includes:

  • Relevance settings
  • Product inventory settings
  • Synonyms
  • Natural language processing
  • Spelling check

Adjusting Relevance

Which products, brands, or other factors are most important to your business? When users search, think about what you want the search results to be based on: title, category name, details, or perhaps another field altogether? You may also find that certain fields should have minimal impact on search results, e.g., your description field may have too many off-target terms which confuses a search engine.

Sajari allows you to make relevancy adjustments by seamlessly making changes to your collection’s pipeline. Sajari pipelines are basically a set of steps that can be defined in order to either get a search result (the query pipeline) or index data (the record pipeline).

To view and edit the query pipelines, click the Relevance tab in the sidebar. You’ll see a new page with two tabs: Textual Relevance and Ranking Adjustments.

Textual Relevance allows you to choose which fields have higher precedence over others. For example, if a user searches for “bag,” you could have search results from the title field take priority over the category_name fields.

Textual relevance

Ranking Adjustments allow you to be more specific. If you want some brands or categories to appear higher in search results, you can do that here.

For example, you can add a boost in Ranking Adjustments to boost products that have “cotton” in their title.

Adding a boost

Next, click Save on the left sidebar. You’ll be asked to set a version, but keep the existing value and click Save. Sajari has a handy preview pane where you can preview results to see that, in fact, items with cotton in them are appearing higher.

Show Related Products

Customers may use a search term that isn't in your index, thus leading to no-results found. That can be solved with synonyms. Synonyms can help your customers search on terms that mean the same thing or are closely related. Sajari allows us to do that directly from the console. Click the Synonyms tab on the sidebar, then click Create synonym. A pop-up will appear with three fields.

Synonym fields

After configuring the synonyms, if you search, for example, for “bag,” you’ll get results for "backpack” as well.

Bag results

There are also search terms that are built on the same root but have different suffixes. For example, a buyer types in the query “dental” but your website only uses the word “dentist.” Fortunately, you don’t need to create synonyms for all these different variations. Stemming is used by search engines to return relevant results for search queries using a shared word stem, even if the query the user has typed differs from the available results.

Sajari uses a stemming algorithm to ensure that results are still returned for a visitor’s query as the two terms share the same word stem. For example, you can set it up so that when a user searches for shirts or sweaters, they’ll get results for clothing in general.

Better Understanding of Queries

People, particularly millennials, are becoming more accustomed to using natural language in their search queries. Google allows you to type in queries such as “inexpensive jackets” or “men’s red basketball shoes size 14” to get results. This type of query will trip up most site search engines, however.

For a query such as “jacket under $100,” Sajari can actually parse the different terms to deliver relevant results. You can even set up Gmail-like search expressions to give buyers more options for searching your site without getting no-results pages. You can do this via pipelines by adding the string-regexp-extract step under preSteps under the set-fields step, which allows us to extract certain keywords from queries and apply them as filters.


- id: string-regexp-extract
  title: extract price values
  description: match queries mentioning price values and turn them into filters
  params:
    match:
      bind: priceFilter
    matchTemplate:
      constant: price < ${priceValue}
    outText:
      bind: q
    pattern:
      constant: under (\$|£|)(?P\d+)
    text:
      bind: q


The parameter that the string-regexp-extract expects is pattern, which is the pattern that the step should look for in a query. The pattern provided is a regular expression that means a query has under ($ or £)(number); under $100 for example.

Notice that in the regular expression you use ?P<priceValue>. Using priceValue allows us to reference the value entered by the user in other parts of the steps and store it in the match parameter based on the matchTemplate. Text is the text to apply the matching on. Finally, outText indicates where to store the rest of the string after taking out the regex match, which can be to the same query variable q, or to a new variable that you can define here.

But how do you apply the new variable as a filter? You’ll need to add another step called add-filter:


- id: add-filter
  params:
    filter:
      bind: priceFilter
  condition: priceFilter


The add-filter step takes the parameter filter, which indicates where the filter should be applied from. In this case, it should be applied from priceFilter. As for condition, it indicates when this step should be applied. So, if the variable priceFilter is not present, this step won’t be applied.

After adding these steps, click Save in the left sidebar, then click Save in the pop-up.

After adding step results

Using the same method, you can add more and more steps to better serve your users. Over time, you can check Sajari’s analytics to see what users are searching for. This will give you ideas on steps and filters which you can implement to further optimize search results.

Defeat Typos

As many as 20–30 percent of search queries can contain a misspelling. It’s important that you don’t let a user’s typo hinder them from finding what they need—that can drive them away from your website resulting in a lost sale.

You can avoid poor results starting in the search bar itself to improve search experience before a query is submitted. Many search engines include search features for correcting results as users type.

Handling typos can be done in a few ways to help users. You can provide a “Did you mean…?” option that allows the user to correct their mistake and search for what they really want. You can also provide an autocomplete option that avoids executing the query with the typo in the first place.

Typo tolerance comes out-of-the-box in Sajari. When your data is indexed, and as Sajari learns more about your data and users, the search engine’s typo tolerance increases without any additional configuration from your side.

For example, try searching for “womn” when you meant “women,” and you’ll get the same results as though you searched “women” correctly.

Search result for womn

Even if Sajari doesn’t recognize some typos, its post-steps for query pipelines are continuously learning. This means typos will be recognized and corrected over time. As mentioned earlier, the step to fix typos is added by default to pipelines. You can add it among the preSteps:


- id: index-spelling
  title: Spelling correction
  description: Perform spelling correction on parameter `q`, including the spelling suggestions in the search.
  params:
    model:
      constant: default
    phraseLabelWeights:
      constant: query:1.0,title:1.0
    text:
      bind: q


Uncovering Poor Search Results

Sajari’s Analytics offers insights into what your visitors are looking for, and what they’re interested in. On Sajari’s Analytics page you can see the most performed search results and top searches over a period of time.

It also offers a section called Content Issues. Under Content Issues, you’ll be able to see ineffective searches and zero-results searches. These functions allow you to identify the search results providing no value to users or driving no positive actions on your site.

These analytics will help you identify which content needs to be improved for search visibility, what synonyms to create for different words, which relevant content is needed, or what rules you might need to create to improve search relevance.

How to Implement a Good No-Results Page

Despite all the improvements and adjustments you make to your site search sometimes a no-results page is inevitable for a failed search. In that case, you need to make sure your no-results page still provides value for the user.

A good no-results page should encourage the user to keep looking, check out alternatives or tempt them with items of their preferences.

Show “Did You Mean?”

Showing “Did You Mean?” results allows the user to know that they didn’t reach a dead-end. It’s helpful when the user’s query contains a typo, or when there are some equivalent alternatives.

The query you show in “Did You Mean” should either be a correction of their original query or should be something related to it. For example, if the user entered “white sweater”, you can show “Did you mean sweater?” to generalize the results.

You should also make sure that the query has results. The user should not be taken to another no-results page.

Customize The No-Results Message

Instead of just showing a “no results” message, you can utilize the message to help the user get better results. For example, you can show them a message that says “make sure there are no typos in your search query”.

You can also showcase what your search engine can do. For example, if your search engine allows them to search for items with the price filter, you can show them a message saying “try searching for ‘shoes < $30’”.

Another approach that adds flavor to your brand and website is to add some witty messages that don’t leave the user disappointed when landing on a no-results page.

Here’s an example of a simple no-results page from ASOS that encourages the user to not give up and suggests a way to get better search results.

ASOS No-Results Page

Display Suggested Products

The best way to make use of the no-results page and give value to the user is to show them products despite what they searched for.

You can show them a list of products that are related to their search query. For example, when searching for a “sweater” you can show them suggested products that are “jackets” or “clothing” in general.

You can also show them personalized products that they like based on their previous purchase history or demographic. This approach gives buyers more ideas on what they can purchase based on what they like.

An alternative approach is to show them new, best selling, trending or popular products. The products can also be products that you are promoting or would like to generate more results for.

Regardless of the approach, showing products even when there is no result for the query the user entered leads to a better rate of purchases as opposed to showing nothing at all.

Personalizing no-results found results

Personalizing search results for individual users is a great way to provide value even when a customer arrives on a no-results search. Your customers will become loyal to your store, and the more they interact with your site, the more optimized it’ll become for their experience.

Personalizing search results is usually done by tailoring results to a user based on their preferences, for example, by analyzing their purchase history. UX design can also be adjusted based on personal information, like location or gender.

Rather than giving them a plain no-results page, you can provide them with personalized recommendations on things they may have been looking for.

Conclusion

Although a lot of businesses overlook the No Results page, there are steps you can take proactively for search optimization and better site usability. With Sajari, you have a variety of tools and methods that allow you to provide the best results and user-friendly functionality for your users.

Whether that is done by modifying query pipelines strategies, adding methods to better understand users, personalizing results, or showing related products, you’re ultimately creating a better user experience that will drive brand loyalty and sales.

With Sajari, these strategies are easy to implement and configure, allowing you to focus on achieving your business goals and generating more profit.

About the author

Shahad Nasser is a full-stack developer with high expertise in web development. She also loves writing technical articles, as they help her learn, become better, and spread her knowledge in the hopes that it will help someone out there. You can follow her on Twitter.

Try Sajari completely free for 14-days.
Start today