Shopify's default search matches text in product titles, descriptions and tags. It has limited typo tolerance, no synonym understanding, no semantic matching, and no awareness of pages, policies or orders. So descriptive, misspelled and question-shaped queries return nothing for products the store genuinely stocks.
| Failure | Example query | Why it fails |
|---|---|---|
| Misspelling | sweathshirt | No or shallow fuzzy matching |
| Synonym | trainers → sneakers | No configured equivalence |
| Description | something warm for winter | No semantic matching |
| Constraint | black dress under 3000 | Price is not parsed from the query |
| Non-product | where is my order | Only products are indexed |
Because default matching leans on titles, descriptions and tags, thin product copy directly causes retrieval failures. Stores that fix search without fixing product data typically recover half the available improvement and stall.
The practical sequence is: read the zero-result log, fix the catalogue gaps it exposes, then upgrade matching.
Typo tolerance and synonyms remove the largest share of empty results for the least effort. Semantic matching handles the descriptive tail. Intent routing handles the non-product queries. Merchandising then tunes the head terms that drive the revenue.