Does anyone have experience working with nested tags? I could not find any websites that allow users to have hierarchies in their tags (equivalent to non-mutually exclusive categories). Is it a bad practice in general? If so, why?


11 Answers 11


The idea behind tags is the same as the idea behind labels in GMail: the ability to assign multiple tags to a single post/mail/.../item.

The GMail labeling of e-mails was born specifically to counter the need in most e-mail clients to archive an e-mail in a single specific folder which ususally would be part of a hierarchy of folders. So what do you do with an e-mail that belongs both in the folder "advertisments" and in the folder "creditors"?

GMail was the first to solve this using labels: you just assigned both the label "advertisements" and "creditors" to the e-mail and you would be able to find it both when showing all e-mails in the "advertisements" label ("folder") and the "creditors" label/folder.

Some people still want to organise their GMail labels in a hierarchical manner and there is actually a GMail "labs" feature that allows this. But in my opinion it goes against everything for which these labels are intended and were invented.

Similarly, organising tags in a hierarchy goes against the grain. How can a specific document/mail have tags from different branches of the hierarchy tree? Technically not a problem of course, but it just doesn't make any sense (at least not to me).

In many CMS's you will find both tags and categories. Usually you can assign multiple tags, but just one category. And you will find that the categories actually can be organised in a hierarchical manner...

So I would say that the reasons most websites won't allow you to have tag hierarchies is that tags are not intended to be used hierarchically and that if you want to do something in a hierarchical manner you need to use categories (or whatever the website offers by way of a hierarchical organisation system).

  • 1
    i'd go as far to say that poor fit to hierarchies is exactly the problem that tags are trying to solve in the first place
    – jk.
    Commented Sep 12, 2011 at 16:16
  • @jk. well yes, that's a more succint way of putting it... Commented Sep 12, 2011 at 16:57
  • 8
    The Gmail labs feature is not very useful. But I disagree about the other comment ("mails having tags from different branches of the hierarchy treedoesn't make sense"). It does make sense if I want to apply the "Chess" tag to some mails (and automatically the "Board Games" tag if I have an hierarchy "Games -> Board Games -> Chess") and also the "Holland" tag because the mails are about a chess tournament in Amsterdam. Commented Aug 24, 2013 at 12:21
  • 1
    Perhas you can add that another reason websites do not implement tag hierarchies (and complex non-hierarchical tag structures) is the complexity of the database design and possible perforance issues. Commented Aug 24, 2013 at 13:00
  • 1
    @MarjanVenema: Well, you might be searching for all mails related to chess, or related to any board games. Or you might be searching for all mails related to NL, or related to any European country. I don't quite see how that requirement can be fulfilled without allowing for hierarchical tags, which is why in my opinion it makes sense to have hierarchical tags. Note that the tags are in a hierarchy. The mails themselves are not a part of that hierarchy; each mail just contains a set of (leaf or non-leaf) tags. Commented Jun 15, 2015 at 13:48

We are facing a similar situation where our client has a huge catalog and wants to allow its users to successively filter down the content by drilling down into a hierarchy defined by them; a hierarchy they can decide to change anytime and as much as they want. Add to that the fact that the target platform is Android, its omnipresent back button and navigation back stack and you find yourself with an interesting challenge.

We came to the conclusion that classification and categorization are two different things. Is Evil Dead a horror, b-movie or a b horror movie? For categorization, it does not matter. The movie will have both tags associated with it. As for classification, it depends on what you want to put in evidence. The hierarchy of tags is completely independent from the categorization of an item. So for example, it probably would make more sense to classify Evil Dead as a b-movie under the horror category. However, during the b-movie festival weekend, one might want to put b-movies in evidence and bring that category up the classification tree. I don't believe organizing your tags hierarchically is necessarily a bad practice.


Though I agree in part with the answers already posted, you can impose structure on tags. Rather than using 'hierarchy', a better term is 'relationship'. Consider some of the potential relationships between two tags:

  • is parent of
  • is child of
  • is type of
  • is subset of
  • is opposite of

Of course, each type of tag relationship adds extra complexity to your user interface, so you need to weigh cost versus benefit for each additional layer you include. For most use cases, it's probably better to not define tag relationships.

  • Can anyone share any examples of personal information management systems that do this? Commented Sep 5, 2018 at 1:44

Yes tags can be hierarchical and there is actually a lot of (not yet widely recognised) potential in it.

