What Shopify blocks at /search
Shopify's storefront search lives at /search and serves results for any query a customer types into the search bar. The URL pattern is /search?q=customer+query — one URL per unique query, infinite combinations possible. Shopify's default robots.txt blocks the entire /search path, which keeps all query result pages out of search engine crawls. The block is one of six default-rule blocks Shopify ships alongside /admin, /cart, /checkout, /collections/*+*, and /policies/.
Why internal search results don't belong in Google's index
Three reasons. (1) Combinatorial explosion — there are infinite possible search queries, each generating its own URL with overlapping product subsets. (2) Thin content — search results pages typically render a grid of products with no unique editorial content, no canonical heading, no curated narrative. (3) Spam policy — Google explicitly names auto-generated search results pages as a low-value pattern in its spam policies. Indexing internal search results creates a dilution problem (signals split across thousands of thin URLs) and a quality problem (Google can downgrade the entire domain if too many thin pages dominate the index).
Two layers — robots.txt + meta robots
Shopify ships two protections for /search. Layer one: the default robots.txt block (no merchant action needed). Layer two: a Shopify-provided meta-robots noindex snippet for theme.liquid that operators can add when they want belt-and-suspenders coverage. The robots.txt block prevents crawling; the meta robots tag prevents indexing of any URL Google reaches by other means (e.g. an external link to a search URL). Together they cover both crawl-prevention and index-prevention.
Search & Discovery app and search URLs
Shopify's first-party Search & Discovery app modifies how internal search results are ranked and filtered, but it does not change the underlying URL pattern. Search queries still resolve to /search?q={query}, and the default robots.txt block still applies. Synonyms, filters, and product boosts configured in Search & Discovery affect what results customers see — not what URLs are crawlable. The block remains intact regardless of which search app is installed.
The narrow exception — landing pages for search queries
One narrow case justifies bypassing the /search block: a high-intent search query that deserves its own dedicated landing page. 'gifts under $50', 'red wedding dresses', 'organic skincare for sensitive skin' — each is a real customer intent that may earn a curated landing page. The correct approach is not to unblock /search. Build a named collection or page (e.g. /collections/gifts-under-50) with hand-written copy, structured navigation, and canonical product curation. The blocked /search URL pattern stays blocked; the named page handles the high-intent traffic.