When a shopper types "self-watering planter" into your houseplant pot store and gets nothing, two things are at stake. The shopper is stranded on an empty page, and the search URL they landed on may become one more address a crawler has to deal with. A good zero-results setup keeps the visitor moving, keeps search URLs out of the index, and turns the list of failed queries into a monthly work list for the catalogue. If you run a marketplace or shop for houseplant pots, the sections here set out the decisions in the order you will meet them.
Failed queries are a catalogue to-do list
Every zero-result query is a sentence in the shopper's own words. Read the list as feedback about how your catalogue is named, stocked and spelled, not as an error log.
| Bucket | What it means | Owner |
|---|---|---|
| Missing product | Demand exists, the range does not | Buying team |
| Name mismatch | The shopper's word differs from listing titles | Catalogue team |
| Misspelling | The engine cannot cope with the typo | Search developer |
| Out of stock | The product exists but is hidden from results | Merchandiser |
| Noise | Bots, tests, accidental input | Analyst |
Sorting the list into these buckets before anybody debates solutions saves time, because each bucket has a different fix and a different person responsible.
Where the data comes from
Your own search log carries the query text, the result count and the filters in use. An analytics tool can report the same terms, and the GA4 side of that is covered in the GA4 site search report guide. The log is the better source for zero-result analysis because it records the number of results the engine returned.
Normalising before counting
Lowercase the queries, trim whitespace, merge obvious spelling variants and strip punctuation. "Self watering planter", "self-watering planter" and "selfwatering planter" are one need. Count searches and, if you can, distinct visitors. A term searched by twenty different people deserves attention before a term searched twenty times by one visitor.
| Column | Purpose |
|---|---|
| Normalised query | The need in one spelling |
| Searches | Volume in the chosen month |
| Distinct visitors | Breadth of the need |
| Bucket | Missing, mismatch, typo, stock, noise |
| Action | Add, map, fix, ignore |
| Owner | Named person |
| Status | Open, in progress, closed |
What the empty results page should do for the visitor
The page has to say plainly that nothing matched, repeat what was searched, and offer a next step. For a houseplant pot search that could mean a spelling suggestion, links to nearby categories and a short list of popular pots.
A spelling suggestion
If the query looks like a misspelling, offer "Did you mean: self-watering planter?". Whether your engine can detect this depends on the software; the documentation has no statement on any specific search product.
Nearby categories
Link to the categories that best match the words in the query: "Planters with drainage", "Ceramic pots", "Indoor plant stands". Descriptive link text tells the visitor where each link leads.
Popular items and a request path
A short, relevant selection keeps visitors in the shop. A back-in-stock or product request form turns a failed query into recorded demand. If the form collects an email address, keep the data handling to what the request needs.
Writing the page
Example scenario: the search was "self-watering planter" and returned nothing. Heading: "No results for self-watering planter". One sentence: "Check the spelling or try one of these categories." Then two category links, four pots and a link to a request form. The tone does not blame the shopper and the page ends in actions. When you print the visitor's query on the page, escape it for HTML, otherwise the search box becomes an injection route.
Filters that return nothing versus queries that return nothing
Zero results arrive by two routes. A typed query may match no product, or a shopper may stack filters on a category until nothing is left. On a houseplant pot category, "diameter 40 cm, colour terracotta, with saucer, self-watering" may leave an empty grid even though each filter alone has products.
| Source | Example | Remedy |
|---|---|---|
| Typed query | "self-watering planter" matches no title | Synonym, listing title, category decision |
| Filter stack | Four filters leave zero pots | Show counts next to filter values, dim empty options |
| Page number past the end | A page beyond the last is requested | Redirect to the last valid page |
Practical suggestion: print the result count beside each filter value and grey out the values that would give zero, so shoppers do not choose their way into an empty grid. Filter combinations also feed the URL space the 2008 post describes: it names filtering by category, price, colour, brand or style as a way a site can produce a huge number of URL combinations.
A synonym table
A synonym table closes the gap between what shoppers type and what listings say. Keep it as a maintained list that your search engine loads.
| Shopper's word | Listing wording | Note |
|---|---|---|
| self-watering planter | reservoir pot, wicking planter | Map to the reservoir category |
| plant saucer | drip tray | Check that both words are indexed |
| hanging planter | macrame holder, wall pot | Review each mapping separately |
Record the date and reason beside each mapping. A mapping that fixes one query can damage another, for instance if a broad word pulls unrelated pots into the results.
Two languages
If the shop searches in more than one language, run the report per language and keep separate synonym tables. A fix in one language does not carry over to the other, and automatic cross-language mapping can create wrong matches.
Out-of-stock pots in search results
When a pot sells out and the engine hides unavailable items, the zero-result count rises for reasons unrelated to demand or naming. Decide on a policy and read the report accordingly.
Show or hide
Showing a sold-out pot, clearly marked, tells the shopper it exists and lets you offer a back-in-stock notice. Hiding keeps result lists clean but turns those searches into zero-result queries. Either choice works; pick one and record it so that analysts know why the numbers move.
Discontinued lines
If a line is gone for good, the empty results page for its name should point to the nearest alternatives. How you handle the retired product page itself is a separate decision.
Page details that are easy to miss
Escaping the visitor's query
The query appears on the page in the heading and perhaps in the search box. Encode it for the context where it is written, so that characters typed into the box are shown as text and not run as markup.
Accessibility
If the result count changes without a full page load, expose the new status to assistive technology through a status region. Make suggestion links reachable with the keyboard, and keep the heading structure orderly: one main heading with the query, then headings for suggestions and popular pots.
Privacy of the log
Search boxes receive whatever shoppers type, including personal details by mistake. Keep the log for a limited time, report on queries and not on people, and remove entries that contain contact details from exports.
Measuring the effect
Track the zero-result rate monthly, the number of repeated zero-result queries, exits from the empty page and clicks on suggested categories.
| Measure | How to read it |
|---|---|
| Zero-result rate | Look at the trend; one month says little |
| Repeated zero-result queries | A falling count suggests synonyms and catalogue work are landing |
| Exits from the empty page | A falling count suggests the suggestions help |
| Clicks to suggested categories | Shows whether the links match what shoppers want |
Seasons and campaigns move these figures, so compare equivalent periods and tie the reading to the changes you made. The documentation has no statement on the effect of this work on search rankings, and the measurable result is shopper behaviour on your own site.
Cleaning out noise
Some entries come from bots or test scripts. Remove a run of random queries from one source before counting. Counting them hides real needs behind meaningless volume.
Status code and indexing for empty results
An empty results page can return 200 with a robots meta tag of noindex, or it can return 404. The robots meta tag documentation covers noindex and has no statement about which status code an empty search page should use. Practical suggestion: if the page offers useful suggestions to the visitor, use 200 with noindex, and apply the same rule to every search results URL on the site.
How noindex works
According to Google's robots meta tag page, noindex means do not show this page, media or resource in search results. It also says the settings can be read and followed only if crawlers are allowed to access the page. If a page is blocked in robots.txt, any information about indexing or serving rules will not be found and will therefore be ignored.
| Control | Effect | Catch |
|---|---|---|
| noindex in a robots meta tag | Asks that the page not be shown in results | The page must be crawlable |
| robots.txt disallow | Restricts crawling | A noindex on a blocked page is not read |
| X-Robots-Tag header | Delivers the same rules in the HTTP response | Recommended for files where a meta tag cannot be placed |
The page adds that robots meta tags and X-Robots-Tag headers are discovered when a URL is crawled. A new noindex therefore takes effect after the URL is next crawled. The documentation has no statement on how long that takes.
Infinite spaces: what the 2008 post says
Google Search Central published "To infinity and beyond? No!" on 5 August 2008. It describes an infinite space as a set of links that offers little or no new content. Crawling it can waste bandwidth, and it can keep Googlebot from fully indexing the real content of a site. A calendar with a "Next Month" link is the classic case. The post also points to sites that let visitors filter results by category, price, colour, brand or style, which produces a large number of URL combinations.
For fixes, the post suggests blocking categories of dynamically generated links with robots.txt and using the nofollow attribute on problem links, then checking that Googlebot can still reach all your content. The post is old, so read it for the concept and use the current robots meta tag documentation for indexing control. The two do not point the same way for noindex: a disallowed URL cannot show its noindex tag.
Why a search box produces an unlimited number of URLs
Each query a visitor types makes a new URL. If your pages link to those URLs, or other sites link to them, a crawler meets an unlimited supply. For a houseplant pot store, "ceramic pot", "pot ceramic", "ceramic plant pot large" and "large ceramic pot" are four URLs with overlapping results.
Filters and sorting
Filter and sort parameters multiply the problem. One category with colour, size, material and sort options can create more combinations than the shop has products. The same noindex rule can cover them, but decide separately which filter pages deserve their own clean URLs.
Options for search URLs, with their costs
| Option | Aim | Cost |
|---|---|---|
| No internal links to search result URLs | Fewer discovered URLs | External links can still expose them |
| noindex | Keep pages out of results | Pages must stay crawlable |
| robots.txt disallow | Reduce crawling | Noindex is not read; the URL may still be known |
| nofollow on problem links | Discourage link following | Named in the 2008 post |
| Fewer parameter combinations | Smaller URL space | Can limit shoppers' options |
Practical suggestion: leave search result pages crawlable, mark them noindex, and avoid linking to them from templates. Where a query reveals a real category, such as "self-watering planters", create a category page with a clean address and descriptive text rather than letting the search URL stand in for it.
Example scenario: a houseplant pot shop
Example scenario: a shop runs its monthly report and sees that "self-watering planter" returns nothing, although the catalogue holds pots with a water reservoir under the names "reservoir pot" and "wicking planter". The words differ.
The shop opens three tasks. The catalogue team maps "self-watering planter" to the reservoir category as a synonym. The content team writes a short intro for that category explaining how the pots differ. The developer adds noindex to search result pages and links the empty results page to the planters and ceramic pots categories. No ranking or sales gain is promised. The check next month is whether the zero-result count for this query has dropped.
A monthly zero-result work list
Practical suggestion: run the same steps each month.
- Export last month's zero-result queries and normalise them.
- Rank them by distinct visitors, then by searches.
- Assign a bucket to each of the top queries.
- For missing products, send a sourcing request.
- For name mismatches, add a synonym or fix the listing title.
- For misspellings, add tolerance or a suggestion.
- Check which of last month's tasks closed.
- Record the zero-result rate for the month.
| Role | Monthly job |
|---|---|
| Catalogue manager | Missing products and listing titles |
| Content owner | Category intros and synonym proposals |
| Developer | Typo tolerance, noindex, filter limits |
| Analyst | Normalisation and rate tracking |
Reading the rate
The share of searches with no result moves with the season and with campaigns, so a single month proves little. Compare the same weeks across periods and tie conclusions to the changes you shipped. The documentation has no statement on any effect of this work on rankings; what you can measure is shopper behaviour on your own site, such as exits from the empty page and clicks on suggested categories.
The following month
Example scenario, continued: the shop pulls the report again. "Self-watering planter" now returns the reservoir category, while "self-watering planter with saucer" appears as a new zero-result query. The catalogue team checks whether any listing mentions an attached saucer. If one does, the title gets the word; if none does, the buying team receives a question about range. New queries will appear every month, so the aim is not an empty list. The aim is that the same query does not return twice without an answer.
What to hand the buying team
Buyers need more than a list of words. Give them the query, the number of distinct visitors, the nearest existing category and the last date the query appeared. Add any filter values that accompanied it, such as size or material, because a repeated query with the same filters describes a concrete product. A short monthly note with the top five missing products is easier to act on than a spreadsheet of five hundred rows.
Keeping the clean category pages honest
When a repeated query becomes a category page with its own address, give it real content: a short introduction, the pots that belong in it and links to neighbouring categories. A page that exists only to catch a query, with no products or no explanation, repeats the thin pages the report was meant to help you avoid. If the demand is real but the range is not, hold the page back until stock exists.
Decision rule: what to do with a zero-result query
- A misspelling goes to the search developer for tolerance or a suggestion.
- A shopper word that differs from a listing title goes to the catalogue team for a synonym or a title fix.
- A repeated query with no matching product goes to the buying team.
- An out-of-stock product needs a deliberate choice between showing and hiding it.
- Noise leaves the report.
- In every case the empty page offers a next step and the search URL carries noindex.
Sorting one week of failed queries
Practical suggestion: take the week's failed queries and give each one a single label from the decision rule, then count the labels. The count tells you where the effort goes.
| Label | Typical sign | Who acts |
|---|---|---|
| Spelling | Close to a real product word | Search configuration |
| Synonym | A shopper word the titles never use | Catalogue editor |
| Missing product | Repeats across weeks with no match | Buying team |
| Out of stock | Product exists but is hidden from results | Search owner and catalogue |
| Noise | Random strings, pasted text | Remove from the report |
If most labels land in one row, fix that row first. A report dominated by "synonym" points at titles, while one dominated by "missing product" belongs on the buying team's table.
Checklist
- Zero-result queries are exported monthly and normalised.
- Each top query has a bucket, an action and an owner.
- The empty page offers a suggestion, nearby categories and a request path.
- Search result URLs carry noindex and are not blocked by robots.txt.
- Templates do not link to arbitrary search URLs.
- Filter and sort combinations are limited.
- Real category needs get a clean category page.
- Visitor input is escaped on the results page.
Mistakes to avoid
Blocking and noindexing the same URL
Disallowing a URL in robots.txt hides its noindex tag from the crawler. Pick the control that matches the goal.
Treating a 2008 post as current policy
The post explains the concept. For indexing control, rely on the current robots meta tag documentation.
An empty page with no way forward
A page that says only "no results" ends the visit. Add suggestions, categories and a request path.
A page for every failed query
Creating a category page for every query rebuilds the infinite space by hand. Create one only for a repeated query that describes a real category.
Redirecting every failed query silently
Sending the visitor to the home page without a word hides what happened. Say that nothing matched, then show alternatives.
Letting the report stay in one team
The report describes the catalogue as much as the search engine. Read it with buyers and catalogue editors.
Frequently Asked Questions
Should zero-result search pages be indexed?
Practical suggestion: no. Mark search result pages with noindex. Google's robots meta tag page defines noindex as do not show this page in search results.
Can I add noindex and block the same URL in robots.txt?
No. Google's page says a page blocked in robots.txt has its indexing rules ignored, because they will not be found. Allow crawling so the noindex tag can be read.
Should an empty results page return 200 or 404?
The robots meta tag documentation has no statement about status codes for empty search pages. Practical suggestion: use 200 with noindex if the page helps the visitor, and apply the same rule everywhere.
Is the 2008 infinite-space post still valid?
It is dated 5 August 2008 and explains the concept of infinite spaces, with robots.txt and nofollow as its fixes. Use the current robots meta tag documentation for indexing control.
Which team should own the zero-result report?
Practical suggestion: a named owner such as the catalogue manager opens the report and assigns tasks to buying, content and development.
Does fixing zero-result queries improve rankings?
The documentation has no statement on that. The measurable effect is on your own site, such as fewer exits from empty pages.
Conclusion
A houseplant pot store gets two benefits from handling zero-result searches well. Visitors who meet an empty page get suggestions, categories and a request path, and search URLs stay crawlable but marked noindex, so the shop does not hand crawlers an unlimited URL space. The monthly list of failed queries then feeds the catalogue with missing products, synonyms and spelling fixes. For the wider picture of search URLs, parameters and tracking codes, see the URL parameters, tracking codes and internal search pages guide.
The Google pages behind these decisions are To infinity and beyond? No! (Opens in a new tab) and Robots meta tag and X-Robots-Tag specifications (Opens in a new tab). If you want category intros and empty-page copy written together, take a look at our content writing service.
Post a comment
Please log in to leave a comment. Login