Online store SEO
Filter, sort and search URLs: stop them wasting Google's crawl of your store
18 Oct 2026 ·5 min read · اقرأ بالعربية
Every filter, sort order and search box on a store can produce a new URL: ?sort_by=price, ?filter_color=black, ?orderby=date, ?s=oud. Combine a few filters and one category can turn into hundreds or thousands of URLs that show the same products in a different order. Google crawls them, spends its time on pages that add nothing, and may index thin near-duplicates instead of your real category pages. Action links are worse. Crawlers following WooCommerce's ?add-to-cart= links hit thousands of uncached URLs; Google's crawl team filed a bug over it, and action parameters made up about a quarter of the crawl issues Google reported for 2025.
What Google recommends
- Filters. If you don't need filtered URLs in search results, disallow the filter parameters in robots.txt; Google calls this the preferred option. Return a 404 for filter combinations that have no products.
- Pagination. Give each page (
?page=2,?page=3) its own self-referencing canonical and link the pages with normal<a href>links. Google no longer usesrel="next"andrel="prev", and it doesn't follow pagination that relies on#fragments. - One control per URL pattern. Block it in robots.txt to stop crawling, or add
noindexto keep it out of the index, not both. A URL blocked in robots.txt is never fetched, so itsnoindexis never read.
How to check
- Open a category, apply a filter and a sort, and note the parameters that appear in the address bar.
- Check whether your robots.txt disallows those parameters.
- View the source of a filtered URL and read its canonical and robots meta.
- Open page 2 of a category. Check that its canonical points to page 2 itself and that page 1 links to it with an
<a href>. - Run the free audit. Store Audit by Ahmed Fayed fetches a paginated category, a filter or sort URL and an internal search URL, and reports whether they return 200, whether they're indexable, and whether page 2 is self-canonical and linked.
How to fix
Salla
Salla's default robots.txt blocks no filter or sort parameters. A 2026 Arabic guide recommends keeping filter and sort pages out of the index. I haven't confirmed the parameter names Salla uses, so take them from your own store's address bar before writing rules, and don't paste WooCommerce rules, which match nothing on Salla. I also haven't confirmed where the robots.txt editor sits in the Salla dashboard.
Zid
Zid's default robots.txt already blocks internal search (/products?search=* and /products?q=*). Filter and sort parameter names are unconfirmed; if you find them indexed, add rules in the robots.txt editor (Dashboard › Online Store › SEO › Robots.txt file, Growth and Professional plans).
Shopify
Shopify's default robots.txt blocks sort_by, + tag combinations and multi-filter combinations, but single-filter URLs stay crawlable. The auto-generated /collections/all, /collections/vendors?q= and /collections/types?q= pages, and tag pages such as /collections/shoes/black and /blogs/news/tagged/offers, are indexable and often thin. Add noindex, follow in theme.liquid, and leave out the all condition if /collections/all is your main catalogue page:
{%- if current_tags or collection.handle == 'all' -%}
<meta name="robots" content="noindex, follow">
{%- endif -%}
On pagination, sources disagree: one says Shopify themes canonicalize ?page=2 to page 1, another says each page is self-canonical. Fetch page 2 of a collection and read its canonical. If it points to page 1, fix the theme.
WordPress/WooCommerce
Current WooCommerce adds rel="nofollow" to classic add-to-cart links, and the block-based button avoids the parameter for simple products; older themes may not do either. WordPress has noindexed search results (?s=) since version 5.7, so check that no theme or plugin overrides it. Sorting (?orderby=) and layered-navigation (filter_) parameters are crawlable by default. Add rules like these:
User-agent: *
Disallow: /*?*add-to-cart=
Disallow: /*?*orderby=
Disallow: /*?*filter_
Custom-coded
Return a 404 for empty filter combinations, keep filter state in parameters you can disallow, link paginated pages with <a href>, and give each one a self-referencing canonical.
Common mistakes
- Pointing the canonical of page 2, 3 and onward to page 1.
- Blocking a URL pattern in robots.txt and adding
noindexto it, expecting both to work. - A "load more" button with no
<a href>link to the next page, so products past page one are never discovered. - Copying another platform's robots.txt rules.
Run the free Store Audit by Ahmed Fayed to check your store's filter, sort and pagination URLs. If you'd like help fixing this, contact me on WhatsApp +20 102 702 0701 or at ahmed-fayed.com.
Sources
- Google: Managing faceted navigation (Dec 2025)
- Google Search Central: Pagination and incremental page loading (Dec 2025)
- Google Search Central: Block search indexing with noindex
- Search Engine Journal: Google's crawl team filed bugs against WordPress plugins (2026)
- WooCommerce: wc-template-functions.php
- WordPress core: robots-template.php
- Shopify Help: Editing robots.txt.liquid
- LOGEIX: Shopify technical SEO (2024, older)
- Codersy: Canonical tags for Shopify pagination
- Mayfly: Shopify pagination canonical links (Apr 2026)
- Zid Help: robots.txt
- Ammar Fayyad: Salla indexing problems guide (Apr 2026)
- Shopify Dev: Customize robots.txt
- Live robots.txt checks of one Salla store and one Zid store, 30 September 2026 (stores not named).
More in this series
Back to guides