WooCommerce, SEO and how to build a perfect site.

WooCommerce is one of the new guys going strong in the eCommerce industry with powerful and sustainable results. WordPress wasn’t designed for the support of online stores, but WooCommerce provides specific functionality to an already very versatile CMS. And we all know the significance of WordPress when talking about positioning. Here we will try to learn how to setup a store with this well-known plugin, and describe all the features that make it one of the CMS with the shortest learning curve in the industry. We will optimize a WooCommerce from the SEO’s perspective to get a powerful tool which can be positioned in the most competing industry.

This article was written based on a course about SEO in EscuelaIT and you can find in spanish here writen 19th of October 2014


This article doesn’t cover how to sort websites. For information about this, please see this article about how to sort a website (in Spanish) in the same site. Here you will find other URLs (in Spanish) for more information about keyword research:

This article doesn’t cover how to sort a website or how to build an architecture, but rather how to organize the website and the structure enforced by WooCommerce by default. And if you want to check the slides, you can find it in my slideshare Señor Muñoz account SEO for WooCommerce (WordPress)


WooCommerce has 8 types of URLs, all of them individually positionable. So if we follow the rule 1 keyword = 1 URL = 1 positioning opportunity, we should be very careful when developing the structure that best sorts our website.

  1. Post (entries)
  2. Categories (of entries)
  3. Tags (Labels of entries)
  4. Pages
  5. Products
  6. Categories (of products)
  7. Product tags (Labels for products)
  8. Attributes (of products)

From these 8 types or patterns, some are of special importance: those referring to categories (of entries and products) and tags/labels (of entries and products). Normally, when you need to decide the use of positionable keywords, it is particularly hard to distinguish between a category and a label. In our case it is even harder, as we will need to divide entries and products in elements that are initially similar to us. And nothing could be more untrue! Because the production of elements should be done efficiently: the categories, labels and attributes for products will define the product, while the categories and tags for entries will define the content itself. Provided, of course, that they don’t step on each other or become similar.

pages vs. entries

Let’s not forget that pages are targeted for static, invariable-in-time content, and for content not eligible to be commented or discussed. Post and entries, however, are designed to develop topics in time. They are related to a temporality and are eligible to be commented or handled individually, but always with similar connections with the topics in our website.


Suppose we have a T-Shirt store, and we sell an Atlético de Madrid Nike Shirt, XXL Size, for Season 2014–2015:

  • Product: Atlético de Madrid First Kit
  • Category: Football Kit or NIKE or Shirts
  • Labels: Atlético de Madrid or Football Kit or NIKE or Shirts
  • Attributes: XXL Size, Season 2014–2015

This way we obtain an entry in the blog which is automatically blocked for the following topics:

  • Football Kit
  • Atlético de Madrid Kit
  • Shirts
  • NIKE
  • XXL Size
  • Season 2014–2015

However, we could create an entry with these headings:

  • The Atlético de Madrid Shirt throughout history
  • Sport Clubs sponsored by NIKE in 2014
  • Kits for Countries in World Cup 2014

We won’t be able to use the following as labels or categories:

  • Shirts
  • Football Kit
  • Atlético de Madrid Kit
  • Shirts
  • NIKE
  • XXL Size

But we could use the following as labels or categories:

  • History of Kits
  • National Football Teams
  • Sport Clubs

It is of course quite difficult to anticipate the whole structure of our webpage. As architects are not requested to build houses for between 2 and 200 people, the same applies here: before developing a webpage, we need to define the (roughly) best sorting which allows us to develop the correct structure with the 8 possibilities provided by WooCommerce.


1) Pages

Pages are written blocks introducing the most static info in our eCommerce. This content is not based on time. A very interesting thing about pages is that one page can be a child of another page, one at a time.

The usual content of pages for an online store in an eCommerce is: legal information, LOPD, LSSI, contact information, info about the company. Particularly on WooCommerce, we see 4 default pages:

  • The shopping cart.
  • The page for completing a purchase.
  • The “My Account” page.
  • The showcase page, including the catalog and all the stock.

These are the four standard pages for all the pages developed with WooCommerce. There is also an additional page for the currently effective legal information and other pages in which we can include the data we want (or need) to offer about our website.

2) Post (entries)

Entries are written blocks with a great dependency on time. They are written in a very specific moment, so they can become obsolete in time. The best example are the news: they are written in a very specific moment which determines the context. Therefore, the content that can (or is required to) be handled based on temporality will be considered as entries. Please note that the labeling and categorization of each and every post should be managed properly.

3) Categories (of entries)

One post, one category. One category, n posts. Categories in WordPress correspond to supra entities covering several topics. So, if we have categories in our blog with a low number of entries, we should consider removing them, as they are superior entries with content “under their umbrella” with a weakened structure in a situation with few entries, as described above. Because of that, the number of categories in our WordPress must be evidently much lower than that of labels. This includes the content and positionable keywords with a high co-occurrence in our blog.

The categorization of entries in a blog is expected not to vary during the lifetime of the project. Therefore, it is strongly recommended you carefully examine the categories and elements that you choose. Also, this categorization will never be the parent navigation. The reason for this is that the purpose of the blog in an eCommerce is to boost the selling channel, rather than being the channel for the parent navigation.

How you can display this content

Correct categories are characterized by the following:

  • Competing keywords: both for having “enemies” and supporters.
  • There are lots of entries in our blog.
  • Potentially profitable keywords for our business.
  • They supplement the topics in our main blog without overwriting a categorization of products.

4) TAGS (Labels for entries)

