No-results state shows clear message with suggestions, not blank page
Why it matters
A blank results grid after a zero-match search reads as a broken page. Users do not infer your filters are too narrow — they infer this site is down or this directory doesn't have what I need and bounce. A deliberate empty state with a message naming what was searched, an explanation of why zero matched, and clear next-action buttons (clear filters, view all, browse categories) recovers the session and keeps the user inside the funnel instead of back in Google typing a competitor's name.
Severity rationale
High because unhandled zero-result pages read as broken and cause immediate bounces that lose the session entirely.
Remediation
When results.length === 0, render a dedicated empty-state component with a heading, an explanation, and at least two recovery actions (clear filters, browse categories). Edit components/ListingGrid.tsx:
if (results.length === 0) {
return (
<div className="text-center py-12">
<h3>No results found</h3>
<button onClick={onClearFilters}>View all listings</button>
<Link href="/categories">Explore popular categories</Link>
</div>
)
}
DetectionPro
The detection method for this pattern is part of AuditBuffet Pro.
The full method (what to look for, pass and fail conditions, and how results get reported) ships inside the Search & Discovery UX Audit. The pattern definition, severity rationale, and remediation remain openly licensed under CC-BY-4.0.
Taxons
History
- 2026-04-18·v1.0.0·Initial import from directory-search-discovery·automated