Aug 292012

Ecommerce SEO: Product Variations, Colors, and Sizes

I recently asked twitter for some writing ideas, and Will Scott replied with the following:


This can be a tricky scenario to get right.

This article will outline the appropriate SEO method for handling product versions, colors, sizes and variations on ecommerce sites. You might also find this video on product variations and SEO useful.

SEO for Product Variations: Questions to Ask

Before starting out, ask yourself the following questions to better understand the problem:

  • Are product variations competing in the SERPs, causing duplication and/or cannibalization?
  • Are product variations causing crawl problems or inefficiencies?
  • Has the "wrong" product type been selected as the canonical?
  • Are there business goals tied to long-tail performance where color variants matter?
  • Are color variants, sizes, and models of particular importance (or not) in your industry/niche?

It's common for product variations to cause problems in SEO with duplication, cannibalization, and crawl inefficiencies. This happens most frequently because of complicated URLs generated with many parameters and IDs. That said, it's always a good exercise to do a little digging in analytics. Let the data inform your overall strategy.

There are several ways to handle this, and I'll run through them below.

Tools to Use

The web has evolved to the point where often product variations (such as color) are best presented in the interface. This has the advantage of maintaining a canonical URL by default.

While this is true, there are still a myriad of common problems and poor implementations out there. Your best tool is going to be the rel canonical tag. Ideally, product variations such as color and size can be annotated with rel canonical tags to a 'parent' URL that is the ranking candidate for that product set.

Oftentimes certain types of product variations - especially color - have associated search volume. Users are looking for 'mens green adidas originals', and pages relevant to that query (possibly on a dedicated URL) will perform best. Some product categories show strong search trends towards color, or even size, while others do not. Investigate.

The Ideal Approach

The best way today to handle this problem is via the interface. Product colors can be displayed via a hover or click event, with the URL remaining unchanged. Then, a drop-down selector can be displayed for visitors to choose which item to place in their cart.

This preserves a single, canonical URL at all times for ranking purposes. However, the opportunity to rank for color-specific queries may be lost (or at least sacrificed).

A great example of this technique implemented well is on REI.

color and size selection on

Excellent implementation of color/size selection on

Note how color selection doesn't impact the URL, which makes it easy to view different colors of the product without re-loading the page. This is a solid approach, with the aforementioned downside: REI may not be eligible to rank for color-specific queries of this product. That may (or may not) be a big deal to your business, and that's why you need to check analytics before deciding which way to go.

Other Approaches

Another method for attacking this problem can be demonstrated by OnlineShoes. Color-specific URLs are created for variations, as in the example below. color variations creates URL-specific color variations

Each of the URLs for a specific color variation has a self-referencing rel canonical tag.

While this allows OnlineShoes to compete for color-specific variations in SEO, the downside is that these pages are not highly differentiated and are therefore likely to compete with each other. Additionally, there may not be search volume for every type of product, leading to a situation where URL duplication and inflation is a concern.

Zappos has a different approach. Each color variation is given its own URL, as was the case with OnlineShoes...

Color variations have unique URLs on

Zappos uses unique URLs for colors.

However, each color-specific URL is "collapsed" to a parent, canonical URL (somewhat defeating the purpose of having the specific URLs).

zappos rel canonical tags

Color variants are "collapsed" to a canonical URL.

There is an elegance to this approach. However, I would re-visit it today in light of changes in the SEO world.

What About Sizes, Models, etc?

We typically view sizes, models, and different types of the same product to be of secondary concern in SEO. Therefore, these are best displayed as information on the page and in drop-down selectors for "add to cart" functionality. If unique URLs are being generated for many types of product variations (as is often the case with faceted or guided navigations), use rel canonical annotations along with parameter handling tools (depending on the specific scenario) to improve crawling and canonical signals.


First, go back and read the beginning of this article: All decisions need to be based on an analysis of the specific situation, the site's strengths, weaknesses, and obstacles, as well as your primary business objectives and your SEO channel's goals.

Now that we have that out of the way, read on.

  1. Unless your analytics and business goals preclude it, place color, size and product type variations in the interface (ideally appearing in source code as plain text, not just in images or with javascript / ajax). Don't create unique URLs and pages for these.
  2. If you already have unique URLs for color variants, add rel canonical annotations to a primary ranking URL on all variants. If the colors are specified via parameters in the URL query string, then make use of Google and Bing webmaster consoles to have these ignored in the crawl as an additional step.
  3. Exception to the above advice: If you already have unique URLs for color variants, and the URLs are clean and devoid of excessive parameters and IDs, it is perfectly acceptable to leave the strategy in place. In these cases, add self-referencing rel canonical tags to the color variants to ensure they remain canonical.

