WooCommerce product attributes, categories and tags: what each one is for

WooCommerce product attributes describe the features customers use to narrow their choice: size, colour, material. A category says what the product is, and a tag loosely links products from different categories. A global attribute, created in Products, Attributes, works in filters and variations. An attribute typed by hand into one product is just text on the product page.

Author: The TellMyShop team. A guide for WordPress site and WooCommerce store owners: the cause, the manual fix and the same work in a chat conversation.
Last updated: · 6 min read

Category, tag or attribute: what goes where?

A category answers “what am I looking for”, an attribute answers “what should it be like”, and a tag answers “what else does it go with”. WooCommerce calls all three product taxonomies and describes them in its documentation on categories, tags and attributes.

CategoryTagGlobal attributeCustom attribute
Answerswhat the product iswhat it is associated withwhat features it hasone feature of one product
Example in a clothing storeHoodies, Trousers, Jacketsgift for her, autumn collectionSize, Colour, Material“Double-reinforced seam”
Where you create itProducts, CategoriesProducts, TagsProducts, Attributesin the product, Attributes tab
Has a tree (parent and child)yesnonono
Own page with a product listyesyesonly if you enable archivesno
Works in store filtersas a category filterrarelyyesno
Can create variationsnonoyesyes, but without filters
Typical mistakea “Red” or “XL” categorya hundred tags with one product each“Colour” and “colour” as two attributesthe same feature typed five ways

The most common problem in stores that grew without a plan is features entered as categories. A “Black hoodies” category next to “Hoodies” and “Black” gives three pages with almost the same products. The customer gets lost, and Google sees pages competing with each other.

Example: a clothing store from scratch

The store sells hoodies, trousers and jackets for women and men. Here is a structure that scales well.

  1. Categories: two levels. At the top Women and Men, under them Hoodies, Trousers, Jackets. Each product in one, the deepest category. You can read more about the category tree in the post on moving products to another category.
  2. Global attributes for filters and variations. Size (XS to XXL), Colour (black, navy, grey, beige), Material (cotton, polyester, wool). Size and colour will also be used for variations.
  3. Global attributes for description only. Fit (regular, oversize), Country of origin. Visible on the product page in the Additional information tab, they do not have to be in the filters.
  4. Tags, sparingly. “Gift for her”, “Autumn 2026 collection”. Only where they link products from different categories and you plan to promote them.
  5. Custom attributes for exceptions. A feature that appears in one or two products does not need its own global attribute.

Keep value names in one form. “Navy”, “navy blue” and “dark blue” are three different colours for WooCommerce and three entries in the filter. When a filter shows odd results, see the post on why WooCommerce filters are not working. It also explains how to enable an attribute in the filters.

When should an attribute have its own page, and when not?

A global attribute can get its own archive, a page along the lines of “all wool products”. You turn this on in the attribute settings with the archives option. For Material in a clothing store that is often a good idea, because people search for “wool jumper”. For Size usually not, because a page with “everything in size M” helps nobody in Google. How to show such archives in the menu is described in the developer documentation on attributes in menus and archives.

Attributes help outside the store too. Google reads colour, size and material from the product page data and from the product feed, as it describes in its guide to product structured data. The more consistently features are described, the less work you have with shopping campaigns.

Be careful with variations. Leave an attribute your variations are built from alone until you know what will happen to each variation. How WooCommerce puts a variable product together is covered in the post on WooCommerce product variations.

How does the chat tidy up attributes across many products?

With five products, the editor is enough. With three hundred hoodies where the material is written once in the description, once as a custom attribute and once not at all, it means many evenings of opening products one by one.

The TellMyShop plugin for WordPress and WooCommerce connects your store to your chat (Claude or ChatGPT). In TellMyShop Free the chat reads the list of global and custom attributes with the number of products, finds duplicates such as “Colour” and “colour” and typos in values, and suggests a clean-up plan. It saves nothing.

In TellMyShop Pro the same conversations end with a change. The chat sets attributes in batches of up to 50 products, assigns categories and tags and creates new categories. On request it adds missing values to a global attribute, for example a new colour. Content and catalogue changes work straight after licence activation, with no switches to turn on.

You: In hoodies the material is only in the descriptions. Move it to the Material attribute so people can filter by it.

Your chat: The Hoodies category has 46 products. In 41 the material is in the description, in 5 it is not. A sample of three:

The value “wool” does not exist in the Material attribute. Shall I add it? I won't guess for the five products with no material information, I'll give you their list.

You: Yes, add wool and do all 41.

Your chat: I'll prepare a preview of the whole batch. I'll save it after your ‘yes’.

Card status: waiting for your “yes”
change preview

Mono Hooded Sweatshirt

old version: Material: none

new version: Material: cotton

Basic Zip Hoodie

old version: Material: none

new version: Material: cotton, polyester

Oversize Wool Hoodie

old version: Material: none

new version: Material: wool

Illustration: products, numbers and replies are examples.

The numbers in the conversation are examples. The chat takes values from the descriptions and does not invent features the store does not have. Each batch goes into the change history, and you can undo most changes with the request “undo the last change”.

What the chat does not do in this step: it does not create a new global attribute, meaning a new entry in Products, Attributes. That is one field in the admin, after which the chat fills it in the products. Nor does it change the attributes your variations are built from, because that would change the variations themselves. Prices, stock and variation data belong to the Sales switch.

Start with TellMyShop Free, which will show the mess in your attributes. Read more about the plugin on the TellMyShop for WordPress and WooCommerce page, and Pro prices are on the pricing page.

Questions and answers

What is the difference between a global attribute and a custom attribute?

You create a global attribute once in Products, Attributes and use it in many products with the same list of values. You type a custom attribute into a single product as plain text. Store filters work only with global attributes.

Do product tags help with SEO?

Rarely on their own. Each tag has its own page with a list of products, so dozens of tags with one product each create thin, similar pages. Tags make sense when they group products from different categories under a phrase people search for, and get a description.

Should size be a category or an attribute?

An attribute. A category answers the question of what the customer is looking for, for example hoodies. Size, colour and material are features they use to narrow the choice, so they belong in attributes and filters.

Will changing an attribute break product variations?

It can, if the attribute is used to create variations. Removing a value used in a variation cuts that variation off from selection in the store. Descriptive attributes, such as material or country of origin, can be changed without affecting variations.

Can the chat tidy up attributes across many products at once?

Yes, in TellMyShop Pro, up to 50 products per batch, with a preview before saving. It does not touch the attributes your variations are built from in this step, because that would change the variations. TellMyShop Free shows the list of attributes with typos and duplicates, but saves nothing.

WordPress is a trademark of the WordPress Foundation. WooCommerce is a trademark of Automattic Inc. Claude is a trademark of Anthropic PBC. ChatGPT and OpenAI are trademarks of OpenAI. TellMyShop is not affiliated with these companies.

TellMyShop for WordPress and WooCommerce

Your chat reads the site, shows every change before saving it and saves only after your yes. You can undo most changes with one sentence. Works with Claude or ChatGPT, free accounts included.

Read next