Ecommerce SEO: Using Facets to Target Long Tail Keywords

If you’re running an ecommerce site, you most likely have filters to allow your users to narrow down their product search. In this article, I’ll discuss the importance of properly targeting long tail keywords (explained below) using facet URLs (which are generated from the filter selections), as well as how to avoid and troubleshoot the common pitfalls that can occur when running facet-generated pages.

Why should I care about long tail searches if they have low search volume?

The answer is simple, because the sum of the tail is larger than the sum of the head. Most  marketers don’t realize this and get caught up going after the fathead, when the gold mine is on the skinny tail. Not only that, but the latter on average has higher conversion rates!
Search Demand Curve Graph
For example, the keyword “dresses” has 268,000 US monthly searches, but “long sleeve white cotton dress” has only 30 a month. With this information, it is a no-brainer that you would rather target “dresses”, right? Yes, ranking number 1 for “dresses” will bring you more traffic than ranking number 1 for “long sleeve white cotton dress.” However, the point here is that you need to see the big picture: a LOT of keywords (tail) get searched less; LESS keywords (head) get searched a lot. When you add those up, you will see that 70% of the searches are composed of long tail keywords.

OK, I’m sold, but how can I realistically target ALL these long tail searches?

It can seem quite daunting to target these infinite searches manually. I’m definitely not recommending that you manually create a page for each single query, but rather to leverage your existing facets to create dynamically generated pages. Make sure your taxonomy has been carefully implemented first.

Which type of long tail searches do you recommend I should target with facets?

You may wonder which type of search is eligible to be a facet-generated page, and which you should target with other page types. The rule of thumb is that any search that is strictly related to the product attributes or features should be targeted with a facet as opposed to creating another page type for it.
Using the dress example: “dresses” is your category page, where (if the proper taxonomy is in place) you would have facet groups for “color” and “material.”
The facet value selections under these groups would then generate a new page with an updated assortment. Therefore, “red dress”, “cotton dress” and “red cotton dress” are queries that should be captured with an indexable facet URL as opposed to manually creating new pages for those searches:

This is amazing, but wouldn’t I be opening a can of worms to infinite pages?

Yes, you would, and here is where things will get complicated (but it’s all worth it, promise).
Even though there is a great opportunity for capturing that 70% of long tail keywords through facet-URLs, there are serious headaches that would come with it. Let’s address the worms in the can before going any further with an implementation and letting crawlers access more pages than desired (which can be harmful).
Let’s say you have a total of 10 facet groups with 15 values under each. If you were to allow ALL possible combinations to generate a page, you will then end up with 1.3076744e+12 pages.
Do you want all those page combinations created? Of course not.

How to Avoid SEO Pitfalls Caused By Facet-Generated URLs

Let’s review the top 3 issues that occur when wanting to create indexable facet-URLs that could actually hurt your SEO:

#1: Over-indexation issues:

Avoid indexing unnecessary URL combinations. You would need to decide up to how many facet groups you should allow for page generation, up to how many values, as well as which ones you would not need to have generated at all.
Let’s go over each of these individually:

How many facet groups would you want to allow for page generation?

The actual question here is: how many adjectives do you use in a sentence?
For example, if you want to describe a dress, how many adjectives would you use? How many would be too many?
According to the language association of speech, you shouldn’t use more than 4 adjectives to describe an object. Therefore, I would suggest to allow up to 4 facet combinations. Example: [brand] [dress length] [color] [material].

How many values under each facet group would you want to allow for indexable page generation?

There are certain facet groups where it would make no sense to generate a page using more than two values selected. Example: for facet group “length”, a user would either search to buy a “short dress” or a “long dress”—and not both at the same time. Identify all of the irrelevant combinations. These are pages that will still get generated for the user, but noindexed to the search engines.

Highlight instances where multiple selections may actually have relevant search volume to rank for. A perfect example of this is “Black & White Dresses”.  This is a two color facet selection that will include dresses with fabric featuring with black and white on a single dress. This is an exception to your rule, and you’d likely want it indexed.

Which facets provide little to no value for generating a new page?

There are certain facet groups where it doesn’t make sense to have an indexable page for crawlers to add relevancy against those long-tail keywords. For example, some irrelevant facets that shouldn’t be included are “shipping method”, “price”, and “customer ratings”.
Solution: There are different ways you can avoid search engines from crawling all these irrelevant combinations listed above. It’s recommended that all of these solutions are executed (and not just one):

  • Create a defined parameter for those irrelevant combinations first. Then use robots.txt to disallow them.
  • Add a meta robots NoIndex,NoFollow at the page level.
  • Add NoIndex, NoFollow link attributes at the link level.
  • Canonicalize these unnecessary facet combos to its preferred parent page.

#2 Duplication Issues:

It’s great that you’ve narrowed down your page combinations to only the relevant ones you want search engines to index. But you also need to consider the order in which these selections then generate the page URL. If you allow all those combinations to be indexable regardless of order, you would end up with duplicate pages that will overlap each other, depending on the order in which the user selected the facet(s).

