An empty glass display case with a small compass inside, pointing toward a distant shelf of products

Every store has a page it hopes shoppers never see, and treats accordingly: the no-results page. That is a mistake. A zero-result page is the most honest surface in the store — the shopper stated exactly what they want and you have none of it — which makes it both a live signal about your catalogue and a conversion opportunity you are almost certainly wasting. This is how we treat zero results: as a KPI to track, an empty state to design with respect, and a weekly loop that turns each failure into a fix.

Zero-result rate is a KPI, not an error log

Start by measuring it. The share of searches that return nothing is one of the most actionable numbers in ecommerce, because unlike most metrics it points straight at a cause. A rising zero-result rate is never mysterious — it is a specific set of queries you can read. Track it as a headline search metric alongside search-to-cart, and break it down by query: the long tail of one-off zero-result queries matters less than the repeated ones, and the repeated ones are a prioritised to-do list. The analytics pipeline that captures queries with their result counts is what makes this a KPI rather than a vague worry.

One nuance keeps the metric honest: separate zero results caused by demand for things you will never stock from zero results caused by fixable gaps. A search for a product category wildly outside your range is a true no-match, not a defect; a search for something you do sell, phrased in words your catalogue lacks, is a bug you can close. Tagging failures this way stops the KPI from nagging you about queries you have rightly decided to ignore.

The honest brand-not-carried state

The most important zero-result case is the shopper searching for a brand you do not carry. The lazy response is to fuzzy-match or semantically retrieve the nearest thing you do stock and present it as if it were the answer. That converts worse than honesty, because the shopper can tell it is not what they asked for and now distrusts the whole store.

From production

We detect the brand-not-carried case and render a dedicated empty state: a plain "we don't carry this brand" with genuine alternatives in the same category, rather than pretending the look-alikes are a match. It reads as honest, and honesty converts — a shopper offered a real substitute for a stated need buys more often than one shown a grid of near-misses labelled as results.

This is why we deliberately keep semantic search from firing on every query: a system that always returns something can never produce this honest state, and "no results, but here are alternatives" is sometimes the most valuable answer your search can give.

Designing the recovery

An honest empty page is not a blank one. The job is to catch a shopper who is one step from leaving and give them a productive next move. A few patterns earn their place:

  • Explain, then redirect. Say clearly that this exact search found nothing, then offer the closest real category so the shopper lands somewhere stocked instead of nowhere.
  • Offer alternatives, labelled as alternatives. Semantic suggestions and same-category products are welcome — as long as they are framed as "you might also consider", never dressed up as exact matches.
  • Catch the spelling case separately. If the query looks like a misspelling, a "did you mean" is a better recovery than an empty page — this is where typo tolerance and synonyms quietly prevent most zero results before the page ever renders.
  • Keep search reachable. The empty state should invite another query, not trap the shopper in a dead end.

The near-miss is not a zero result

Zero results have a close cousin worth handling separately: the near-miss, where a query returns a handful of weakly-relevant products rather than nothing. These are arguably more dangerous than true zero results, because the shopper sees a populated page and concludes you do not stock what they want, when in fact the right product exists and ranking or recall failed to surface it. Treat a very small result set with low relevance scores much like a zero result — consider the honest "we found little for this" framing and the same recovery options — rather than pretending three tangential products are a successful search. The line between "few results" and "no results" is a UX decision, and drawing it well is the difference between a shopper who refines their query and one who leaves.

The weekly review loop

The real value of zero results is realised offline, in a weekly review. Pull the repeated zero-result queries and sort each into one of three buckets, because each points to a different fix:

Why it failedThe fixOwner action
Vocabulary mismatchAdd a synonymMap the term to catalogue vocabulary
MisspellingTypo tolerance / did-you-meanTune per-field or add exception
Genuine catalogue gapSource the product or brandMerchandising decision

Most weeks the majority are synonyms — the cheapest fix — a minority are spelling, and a few are real demand for products you should consider stocking. Over time this loop is what drives the zero-result rate down: each failure becomes a synonym, a tuning change, or a catalogue decision, and the same query does not fail twice.

What not to do

Two anti-patterns are worth naming. The first is padding: filling an empty page with popular products or random inventory to avoid showing "no results". It looks less bare but it insults the shopper, who searched for something specific and got a clearance shelf. The second is hiding the count: pretending a search that matched two irrelevant products "worked" because it technically returned rows. Both trade a moment of honesty for a worse outcome. A zero-result page that says "we don't have this, here's the closest thing, and here's the search box again" respects the shopper and — because it is honest — converts better than the alternatives that pretend.

Key takeaways

  • Track zero-result rate as a headline KPI — it points straight at a cause, and the repeated failing queries are a prioritised to-do list.
  • Render an honest brand-not-carried state with real alternatives rather than passing off look-alikes as matches; honesty converts better.
  • Design the recovery: explain the miss, offer clearly-labelled alternatives, catch spellings with did-you-mean, and keep search reachable.
  • Run a weekly loop that sorts each repeated failure into synonym, spelling or catalogue gap so the same query never fails twice.
  • Do not pad the empty page with random inventory or hide the count — both trade honesty for a worse outcome.
  • Keep always-on semantic search in check so your system can still say "no results" when that is the truthful answer.

Frequently asked questions

What should a no-results page show?
Explain clearly that the exact search found nothing, offer the closest real category and clearly-labelled alternatives, add a "did you mean" if it looks like a misspelling, and keep the search box reachable. Never pad it with random popular products dressed up as results.
What is a good zero-result rate for site search?
There is no universal number — what matters is the trend and the repeated offenders. Track it as a headline metric, focus on queries that fail repeatedly rather than one-off long-tail misses, and drive it down each week by converting failures into synonyms, spelling fixes or catalogue decisions.
How do I handle searches for brands I don't carry?
Detect the case and say so plainly, then offer genuine alternatives in the same category. A honest "we don't carry this brand" with real substitutes converts better than fuzzy-matching or semantically retrieving a look-alike and pretending it is what the shopper asked for.
How do I reduce zero-result searches?
Run a weekly review of repeated zero-result queries and sort each into synonym, spelling or catalogue gap. Most are missing synonyms, the cheapest fix; some are spelling for typo tolerance; a few are genuine demand for products worth stocking.

An empty search that still sells.

Honest empty states and a zero-result review loop are part of the marketplace search we run on sites that already have an audience.

Request early access Search a brand we don't carry →