Although some people (probably like the question asker) have been curious and/or after hierarchical tagging for years, the reason it is not present on the CMS market now is more because of technical obstacles rather than not seeing point in it. With pure SQL, juggling hierarchies is not easy: it requires either recursion (which is CPU-expensive and not scalable) or graph abstraction.

It is only not long ago that the dominance of SQL started being seriously challenged by alternatives like NoSQL / graph databases, so we may see hierarchical tagging coming soon.


In my opinion tag hierarchy is not always a bad idea, but I think hierarchy is a bad word here, I would consider this being subsets.

Let's say we are on Stack Overflow and because you work often with Microsoft Excel, you are interested in all questions regarding it. So you add as favorite the "excel" tag and ignore all the others.

But there are other tags related to Excel. There are tags about VBA in Excel, about formulas, about macros, about specific versions (like 2003, 2007, 2010 etc.). In my opinion all of them should be subsets of "excel" tag, so when I'm interested in Excel, I will also see Excel-VBA questions, if only I do not ignore them. This can be in case somebody tagged his question with "excel-vba" but forgot to tag with "excel". The same applies to "vba" tag, which can contain subsets like "word-vba", "access-vba" and of course "excel-vba".

Having this tagging questions would be easier, as I don't need to remember and search what tags are usable. I just put my question with one tag "excel-vba", and it will be seen for all the people who are interested in "excel", and for those who like "vba". This guarantees that more people will see the question and increases probability of getting an answer.

I think that such grouping is missing in SO, especially in case when there are about 1,000 pages in the "Tags" list, which is completely non-searchable.

Screenshot showing 996 pages of tag list in StackOverflow

  • So I think this has more to do with correctly tagging things. The person making the post has to tag it well enough to reach the audience. Yes, they may be asking a vba question but if they want the widest audience then they need to be placing the excel tag as well. Better to be overreaching than under in that specific situation.
    – user441521
    Commented Mar 17, 2015 at 17:08

Well we support tag hierarchy feature in our notes manager app CintaNotes. So far it has great success with the users. However you need to be extra careful, as it the feature is not easy to implement correctly.

Why is tag hierarchy useful? There are two main benefits derived from organizing tags into trees:

1) You can easily generalize and specialize tags. For example, where you might use tags Todo, Reply and Watch, you can instead use Todo/Reply and Todo/Watch. Todo becomes a parent tag in this case. By selecting this tag, you can see all things you need to do, regardless of the type of action that needs to be taken. Without tag hierarchy, you would need to select all these tags one by one to get the same result.

2) When you have a lot of tags, it quickly becomes difficult to manage them and to find them. If your tags are organized into groups by parent tags, you can easily locate the tags you need.

Here is what it looks like: enter image description here

A few tips / advice:

  • Make sure that each tag has a short name and a full name. Full name includes all parent tags. For example, Ferrari and Cars/Ferrari. Inside of your program, use only full names to identify tags. But allow users to enter short names, and resolve them to a long name asap. Auto-suggest tag names while user is typing.

  • When a user wants to see items tagged with tag A, you also need to include all child tags such as A/B, A/B/C etc. If an item is tagged as A/B, it has tag A by implication. This is the main difference of tags from folders (Evernote gets it wrong for example).

  • When a child tag is added to an item, automatically add all parent tags. And remove all child tags when parent tag is removed. Also consider removing parent tags when a child tag is removed, but only if no sibling tag is present.

  • Provide a way to move tags around in the hierarchy. This is the most tricky part. The easiest way to do it is via a rename operation.

  • Please refer to this section of our help file for further details on how this feature is implemented.

Hope that this helps, and good luck!


The problem with trying to use hierarchies is that it's seldom you find universal agreement on what the hierarchy should be. The hierarchy can also change in unpredictable ways.

If you had a tag ASP.NET then should its parent be Web Development Frameworks or .NET Frameworks?

If you had a tag Iron Python that was a child of Microsoft Products, what do you do now that it's been open sourced?

If you have a tag Functional Programming, what parent tag makes sense? You don't want to have generic tags like Programming Paradigms that don't make sense as tags, just to be able to group things.

Generally, it seems that attempts to arrange tags into a hierarchy are seeking to add semantics to each tag, so that searching and classification become richer. I'm not convinced that it works.


