Search results indexable
Moderate effortFound on 3% of audited stores.
Add a noindex robots meta tag to all internal search result pages and block the search URL path in robots.txt to prevent Google from crawling and indexing thin, duplicate search results.
What it is
When a visitor searches your store, the results appear on a dynamically generated URL — for example, `/search?q=red+shoes` or `/search-jobs?category=sales&location=texas`. These URLs are "internal search result pages." Unlike your product or category pages, search result pages contain no unique content of their own — they just reflect whatever a user happened to type. Because the query string can be almost anything, your site can generate millions of slightly different URLs, each showing slightly different (or empty) results. Right now, Google can find and index those URLs, meaning they appear — or could appear — in search engine results.
Why it matters
Indexable internal search pages damage your SEO in three concrete ways. First, they dilute your crawl budget: Googlebot wastes time fetching thousands of low-value search URLs instead of your actual product and category pages — pages that actually drive revenue. Second, search result pages are "thin content" in Google's eyes (little original text, no unique value), which can drag down your site's overall quality signal and reduce rankings for your real pages. Third, an unbounded query-string space creates a theoretically infinite number of URLs, which can cause Google to deprioritize your entire domain as a crawl and index target. Blocking these pages costs you nothing in organic traffic (nobody reaches your site by Googling your own search results) and frees up crawl budget and authority for the pages that actually sell.
How to fix it
- Identify all URL patterns your site uses for internal search results (e.g., /search, /search-results, ?q=, ?s=, ?query=) — check your analytics or browser address bar when performing a search.
- Add <meta name="robots" content="noindex,follow"> inside the <head> section of every page rendered by your search template, so Google ignores the page itself but still follows any links on it.
- Open (or create) your robots.txt file and add a Disallow rule for the search path(s) to prevent Googlebot from even fetching those URLs (e.g., Disallow: /search).
- If your search URLs use query parameters (e.g., ?q=) rather than a distinct path, also use Google Search Console → Settings → URL Parameters (legacy) or rely on the noindex tag, since robots.txt Disallow cannot block query-string-only patterns on the same path.
- Submit your updated robots.txt to Google Search Console (Settings → robots.txt) and use the URL Inspection tool to verify that a sample search URL returns 'noindex' and is not indexed.
- Monitor Google Search Console → Pages → 'Excluded by noindex' report over the following weeks to confirm search result URLs are being removed from the index.
Fix it on your platform
Pick your platform for the exact steps.
How to fix search results indexable on Shopify
- In your Shopify Admin, go to Online Store → Themes → click 'Edit code' on your active theme.
- Open the 'templates/search.liquid' (or 'sections/main-search.liquid') file — this is the template rendered for every search results page.
- In 'layout/theme.liquid', find the <head> section and add a conditional block: {% if template == 'search' %}<meta name="robots" content="noindex,follow">{% endif %}. This scopes the noindex tag only to search pages.
- Save the file.
- Go to Online Store → Preferences, scroll to the 'Robots.txt' section and click 'Edit robots.txt'. Add a new rule: Disallow: /search (note: Shopify's robots.txt is editable via a robots.txt.liquid template — go to Edit Code, open robots.txt.liquid, and add the Disallow line inside the existing ruleset).
- Verify by typing your-store.com/search?q=test in Google Search Console's URL Inspection tool and confirming the page is 'noindex'.
How to fix search results indexable on WooCommerce
- Install the free 'Yoast SEO' or 'Rank Math SEO' plugin if not already installed (Plugins → Add New).
- In Yoast SEO: go to SEO → Search Appearance → Archives tab → find 'Search Pages' and toggle 'Show search pages in search results for search engines?' to OFF. Yoast will automatically inject the noindex tag on all /?s= pages.
- In Rank Math: go to Rank Math → Titles & Meta → Local SEO / Search → set 'Robots Meta' to 'noindex'.
- For robots.txt: go to SEO → Tools → File Editor (Yoast) or Rank Math → General Settings → Edit robots.txt, and add: Disallow: /?s=
- Alternatively, if you prefer manual control, edit your active child theme's header.php and add: <?php if ( is_search() ) { echo '<meta name="robots" content="noindex,follow">'; } ?> inside the <head> tag.
- Verify with Google Search Console URL Inspection on a sample /?s= URL.
How to fix search results indexable on BigCommerce
- In BigCommerce Admin, go to Storefront → My Themes → click 'Edit Theme Files' on your active theme (or use the Stencil CLI locally).
- Open 'templates/pages/search.html' — this is the template for all search result pages.
- Inside the <head> block (or in the parent layout file 'templates/layout/base.html' with a conditional), add: {{#if page_type '===' 'searchresults'}}<meta name="robots" content="noindex,follow">{{/if}}
- Save and apply the theme.
- For robots.txt: go to Advanced Settings → robots.txt and add Disallow: /search.php under the [User-agent: *] section.
- Confirm with Google Search Console URL Inspection on a sample /search.php?search_query= URL.
How to fix search results indexable on Wix
- Wix does not expose a direct search-template editor, but you can control indexing via the Wix SEO settings.
- In the Wix Editor, click on your Search Results page in the Pages & Menu panel.
- Open Page Settings → SEO (Basic) tab → uncheck 'Show this page in search results' (or look for the 'Let search engines index this page' toggle and turn it OFF). Wix will inject the noindex tag automatically.
- For robots.txt: in the Wix Editor go to Settings → SEO → robots.txt and add Disallow: /search under [User-agent: *], then save.
- Verify by using the Wix SEO Assistant or Google Search Console URL Inspection on a sample search URL (typically structured as /search/results?q=).
How to fix search results indexable on Squarespace
- In your Squarespace Admin, go to Pages → find your Search Page (if it exists as a standalone page) → click the gear icon → SEO tab → check 'Hide Page from Search Engines'. This adds noindex to that page.
- If your search results appear at a path like /search?q=, inject the noindex tag site-wide for search pages by going to Settings → Advanced → Code Injection → paste the following into the 'Page Header' field with a URL-condition check: <script>if(window.location.pathname.startsWith('/search')){document.head.insertAdjacentHTML('beforeend','<meta name="robots" content="noindex,follow">')}</script>
- For robots.txt: Squarespace does not allow direct robots.txt editing. Instead, rely on the noindex tag approach above — Googlebot will honor noindex even without a robots.txt Disallow.
- Verify with Google Search Console URL Inspection.
How to fix search results indexable on Webflow
- In the Webflow Designer, select your Search Results page in the Pages panel (left sidebar).
- Click the gear/settings icon for that page → scroll to 'SEO Settings' → check the box 'Exclude from search indexing (noindex)'. Webflow will inject <meta name="robots" content="noindex"> on that page.
- If search results are rendered on a Collection Template page (e.g., a CMS-driven search), open that template's page settings and apply the same noindex checkbox.
- For robots.txt: go to Project Settings → SEO → scroll to the robots.txt editor → add: Disallow: /search (adjust the path to match your actual search URL path).
- Publish your site and verify with Google Search Console URL Inspection.
How to fix search results indexable on Adobe Commerce (Magento)
- Log in to your Magento Admin. Go to Content → Design → Configuration → select your store view → expand 'HTML Head'.
- This approach applies site-wide, so instead edit the search results layout XML file: in your active theme, create or edit app/design/frontend/<Vendor>/<Theme>/Magento_CatalogSearch/layout/catalogsearch_result_index.xml
- Add the following block to inject the noindex meta tag on all search result pages (see code snippet below).
- For robots.txt: go to Content → Design → Configuration → select your store view → expand 'Search Engine Robots' → in the 'Edit Custom Instruction of robots.txt File' textarea, add: Disallow: /catalogsearch/ — then save.
- Flush the Magento cache (System → Cache Management → Flush Magento Cache).
- Verify with Google Search Console URL Inspection on a sample /catalogsearch/result/?q= URL.
How to fix search results indexable on Magento Open Source
- Follow the same steps as Adobe Commerce (Magento) above — the admin path and layout XML approach are identical for Magento Open Source.
- Edit app/design/frontend/<Vendor>/<Theme>/Magento_CatalogSearch/layout/catalogsearch_result_index.xml to inject the noindex meta tag.
- Add Disallow: /catalogsearch/ to your robots.txt via Content → Design → Configuration → Search Engine Robots.
- Flush cache via System → Cache Management.
How to fix search results indexable on PrestaShop
- In your PrestaShop back office, go to Shop Parameters → Traffic & SEO → SEO & URLs.
- Find the 'search' page entry and click Edit — add noindex,follow to the robots meta field if your PrestaShop version supports it, or install a dedicated SEO module (e.g., 'SEO Expert' or 'Yoast SEO for PrestaShop') that provides per-template robots tag control.
- In your theme, open themes/<your-theme>/templates/catalog/search.tpl and add <meta name="robots" content="noindex,follow"> inside the <head> block (or conditionally in the parent _partials/head.tpl).
- For robots.txt: go to Shop Parameters → Traffic & SEO → scroll to the robots.txt section → add Disallow: /search and Disallow: /?s= as relevant, then regenerate the file.
- Verify with Google Search Console URL Inspection.
How to fix search results indexable on Headless / Custom (I build in code)
- In your search results page component or route handler, conditionally render <meta name="robots" content="noindex,follow"> in the document <head> whenever the current route matches your search path.
- In Next.js (App Router): in your app/search/page.tsx, export a generateMetadata function returning { robots: { index: false, follow: true } }.
- In Next.js (Pages Router): use next/head to inject <meta name="robots" content="noindex,follow"> inside your search page component.
- In Nuxt.js: use useHead({ meta: [{ name: 'robots', content: 'noindex,follow' }] }) inside your search page's setup() or definePageMeta.
- For robots.txt: add Disallow: /search (or your search path) to your static public/robots.txt file, or generate it dynamically from your server.
- Deploy and verify with Google Search Console URL Inspection.
How to fix search results indexable on Shopify Plus
- Follow the same steps as Shopify above — Shopify Plus gives you identical theme-file access plus the robots.txt.liquid file is always editable.
- If you manage multiple storefronts, apply the change to each theme individually.
- Use the Shopify Plus Script Editor or custom app if you need to programmatically suppress noindex on specific search contexts (e.g. staff previews).
How to fix search results indexable on WordPress.org
- Install Yoast SEO or Rank Math if not already active.
- In Yoast SEO: SEO → Search Appearance → Archives → Search Pages → toggle noindex ON.
- In Rank Math: Rank Math → Titles & Meta → Search Results → enable 'No Index'.
- Edit your robots.txt (accessible via Yoast SEO → Tools → File Editor or directly on the server at the WordPress root) and add: Disallow: /?s=
- Confirm by visiting /?s=anyterm and checking View Source for <meta name="robots" content="noindex">
How to fix search results indexable on Next.js (Headless)
- Identify your search results route. In the App Router it is typically `app/search/page.tsx` (or `app/search/[query]/page.tsx`); in the Pages Router it is `pages/search.tsx` (or `pages/search/[query].tsx`).
- App Router: Export a `generateMetadata` function from the search page that returns `robots: { index: false, follow: false }`. This renders `<meta name='robots' content='noindex,nofollow'>` automatically. Pages Router: Use `next/head` to inject `<meta name='robots' content='noindex,nofollow'>` inside the page component.
- Create or edit `public/robots.txt` (the static file served at `/robots.txt`) and add a `Disallow: /search` rule under the `User-agent: *` block to stop crawlers from even requesting the URL.
- If search is served from multiple paths (e.g. `/search`, `/catalogsearch/result`, `/s`), add a `Disallow` line for each path and mirror a `noindex` tag in every corresponding page file.
- Deploy and verify with Google Search Console's URL Inspection tool that the page returns `noindex` in the HTTP response and that Googlebot obeys the `robots.txt` disallow rule.
Does your site have this issue?
Run a free SEOLZ scan to find search results indexable — and every other issue — across your whole site in minutes.
Scan my site freeFrequently asked questions
What is Search results indexable?
When a visitor searches your store, the results appear on a dynamically generated URL — for example, `/search?q=red+shoes` or `/search-jobs?category=sales&location=texas`. These URLs are "internal search result pages." Unlike your product or category pages, search result pages contain no unique content of their own — they just reflect whatever a user happened to type. Because the query string can be almost anything, your site can generate millions of slightly different URLs, each showing slightly different (or empty) results. Right now, Google can find and index those URLs, meaning they appear — or could appear — in search engine results.
Why does search results indexable matter?
Indexable internal search pages damage your SEO in three concrete ways. First, they dilute your crawl budget: Googlebot wastes time fetching thousands of low-value search URLs instead of your actual product and category pages — pages that actually drive revenue. Second, search result pages are "thin content" in Google's eyes (little original text, no unique value), which can drag down your site's overall quality signal and reduce rankings for your real pages. Third, an unbounded query-string space creates a theoretically infinite number of URLs, which can cause Google to deprioritize your entire domain as a crawl and index target. Blocking these pages costs you nothing in organic traffic (nobody reaches your site by Googling your own search results) and frees up crawl budget and authority for the pages that actually sell.
How do I fix search results indexable?
Add a noindex robots meta tag to all internal search result pages and block the search URL path in robots.txt to prevent Google from crawling and indexing thin, duplicate search results.
Authoritative references
- SEO Starter Guide — Google Search Central
- Consolidate duplicate URLs (canonical) — Google Search Central
- Robots meta tag & noindex — Google Search Central