Tuesday, December 17, 2024
We just published a new document about faceted navigation best practices, which was originally published as a blog post. This is a summary of some of the important parts of the new documentation page.
Faceted navigation is a great way to help users find what they need on your site, but it can create an SEO nightmare if not implemented carefully. Why? Because it can generate a near-infinite number of URLs, leading to:
- Overcrawling: Search engines waste time crawling countless URLs that aren't valuable to search users.
- Slower discovery: This overcrawling slows down the discovery of your important, new content.
In fact, faceted navigation is by far the most common source of overcrawl issues site owners report to us, and in the vast majority of the cases the issue could've been avoided by following some best practices. But let's back up a little.
The problem with URLs
Each filter combination in a faceted navigation generally creates a unique URL. For example:
https://example.com/items.shtm?products=fish&color=radioactive_green&size=tiny
Changing any parameter — product
, color
, or size
— creates a new URL, leading to a potential explosion of URLs. And that's the problem: a
virtually infinite number of new URLs waiting to be discovered. Let's fix it.
Two approaches
-
Block faceted navigation URLs:
-
If you don't need these URLs indexed, use
robots.txt
to disallow crawling. -
Or use URL fragments (
#
) for filters, as search engines generally ignore them.
-
If you don't need these URLs indexed, use
-
Optimize faceted navigation URLs (if you need them crawled, no matter the cost):
-
Use the standard
&
separator for URL parameters. 💩 is not a good parameter separator character. - Maintain a consistent order of filters in the URL path.
- Return a
404
status code for filter combinations with no results. - Unless you have no other options (for example, you have a single-page app), avoid redirecting empty results to a generic "not found" page.
-
Use the standard
Important considerations
-
You can also use
rel="canonical"
to help consolidate signals by pointing variations to a main page. This one takes time to get picked up. -
rel="nofollow"
on filter links can discourage crawling, but must be applied consistently. As in, every link pointing to these pages, internal and external, must have arel="nofollow"
attribute. - Crawling faceted navigation URLs will always consume server resources and may impact the discovery of new content.
If you have suggestions or need clarification about our new document about faceted navigation best practices, use the feedback tool on that doc. If you are really into faceted navigation and wanna chat about it with others, the Search Central community is the place to go, but you can also find us on LinkedIn.