I would agree that explicitly organizing tags within a hierarchical structure is bad practice however the nature of tags is such that by specifying multiple tags for an item you are in effect creating a dynamic hierarchy anyway.

Take the example of an online store like amazon. I may classify a toy train model as "trains", "cargo", "toys", "hornby", "models". What I have is a flat list of associations but as soon as I filter by a single tag we can start to build a hierarchy based on associated tags.

If I filter by "toys" then I can aggregate all of the tags associated to items tagged "toys". I could order these by number of associations to create a smart-list of further tags to filter by. Conversely I could start with "trains" and get a completely different list of tags to filter further by.

Stack Exchange does this allowing you to pin-point the type of questions you're after. Take for example the following link which presents questions tagged "usability", "mobile", "navigation" and "touch screen". I could just as easily have started at mobile and ended up at "mobile", "iphone", "navigation".


  • I think you're not creating a hierarchy so much as a graph. Commented Aug 24, 2013 at 11:56
  • I think Craig is right. If you start a list of tagged records and you start categorize records based on 1 specific tag, do that 1 by 1 and you'll end up with a tree-structure.
    – myradon
    Commented Aug 28, 2014 at 9:20

I think the 'hierarchy' in tags comes from how you define and use them, because technically there is no structure behind it as the logic is constructed from the combination of tags associated with a particular item (think about keywords in a search query where the order of the search terms don't matter).

You can try to create a structure for the use of tags by grouping them in the user interface so that users will be able to see which categories or groups the tags have been applied to and therefore create a structure in their mind. You can also use different colours to show relationships between tags and create a visual hierarchy.

However, I don't think it is always advisable to implement an interface design that forces a users to apply the tags in a specific way, because the way tags are used encode information about how they see the relationship between the items and what it means to them.


Information Architecture (IA) is the structure of shared content across the entire web that includes text, photos, and videos. It’s a concept said to be first recognized by Richard Saul Wurman in the 1970’s.

Its primary function is to organize, tag, label, or ID websites so that they would be found by people who are searching for them. enter image description here

photo credit: theuxreview

The three working components of that makes IA is

  • Ontology (the product’s elements)
  • Taxonomy (arrangement of its parts)
  • Choreography (the interaction between its parts)

. The most efficient IA is when these three parts are working together.

What Is Folksonomy?

In the early 2000’s we saw the evolution of tags in social media. This tagging system helped one website to become one of the top bookmarking tools. Del.icio.us offered users the chance to categorize their bookmarks under whatever category name that was made sense to them. We are currently using today era that already use a pinboard system (Pinterest) and hashtagging social networks (Twitter) that have already been using this system for some time.

As soon as everyone witnessed the power of the tagging system, we would start seeing the trend in other industries. The photographers who shared their content on Flickr would then experience the chance to tag all of their own uploaded photographs with whatever definitions and labels they felt best described their work.

The collection of all these categories, tags, and user-organization was in fact the creation of folksonomy. The individual credited with inventing the term was Thomas Vander Wal, which he explained was a combination of the words “taxonomy” and the word “folks” to put emphasis on who makes this structure possible. The Users.

Future of Folksonomy

Today, we currently have meta-tagging websites for Search Engine Optimization (SEO) and geolocation tracking hashtags on Instagram. We have seen many companies benefit from the exposure as a marketing tool, and we have seen how effective hashtags can be in organizing for political awareness. It was a way to tap into the mindset of the masses — like reading the virtual graffiti on the web-wall.

The future of folksonomy is unclear in my opinion. While it is an excellent system, it is also a very messy one. There’s tons of room for human error, such as misspelling a bride’s name in a wedding tweet. For a short time, it was not possible to begin a hashtag with a number. Some tagging system allows more than a single word, while others allow spaces for wider definitions. I think the future is more a question is how we continue to implement folksonomy in our new trends; like voice-navigated devices.

Article referred https://medium.com/@munktype/understanding-information-architecture-e94510a1f224


Hierarchical tags are not a bad practice. Here I list some applications (not websites) that make use of hierarchical tags and actually have a good user interface.

  1. Evernote, used for Notes https://www.youtube.com/watch?v=sjZhdSMQ0Jg

  2. Anki, used for flash cards you need an add on for hierarchical Tags https://www.youtube.com/watch?v=Ahfvq8l128Y

  3. www.tags4.info, used for bookmarks video on hierarchical tags https://www.youtube.com/watch?v=4V7aXQNRzNM&t=163s

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.