For example, let’s say a user selects the value “red” under color and then the value “cotton” under material. The page will be exactly the same as if they selected “cotton” first and “red” second.
Therefore, the generated URL should be exactly the same regardless of the order that these facet values were selected. In this case, the generated URL should always be:,material_cotton
Solution: Apply an Order Logic Rule where the order selection won’t matter for the final generated URL. For example, if you select the values “red”, “cotton”, “sleeveless” under the “dress” category page, it should always be “red cotton sleeveless dress”, regardless of the order selected by the user.
Ideally, each category should have its own Ordering Logic Rule set, but you can start with a global Ordering Rule that would work across all your categories. For this, you can use the grammar rules on ordering multiple adjectives where the order depends on the function of the adjective. Example: [size] [brand] [other product attribute] [color] [material] [product type]. (This same ordering logic should apply when populating the SEO elements—more details on this below.)

#3: Internal linking issues:

Make sure you account for proper internal linking, because all of these facet-generated URLs should be linked from somewhere on your site. This is already covered for any one level facet URL, as the link is already present on the left navigation of the pages where these facets live. However, for any facet URLs that are 2+ selections, you will need to find a way to link to all these so search engines can find them, pass authority to the page, and rank them accordingly.
Internal Linking Solution:  The most efficient way to link such a large amount of pages is to use a ‘popular searches’ or ‘related searches’ cloud on your site. This allows you to add these additional facet-generated URLs related to their category or complementary category.
Another alternative is to leverage your page’s internal linking copy and merchandising site sections to link to relevant facet-URLs that don’t otherwise have an internal link.

How to Optimize Facet-Generated URLs

You have the desired magic number of facet combinations, and have avoided all the SEO headaches, but what’s the best way to a facet URL page?
Each facet group should be assigned a weight, and different categories may have different weights. For example, “size” is very important and has a higher search volume for mattresses, but not so much for jewelry. Once you have defined the total number of combinations to allow for page generation, this weight (aka “priority”) assigned to all facet groups would take care of picking the top combinations.
Keep in mind that a Facet Ordering logic (explained above) is very different than this Facet Selection logic. An Ordering logic will take care of the duplication, but will not pick the top values from the selection made.
Let’s say you have prioritized your groups in this order:
Facet Group prioritization: Type (5), Size (4), Color (3), Material (2) Other Attribute (1), Brand (0)
Now let’s say a customer selected all of these facets:
[Size: 0] [Brand: Michael Kors] [Other Product Attribute: Dress length: Short, Dress Style: A Line, Sleeve Length: Sleeveless] [Color: Black] [Material: Polyester] [Product Type: Dress Occasion: Cocktail]
Then, let’s say you have decided to allow up to 3 level combinations. Which top 3 would you select?
The answer will be based on the weight (prioritization) you have given to each facet group. In this case, it will pick the following top 3:

[Dress Occasion: Cocktail] [Size: 0] [Color: Black]

[Size: 0] [Brand: Michael Kors] [Other Product Attribute: Dress length: Short, Dress Style: A Line, Sleeve Length: Sleeveless] [Color: Black] [Material: Polyester] [Product Type: Dress Occasion: Cocktail]
Sometimes, this top combination may generate a page with fewer products on your site than the second less popular combination. If this occurs, you can set it as a variable to be considered, which would generate a page based on the number of product listing results.

SEO Page Elements:

This same facet selection logic (prioritization) should apply to the SEO elements of the page (title tag and H1). Using this current example: [Dress Occasion: Cocktail] [Size: 0][Color: Black] should all be present in your SEO elements, and the order in which they will appear will be based on the Ordering logic you have set for this category.
Let’s say you decided to have this Ordering logic:
[Size] [Brand] [Other Product Attribute] [Color] [Material] [Product Type]
In this case, the Title Tag and H1 of the page would be populated in this order:
[Size: 0] [Color: Black] [Dress Occasion: Cocktail]
[Size] [Brand] [Other Product Attribute] [Color] [Material] [Product Type]
Title Tag: Size 0 Black Cocktail Dress


Targeting long tail searches with facets can be a very tricky task if not done properly. I would suggest starting with having a proper taxonomy in place before opening facets to crawlers. Then, ensure you have defined all irrelevant combinations to disallow them from search engines to crawl. Make sure you set a Facet Ordering Logic to avoid any duplication issues,  as well as a Facet Selection Logic to generate the top combinations. All these indexable facet-URLs should be properly linked within your site so that search engines can find them.
I would suggest to start with just one facet value, and reassess before allowing 2+ combinations—where you only allow one value per group. You can then open 2 values per relevant group (where 2 selections have a keyword with search volume).
This is definitely not an easy task, so I would suggest consulting an experienced professional to help you implement this project on your eCommerce site successfully.