Faceted navigation SEO in PrestaShop: what to do with thousands of filter URLs

Faceted navigation means the filters in categories: colour, size, price, material. The SEO problem is that every filter combination creates a new URL. In PrestaShop these are URLs with the `?q=` parameter. The plan is simple: check how many Google sees, block unneeded parameters in robots.txt, and turn the filters customers actually search for into real categories.

Author: The TellMyShop team. A guide for PrestaShop store owners: the cause, the manual fix and the same work in a chat conversation.
Last updated: · 6 min read

Where do thousands of filter URLs in PrestaShop come from?

Filters in categories are handled by the faceted search module that comes with PrestaShop. When a customer ticks a filter, the module adds the choice to the category URL, for example:

/12-sofas?q=Colour-Grey
/12-sofas?q=Colour-Grey/Material-Linen
/12-sofas?q=Colour-Grey/Material-Linen/Price-€-1000-2500
/12-sofas?q=Colour-Grey/Material-Linen&order=product.price.asc

To Google each of these lines is a separate URL. A category with five filters of a few values each produces hundreds of combinations, plus sorting and list pages. In a store with several dozen categories this adds up to thousands of URLs showing almost the same products. How the module itself works is described in the PrestaShop documentation on faceted search.

Google described this problem in its article on faceted navigation. It says filters are the most common source of overcrawling reported by site owners. The crawler wastes time on filter combinations and reaches new products later.

Does your store have this problem at all?

Not every store does. Search Console gives the answer, not the number of filters in the admin.

What you seeWhat it meansWhat to do
Small store, a few filters, few ?q= URLs in the pages reportGoogle copes on its ownnothing, a canonical to the category is enough
Many ?q= URLs in the pages report, noted as having a different canonicalGoogle visits filters but doesn't show themconsider blocking the parameter in robots.txt
New products take a long time to reach Googlethe crawler wastes time on filtersblock the filter and sort parameters
Filter URLs show in results instead of the categorythe signals are mixedcheck the canonical and links to filters
People search Google for combinations like “grey linen sofa”there's demand for a filtered pagecreate a category instead of indexing the filter

Also check that the filters work properly at all. Empty results and wrong counts next to values are a separate problem, covered in the post PrestaShop filters not working.

The plan: how to tidy up filters for Google

Start with data and block last. The order matters, because a robots.txt block cuts Google off from everything under that parameter.

  1. Count the filter URLs. In Search Console, in the pages report, check how many URLs contain ?q= and what state they're in. Note a few examples.
  2. Pick the filters people search for. Look at the queries in the performance report and at what customers type into the store search. Colour and material in one category may have demand. A price range almost never does.
  3. Turn those filters into categories. Create a subcategory, for example Linen sofas, assign products to it and write a short description. We cover category descriptions for Google in the post on the PrestaShop category description.
  4. Fill in product features. The filter and the new category only work when products have features filled in, for example Material. You can fill in empty features in batches.
  5. Block the rest in robots.txt. Add rules for the filter and sort parameters. Don't block list pages if they're the only way Google reaches older products.
  6. Check after a few weeks. The number of crawled ?q= URLs should fall. Once the new categories are in Google, watch whether they get visits.

An example of robots.txt rules for the filter and sort parameters:

Disallow: /*?q=
Disallow: /*&q=
Disallow: /*?order=
Disallow: /*&order=

This is an example. Before using it, open your file and check whether similar rules are already there. Also remember that the robots.txt generation button in the admin overwrites manual additions. More about the file itself is in the post on robots.txt in PrestaShop. A cautious approach to such blocks is also described in PPC Land's write-up of Google's documentation.

What not to do with filter URLs

A few ideas come up in stores again and again and usually do harm:

  • Noindex and a robots.txt block at once. The crawler won't enter a blocked page, so it won't see the noindex. Choose one method.
  • Links to filters in the menu and footer. When the menu points to ?q=Colour-Red, Google gets a signal that this is an important page. Link to categories.
  • Blocking a whole category instead of the parameter. A rule written too broadly also shuts the category without filters.
  • Indexing all filters because they have descriptions. A description pasted onto a thousand combinations won't make them good pages. Pick a few and turn them into categories.

How the chat helps with filters in your store

Your chat (Claude or ChatGPT) starts with what Google sees. It opens a category with filters the way a browser does, checks the canonical, meta robots and server response, then reads robots.txt and compares the rules with the filter URLs.

You: Search Console shows loads of ?q= URLs in the Sofas category. What should I do about it?

Your chat: The filter pages have a canonical to the Sofas category, so they don't compete with it in results. But robots.txt has no rule for the filter parameter, so Google visits them. I suggest adding:

Your chat: Before we do that: 14 sofas have the feature Material: Linen. If you want a separate Linen sofas page, I can create a subcategory, disabled for now, and assign these products to it.

You: The subcategory first, then robots.txt.

Your chat: Fine. I'll show a preview of the subcategory with the list of 14 products. I'll change robots.txt once you turn on the Service switch, with a backup of the file.

Card status: waiting for your “yes”
change preview

old version: (no rules for filters)

new version: Disallow: /*?q=

new version: Disallow: /*&q=

Illustration: products, numbers and replies are examples.

The numbers in the example are illustrative.

In TellMyShop Free the chat opens categories with filters the way Google sees them and tells you what to check in Search Console. It saves nothing. In TellMyShop Pro it creates categories, assigns products and fills in features straight after licence activation, always with a preview and your approval. An example request for features is in the use case filling in product features for filters. Changing robots.txt needs the Service switch for 3 hours, and the module backs up the file before saving. The use case fixing a file that blocks Google shows how.

TellMyShop has no access to Search Console. You read the reports yourself or paste example URLs into the chat. Pro plans are on the pricing page.

Questions and answers

Do PrestaShop filters hurt rankings in Google?

Filters themselves don't. Trouble starts when Google visits thousands of filter combinations instead of new products. In a small store with a few filters there's usually nothing to do. With a large catalogue it's worth limiting those URLs.

Is it enough for a filter page to have a canonical to the category?

A canonical helps, because it tells Google which URL to show in results. But it doesn't stop the crawler visiting. When Search Console shows a very large number of URLs with a filter parameter, a canonical alone isn't enough.

Should I block filters in robots.txt or give them noindex?

If you don't want Google visiting filter URLs, block the parameter in robots.txt. Noindex only works when the crawler can reach the page, so the two methods aren't combined on the same URLs.

How do I give a phrase like “leather sofas” its own page?

Create a subcategory or a separate category with the matching products, and write it its own description. Such a page has a fixed URL, title and content, which a page with a filter ticked doesn't.

Can TellMyShop block filter URLs?

TellMyShop Pro prepares a robots.txt rule in a preview and saves it once you turn on the Service switch, with a backup of the file. TellMyShop Free shows how Google sees pages with filters, but changes nothing.

PrestaShop is a registered trademark of PrestaShop SA. Claude is a trademark of Anthropic PBC. ChatGPT and OpenAI are trademarks of OpenAI. TellMyShop is not affiliated with these companies.

The English version launches in January 2027

Join the list and you'll hear first when it opens, with a 72-hour head start on the launch offer.

A few emails before launch. Unsubscribe in one click. Privacy policy

Read next