One of the biggest issues we need to face is the thin line between categories/tags/posts/pages. Despite all said above, the tagging of an item with a keyword often leads us inexorably to complete the content field of that new label. This results frequently in overlabeling scenarios, i.e. a problem of excess of tagging of the posts in our blog that can avoid an effective management.

Correct labels are characterized by the following:

  • Competing keywords
  • A not-so-low number of entries in our blog (having 2 or 3 entries under the same label might not be profitable enough)
  • They supplement the topics in our main blog without overwriting the categories or labels of products.

5) Products

In an eCommerce, products are usually the second level of positionable keywords, right after the categories of products. However, a side sorting — associated with a child navigation based on labels or attributes, can change the architecture of our store, giving it a different navigation to categorization.

The URLs associated to products must be supported with keywords that supplement the name of the product. We also need to know what type of searches our prospects do to define the level in an efficient manner. Example: if the product is Smartphone Sony Experia Z10, 16 Mbs, white, we may find in our keyword research that the search associated to this product is “Sony Experia Z10”. Therefore, the product title is as true to the original as possible and gets shortened in the product’s URL.

6) Categories (of products)

Categorization of products is one of the main purposes of this initial study, and also the base for a later adequate architecture. For this, we need our architecture to follow the rule “One product, one category. One category, several products”, just as it happens with posts and their categorizations. To organize this categorization, there is only one question we need to answer: If we had just one product for a category, which one will be? If we are able to answer this, we will also be able to organize our online store afterwards.

And please be aware of a very important thing: This categorization does not mean it is the parent navigation. This categorization is generally associated to parent navigation, but this is in fact far from truth: it does not have to be the menu navigation as we know it. Certainly, this might not be the way navigation happens, which will be rather based on a combination of labels, attributes and categories to correctly develop a strategy.

The product category will probably appear as a link within the template.

7) TAGS (LABELS for products)

As with categorization, the labeling of products will serve as an additional description of those products. It will setup a navigation structure that leads us to the final product through side navigation, not parent navigation. However, this labeling can be the parent navigation in case our strategy requires it.

The labeling of products will probably appear as a link within the template.


8) ATTRIBUTES (of products)

Attributes are variables that make a product different in “substance”, rather than in form. Following with the example above: the “substance” of the Atlético de Madrid shirt remains the same, be it from season 2014–2015, from season 2016–2017, the first kit, the second kit, etc. It is an Atlético de Madrid shirt. This is the base for attributes.

By default, a product’s attributes don’t show as a link within the template. But if they are well-developed, they will be positionable.


Permalinks can be of great help when boosting the visibility of our content.

Post (entries)

Customized structure: /%postname%.html

Categories (of entries)

/information/ or /keyword/ or /about/

TAGS (LABELS for entries)

/information/ or /keyword/ or /about/


/keyword/ or /buy/ or /store/

Categories (of products)

/keyword/ or /buy/ or /store/

PRODUCT TAGS (LABELS for products)

/keyword/ or /buy/ or /store/

ATTRIBUTES (of products)

/keyword/ or /buy/ or /store/


This article may seem quite incomplete, as we didn’t mention a lot of things, including titles, descriptions and alike. The reason for this is that WooCommerce and WordPress don’t manage these types of sections by default. If we install a plugin to manage tasks like section indexation or sitemap creation, our current project will be efficiently supported. But what if the topic or the template already had some sort of management system for this? The best approach is to know the productive force we can count on.

AN Example: a washer store

Washers are a very familiar example in the SEO world. It all started with a presentation done by Arturo Marimón, from the online marketing agency Seocom in Barcelona. With that example in mind, we simulated how it would be like to work as a SEO in a company which decided to use WooCommerce to setup the online store.


In this first step of the project, we need to identify the keywords. For this, we’ve created a randomly-sorted table with the features for both our washers and our products, including: washer brands, types of washers, materials they are made of, functionality, number of units in each pack and washer sizes.

Keyword research for a washer store


We need to decide which of all these columns is going to be the categorization of products. You already know which question to answer: What makes our product unique? This time, we choose the brand as our category. As an example, the brand is the only difference between the flat washer, brass, din 125, for axis, pack of 200, M10 size from Würth and the flat washer, brass, din 125, for axis, pack of 200, M10 size from Matriu.



In our case scenario, the attributes modifying the price of each washer are the columns for type, number of units per pack and size.

As for the labels, they will correspond to several columns, like material, functionality or DIN.

Keyword research and groups

Producto tags



After choosing the types for the different columns, it’s time to select which one is going to be our main menu, i.e. the menu for parent navigation. This decision should be based on the type of search our clients do. After studying the different columns, we decided to choose the column Type for our parent navigation. This is because we found out that our clients search for washers based on their types: flat washers, wedge-shaped washers, spring washers. Therefore, this will be the main menu for navigating.


Now we need to decide which column we want for the different navigations.

In order of significance, the child navigation is determined by the column Material. This column can be linked from the homepage and also from several featured sections.

The underlying child (side) navigation is determined by two columns: functionality and brand. These columns will have a description page. The brand page will contain the logos for each washer manufacturer. As for the functionality column, it will have a corresponding power hub, allowing you to navigate from the homepage with a second click.

To end with, the tertiary navigation is determined by the DIN, the types of packs and the size. This is because our experience and keyword research tell us that those are long-tailed, inconclusive searches, but they can give us a good positioning in specially sided searches in our business.


Basically, the structure will be the following:


Any question? We are all ears. Go to the feedback section and leave your comments!