Categories, Tags & Taxonomies, Oh my!

Let’s assume that we’re working on a site with more than 5 pages – and that you’re adding posts all the time on your chosen subject matter. As your content grows; users being able to find what they’re looking for becomes more of a challenge and keeping things organized can become a huge pain point. But, with some thought and planning, this can be avoided and by using categories, tags and custom taxonomies properly can be be what makes your content easy to find. Let’s start with some basic assumptions and then get into more detail.

Posts vs. Pages

Chinese fighting fishPages: for most part, pages are for “static” content like Home, About, etc. Pages generally do not have dates, comments or categories attached to them. They stand alone. When there is a lot of information to present, I personally like to create custom templates that can display category links in a variety of ways.


Posts: originally designed for the “blog”, posts are meant to be grouped. By default this grouping is by date – the most recent shows up first.  They usually have comments and dates and can be assigned Categories, Tags and custom Taxonomies. It’s the grouping of things that can make your site a powerhouse of easy to find information.


Categories are your table of contents. The main, broad subject matter that your site is about. They should be pre-defined as part of your planning. Categories are a group of terms that can be hierarchical with parent and children terms. They can be added to menus or sidebars. They can be specifically queried on template pages (i.e. “I want to see the latest four posts on this topic”.) Categories do create their own URL’s –

Let’s say we’re creating a cooking site; there are lot’s of ways to organize this, but one way could be by meal type:

broad categories


Tags are  your index – a group of terms that are NOT hierarchical. They are meant to be more free-form and more specific. Like categories, they can also be used in menus, sidebars or queries.

Custom Taxonomies

The categories and tags built in to WordPress core are taxonomies. Creating a custom taxonomy based on your subject matter is just a way to extend that. Custom taxonomies follow all the same rules as categories and they are usually built for a site in a plugin or for a specific theme in the functions file. Allowing for custom taxonomies is a powerful way to cross-categorize content. DO be aware of using “reserved terms“! You cannot, for example, create a taxonomy called “year”.


The words you assign to a category, tag or taxonomy are ‘terms’. There are two ways to create a new term:

  • In a post, on the fly
  • Or, in the Categories menu

category menu

Personally I always advocate the second choice. Adding things on the “fly” in a post leads to duplicates/similar terms confusion. (For both you and your readers.) If I have half of my recipes under ‘dinner’ and the other under ‘supper’, they both lose value and your audience may miss part of what they’re looking for. When you force yourself to add things in the list, you see what is already there.

Where we get into trouble

Similar terms: I’m shopping for a new sofa, but your site has things in ‘couch’, ‘sofa’ and ‘davenport’. Some items are in one, other in another – I’ll never see ALL of the couches!

Same term at different levels: This is not illegal and will work. But how confusing is it to see ‘couch’ under ‘living-room’ and then again under ‘bedroom’?

Inconsistent terms: If I’m writing about cars and I categorize under ‘Chevrolet’ and my co-author categorizes under ‘chevy’, now all I have is a confusing mess for my readers. Planning and editing rules ahead of time can save you here.

Too many categories: Remember “broad subject matter”? Keep it simple.

Just typing: Always a good idea to see the existing list first.

Tagging overkill: If posts have tags that no other post is using – think again. If our goal is to group things, then single tags serve little purpose. If the word is in the title or category, there is zero point in tagging with the same term. Basic search will still find it. It is possible to have the same term in Category and Tag, but so confusing!

The whole point of this exercise is to make it easy for your audience to find what they’re looking for. Inconsistent and similar terms dilute the group and are confusing.

Plan Ahead

Define terms as much as possible ahead of time. If there are multiple editors, discuss this with them and train them on how to do things properly. Cleanup later is a lot harder than planning ahead.

Displaying Categories, Tags & Taxonomies

This is the fun part (well for me anyway.) Simple displays include widgets with a category list and categories are usually listed in a single post, but as mentioned earlier, I’m a fan of landing pages that are full of category links. Let’s break this template down: (you can see the real page here.)

The first column is “show me the latest 4 posts in Mammals”. The second column is “show me the Featured articles in Mammals”.  The third is show me different “types of content” in this category. The middle section is show me all the child terms of Mammals. The end section is show me all the Clinical Topics for this group. This site is all about helping Veterinarians find info on “exotic” pet animals. If a Dr. has a bunny in her office and needs to anesthetize it, does she look under Rabbit, or Anesthesiology? Doesn’t really matter, either way the article on this will show up and she can then filter those results to get a more specific set of posts. Except for the first 2 columns, there are no single post links here, just links that will take me to a list. This site has over a thousand articles, but that doesn’t matter either, once they are properly categorized, they will show up in these lists. This site was planned for growth.

Tags also have a standard widget, show up in the single post and there are dozens of plugins that let you show tag-clouds or some other creative way to show them. In my recipe example, I used broad categories for meal type and then tagged with ingredients.


Stay on top of things as the site grows, always keep simplicity in mind. Using multiple languages? Definitely add terms in the list, not the post; your French term could end up in the English list which makes it useless. Don’t forget to read the Reserved Terms doc in the codex when creating custom taxonomies.

Further References