There are certainly unique scenarios where our recommendations would change. Let me know in the comments if you have specific problems to address.

Thanks for reading!


23 Responses to "Ecommerce SEO: Product Variations, Colors, and Sizes"
Hi Adam, Congratulation for the post. I have been thinking about the combinations problems for seo and there isn't too much information on google. I just have a question, in terms seo do you think is better to use products with their combination or create a product for each combination. We have tried both estrategies but don't arrived to any conclusion. Regards. Jorge
The main reason why you want to have unique URL's that work for individual products (specific color or size) is of course to be able to link to them, and integrate them into your category pages as well. For instance, if a shirt is available in black, blue and red, and someone visits the category page and selects 'red', you'll want to show that shirt in red, that's simple. But then, clicking it should not lead to the black because it's the default color, it should lead to the red since that's what the user requested. So the product has to have a unique link, right? In this regard, having unique URL's is a good thing. Adding canonicals at least prevents most of the link juice being spread across the various colors/sizes. However, as your inventory increases perhaps crawl bandwidth can become a problem. Google still has to crawl all these unique URL's, and if a product has 4 sizes and 3 colors, that's 12 URL's for a single product. As you've stated, using parameters and excluding these in Webmaster Tools could work. How about using hashes? It's perhaps a little more complicated from development point of view as these parameters are not passed directly to the webserver, but I feel it is the most elegant solution.
Michel, You can approach this in an even simpler fashion, as I've stated in the piece: all products can have an "agnostic" URL with a default color. This is the URL that's featured in the navigation, categories, and the internal link profile of the site. Then, a user can simply select the color they'd like from the product page. Of course they can't copy the URL and share it w/ the color and size already selected, but that shouldn't matter. If it's only a matter of hovering/clicking on the preferred color from the product page, not a big sacrifice there for usability. This is for product pages. If we're talking about categories or refined search (faceted navigation, parametric, etc), then you absolutely want the user to have the ability to generate a definitive URL w/ the attributes they desire. This can then be shared, linked to, etc. But that's a bigger topic than this one and I'll treat it in a future piece. Thanks for the comment. Jorge - I think that question has been answered in the article. There's no need to create many product pages with every variation of color, size, etc.
Just for that reason (categories, refined search) the simpler approach doesn't work for us. Also, though I agree that sharing a certain size isn't important, sharing a color is different. It's 2012, you don't want someone to have to send a link to a friend and add "it's this one, but I like the red, not the black". As far as I know, there are only 3 real options if you do this: 1. Create unique URL's for each product variation, and use canonicals to have Google treat them as one. Solves potential link juice problems, does not solve potential crawl bandwidth problems. 2. Create URL's with parameters for variations that the search engines see. Makes things easier from a technical point of view, but you'll have to exclude the parameters through Webmaster Tools. 3. Create URL's with parameters for variations behind a hash. More hassle for your developers, but at least you won't have to fiddle about in Webmaster Tools. Looking forward to that future piece!
Thanks for the continued thoughts, Michel. I have a bit of a problem with #3 to be honest. John Miller (RKG's VP of IT) and I have been discussing how using fragments in the URL to store the query string breaks RFC standards. I get the SEO advantage. What are your thoughts on that?
Terry Van Horne says:
Personally I lean heavily towards #2 cuz I'm not a fan of using canonicals and hashes are the bane of an internal crawler so... gotta wonder what happens out in the to the as you call it "fiddling about in Webmaster tools" is making it sound like a lot more hassle than it is...provided you don't go overboard with the parameters ie: use that tool between your ears ;-) I like parameters for SEO but they do complicate the passing of the URL amongst I want that page to load with or without good data in the again it works well with the GWT option
TraiaN says:
I am with Michel on product variation URLs. Those who want unique URLs for such variation pages could use the fragment identifiers (the hash sign for example). It is more difficult to implement, indeed, but this URL structure will allow the bookmarking of the exact product, social sharing and link building for long tail keywords. Then, main product image changes can be implemented on each of those color pages as hovers, without URL changes as suggested. Thanks for this great Friday read Adam.
Adam: In this case, I guess it's a difficult decision because there are not a lot of decent solutions for this problem. That's why, in this case, I'd choose for breaking RFC standards as in my opinion it's the best option. Also, this way of using the hash has been done by so many sites now, that perhaps this is one of those cases where standards will follow practice. Terry: I'm not a huge fan of canonicals either, even if it was only because they're officially only an advice (to Google anyway). Also, the idea of having so many pages for almost the same content feels wrong, and again, there may be crawl bandwidth problems. But my main problem with the parameters (what I meant by fiddling about) is that it's a solution for specific engines. Google offers it, Bing offers it, and that's good but there's more engines out there and, ideally, I'd like a solution that works for everyone.
riy says:
I like the individual product URLs. But why not just mark alternate colors with rel=alternate. That way you solve the duplicate content issue, and they all are still crawled and indexed. Any experience why this does or doesn't worK?
rel=alternate doesn't solve duplicate content, unfortunately. Most of the html 5 annotations aren't supported by the major search engines. Google is the only one to support hreflang and rel prev/next, two html5 elements specifically for international SEO (region targeting) and duplicate content via pagination. But I like how you think and look forward to the day when we can do this!
Cory Howell says:
Love the attention to the data providing overall direction. It doesn't make sense to make a rash decision or choose a canonical implementation that defeats the site objective or kills what's working already for you. Other things to consider are the ability to create unique content for only minor product variations. What will the ROI be? We generally look at forecasting data (yes, data again!) thru our SEO tools and analytics to help determine the future value compared to the effort required to create & implement the content. In regards to some of the less searched and/or secondary product differentiators, I think it's important to make sure your pages contain the words you want to rank for in the dropdown options, descriptions, etc. For example, instead of using "M" for medium size, actually use the word "Medium" since the consumer is highly unlikely to search for "m green adidas shoes".
Great comments, thanks Cory!
Jaxom says:
I'm presuming the "sacrifice" of attribute values with canonical could be recovered with the use of things like Schema data?
Not sure I follow you, Jaxom. Can you please expand?
Jaxom says:
Hi Adam, You said "However, the opportunity to rank for color-specific queries may be lost (or at least sacrificed)." Wouldn't something like tags reverse that kind of loss in ranking? eg: itemscope itemtype="product"> itemprop="name">My Product itemprop="url"> (select options:) itemprop="color">red itemprop="color">blue
I think I understand what Jaxom means, but I don't think that currently supports any of the attributes that you're going to use canonical URLs for. Both color and size are not in their specifications, for instance:
Ah I see now, Jaxom, thanks for clarifying. It's an interesting idea, but I believe Michel is correct in that doesn't have a microformat for size and color (yet). Maybe check into Good Relations?
Jaxom says:
True, but as long as it's understandable/obvious, you can add any properties you want...
Jaxom, yes but Google probably won't display it as a rich snippet.
Tom says:
Hi, just want to follow here, cause I'm interessted. Selling T-Shirts and any color is a single product with a single URL with the color name in it. My SEO-friend told me to canonicalise it to i.e. the black product. The Zappos example above set it to the category overview page as I understood, not sure which approach is better... On however, I found, there is an attribute coloravailable. Unfortunatley no size text attribute only height and width.
Hey Tom, Whether doing it "the Zappos way" basically depends on how much you benefit from searches that include color, and that may be difficult to predict. If color is not so important in terms of what your potential customers search for, then using a canonical to send as much link juice as possible to the canonical version makes sense. That way, you'll make sure that one color t-shirt gets as much link juice as possible, and will be able to rank higher because of that. If color is important, then not using a canonical may be a good idea, but then you'll want to try and make sure that you have unique content for each color (by rewriting the product description, and of course including the color in the description and title as well) to prevent duplicate content. Because if you do use separate URLs, you'll want to make sure they are each as unique as they can be in terms of content. Adam's article suggests that because Zappos uses specific URLs and canonicals, it somewhat defeats the purpose of having specific URLs, but as you'll understand from my responses especially the fact that you're able to share a product in a specific color is a benefit (be it not for SEO). Apparently, there's been an update and color is now a valid attribute for products as far as is concerned. But it doesn't like like multiple colors are supported. So I don't see any specific benefits of using tags for the problem of multiple colors/URLs.


Check out what others are saying...
[...] making the search engines happy.  To read more about our approach, take a look at the blog post, Ecommerce SEO: Product Variations, Colors and Sizes. AKPC_IDS += [...]
[...] If that's the case, I'd strongly recommend that you and your website designer read ECommerce SEO: Product Variations, Colors, and Sizes on the RKGblog. It's quite technical, but it could make a big difference to your site's [...]

Leave A Comment