Internal search results pages are the pages a website’s own search box produces, such as /?s=waterproof+jacket on WordPress or /search?q=oak+table on a shop. Each search creates a new URL, and because visitors can type anything, a site can generate an unlimited number of them.
How internal search results pages work
When someone types into your site search, the platform runs the query against your content and builds a results page on the fly. The address usually carries the search term as a parameter. Nothing stops that URL from being linked, shared or crawled like any other page, which is where the trouble starts.
Search engines find these URLs through links: ones your theme adds, such as “popular searches” widgets and tag clouds, and ones other sites post, sometimes deliberately. Once found, each one looks like a separate page with thin, shifting content that duplicates your category and product pages.
Google has long advised site owners to keep auto-generated search results pages out of its index, because a results page that points to other results pages helps nobody. There are two main tools for this, and they behave differently. A robots.txt rule stops crawlers requesting the URLs at all. A noindex tag lets them fetch the page but tells them not to show it in results.
Why it matters
The first risk is index bloat. A shop with 800 products can end up with thousands of indexed search pages, each a near-copy of a category, diluting the signals that should go to the pages you want to rank and wasting crawling on URLs that will never earn a sale.
The second is spam. Spammers deliberately link to search URLs on legitimate sites with queries containing a phone number, a betting site name or something worse, so that the site’s own template displays “Search results for” followed by their message. If those pages get indexed, a respectable UK business can find its domain showing for gambling or counterfeit terms in Google. On small WordPress sites this often goes unnoticed until someone searches the brand name and sees the results.
There is a positive side too. Your search logs tell you exactly what visitors are looking for in their own words. If many people search your site for “gift vouchers” and you have no voucher page, that is a gap worth filling with a proper page built to rank.
Common mistakes
- Blocking in robots.txt and adding noindex together. A blocked page cannot be fetched, so its noindex is never seen and URLs already in the index can linger.
- Linking to search URLs from navigation. “Popular searches” footers and tag clouds that point at search results invite crawling.
- Using search results as category pages. If a search page gets traffic, build a real category or landing page for that topic instead.
- Search URLs in the XML sitemap. A sitemap should list only pages you want indexed, and search results are never among them.
How to act on it
Search Google for site:yourdomain.co.uk inurl:s= or the equivalent parameter your platform uses, and check the Page indexing report in Search Console for search URLs. If any are indexed, add a noindex directive to the search results template and remove any internal links pointing at search pages. Once they have dropped out, a robots.txt disallow for the search path stops crawlers spending time there.
Check your platform’s defaults first: Shopify’s standard robots.txt already blocks its search path, and the main WordPress SEO plugins can noindex search pages, but custom builds rarely handle it. Then export your site search terms from GA4 or your platform’s reports every few months and look for patterns worth turning into real pages. Cleaning up index bloat of this kind is a routine part of the technical SEO work I carry out.
