Faceted navigation, as well as filtering and sorting, are present on most eCommerce website category pages to help users explore and narrow down to the products they are most interested in. They present both organic search opportunities and issues, so here we'll cover what those issues are, and how to avoid them - while also maximizing the ROI for your eComm store.
Here's what we're covering today:
Sort order helps users navigate within a set of products by ordering them in different ways - “price low to high” vs. “price high to low”, or "featured" are all classic examples.
Filters & Facets help narrow down options within a set of products. If you are viewing sports gear, and you filter to "basketball", you'll only see basketball gear; gear from other sports (football, baseball, etc.) will disappear.
Learn more about the difference between facets and filtering, but in general, most eCommerce sites utilize all three variations - and for SEO purposes, they can be treated in much the same way.
Faceting, filtering, and sorting are typically implemented as URL parameters, but they're possible to implement via the core URL - or purely via JavaScript/Ajax too (depending on your platform.) Learn more about the various parts of URLs.
Examples of new URLs - actual unique URLs! - with facets, filters, and sort order implemented with parameters:
When these features are implemented as core URLs, they may look like this:
Note that this structure may also be a category page; as an outside user you can't really tell without digging "under the hood."
A pure JavaScript implementation won't change the URL at all.
Like pretty much everything else in SEO, the short answer is: it depends! They can get tricky primarily in terms of the following.
How might filtered URL variations compete with each other, category pages, or individual product pages? This issue is a result of the elements getting set in the URL in the order in which the user clicks them during their session; when they are added in a different order, they create duplicate content variations.
Let’s use the table example: let’s say you have a filter for table shape (round vs. square vs. rectangle), and style (farmhouse vs. traditional vs. modern).
Is tablesbrand.com/dining-tables?shape=square&style=modern fundamentally any different from the URL tablesbrand.com/dining-tables?style=modern&shape=square? How about tablesbrand.com/dining-tables/modern?shape=square?
Nope. Same user intention, same product results. Enter: duplication issues!
What if there aren’t enough products present within a set of filters to make it a legitimately useful page? Or what if you are ran out of stock, or decided to remove a product, and you don't know if you need another solution or come up with strategies to 404 pages?
You wouldn't want a category page with only 1 or 2 products in it; similarly, you don't want to waste a search engine's time crawling & indexing a URL variation with this little inventory.
This is a result of the thin & duplicate content issue; if/when you have a bunch of low-value pages on your website, there's less link equity to go around for the pages that do matter.
Think of this as a bank account. Money comes into the bank (let's call this your homepage), and it's distributed to each page, starting with the ones linked in your global navigation and finally reaching all the individual blog posts and products that you've linked to on, say, page 37 of Home Goods products.
Each page will get less money the more pages you have. If those are high-value pages driving revenue - that's awesome! If it's a low-value page, that's taking money away from the high-value pages (which could be providing *more* value if they didn't have to share so much.)
Don't overthink this analogy and remove a bunch of pages from your website arbitrarily! Rather, be thoughtful about each page you make available for search engines to provide strong, unique value for your customers & search engines.
(Best tools for duplicate/thin content AND link equity issues: retiring non-valuable pages, robots.txt disallow, meta robots noindex, canonical tags, and the Google Search Console (GSC) Remove URL tool.)
Infinite URL variation combinations (filtered and sorted and faceted pages have SO MANY different possible combinations!) can waste a lot of search engine bot crawling time; if you have a large website where crawl budget is a concern, faceted navigation can easily exacerbate that issue.
However, implemented correctly, facets & filters can dynamically create many useful landing pages for SEO.
(Best - only! - tools for Crawl Budget issues: disallowing crawling in the robots.txt file & nofollow internal links.)
Going back to the table analogy from the Duplicate Content section above, do people search for “square dining tables”? Sure do. How about “modern dining tables”? You betcha.
Okay then: how about “modern square dining tables”? Yup - 20 searches a month, according to Ahrefs (curiously, “modern square dining tables for 8” gets 50 searches a month!)
The general takeaway here is that you should plan your navigation categories, facets, filters, and sort orders according to:
Focus on allowing crawling and indexing for those variations and combinations for which users search the most - and solving the problems outlined above using the right tool for the job (more on this below.)
Use 3rd party keyword research tools to determine what combinations are most popular, and let the keyword opportunity data guide you into what level of depth is worth it for the extra work to build this functionality for your business.
Typically this means allowing for crawling & indexing of 1 - 2 levels of parameter (or URL) nesting. Going 3+ layers deep can get pretty complicated (exponentially so!), so we generally don’t recommend it, but if you do, be sure to work with a senior SEO and software engineer to make sure you do it right.
We've written in-depth about SEO crawling and indexing issues, as well as how to deindex various file & page types. Here are some notes on handling this specifically for Faceted Navigation.
Disallow crawlable URLs for facets, filters, and sort orders under your specified limit.
Note 1: this is the only real way to control crawl budget issues (outside of internal linking, but that's a bigger subject), but if you have any links to any URL versions you've disallowed crawling on, you won't get credit for those links. So generally, use this tool a) only if/when you have crawl budget issues (e.g. it's a very large website), or b) only for "deep" variations where you don't really have any valuable links anyway (ideally BOTH.)
Note 2: Disallowing doesn't mean the URLs can't be indexed! (FYI)
Including actual examples here is complicated, since URL patterns for eComm sites vary GREATLY, but here are some common ones:
Learn more about robots.txt files.
Noindex tags are page-level instructions for what search engines can and can't index. It's the only really detailed way to control indexation, but they can still be crawled (and therefore can waste crawl budget.)
But if there's a reason you can't specifically Disallow a page or URL pattern, the meta robots tag is a great option. It's also super simple - just this line of code in the <head> section of the page: <meta name="robots" content="noindex,nofollow">.
Learn more about Meta Robots tags.
Canonicalization tells search engines when you have a preferred version of a URL; it's the perfect solution for the parameter ordering issue from above that may have created duplicate pages.
Once you chose which you want to be ordered first, self-canonicalize the primary variation, and point the canonical to the primary page on the variation URL.
Example: assuming /dining-tables?shape=square&style=modern should be primary, the canonical tag (in the head section of the page) should be <link rel="canonical" href="https://www.tablebrand.com/dining-tables?shape=square&style=modern"/>. This same exact line of code would then also be added to the variation (/dining-tables?style=modern&shape=square.)
Learn more about the Canonical Tag.
Be careful linking to pages you don't want indexed. Href nofollow tags can be useful tools when you need to link to something but you don't want to pass link equity to it.
Where and how often you do this is honestly a matter of opinion/preference. Some eCommerce SEOs prefer to nofollow any links to any page that is meta robots noindexed, or disallowed in the robots.txt file. We typically only use it for URLs that Google absolutely should not crawl - e.g. any URLs that require users to be logged in (like cart and user account URLs.)
Faceted navigation can be great for SEO and the user experience - when implemented correctly. Carefully research what opportunities you want to take advantage of for your business, and marry that insight with the issues, tools and tips presented here to avoid SEO problems. If you want help with a custom SEO solution for your eCommerce website, reach out to The Gray Dot Company today! (See also our eCommerce SEO case study.)
Related posts:
How to Handle Permanently and Temporarily Out-of-Stock Products for eCommerce SEO & UX
The eCommerce Technical SEO Framework: Making the Ambiguous Approachable