Taxonomy Design for Drupal

I recently presented a webinar addressing taxonomy design for Open Source platforms.  Through my years of taxonomy consulting, I’ve seen a stronger and stronger trend toward the use of Open Source and the need for effective taxonomy design and development within.  With Drupal as one of the more popular Open Source tools currently available, I want to highlight the specific taxonomy “build” process in Drupal.  The process is remarkably simple, which in turn holds both costs and benefits.  This blog post will provide the steps for taxonomy development within Drupal, but will also highlight some of the best practices for Drupal taxonomy design.

As mentioned above, the build process is simple and really consists of only three steps, all of which take place from the Structure screen in Drupal’s Administrative console.


Step 1: Create a taxonomy.

The first step for Drupal taxonomy is go to the Structure>Taxonomy menu.  Clicking ADD VOCABULARY allows you to create a new taxonomy, name it, and be presented with the option to add terms to it.  In broader terms, this is really a metadata field you’re creating, as you’re not creating any taxonomy values or terms, but simply a field that can contain terms.

By default, a taxonomy titled “Tags” already exists out-of-the-box with Drupal.  As shown in the screenshot below, I created two new taxonomies, one titled “IPSV-Asbestos” and the other titled “Document Types.”  Though there’s no real limit to the number of taxonomies you can create, consider the administrative burden that comes from managing and navigating a myriad of different taxonomies.  The best design practice is to sacrifice some level of granularity for usability and focus on just those taxonomies that will provide the greatest value to your users.


Step 2: Add terms.

Once you’ve completed Step 1, you can click into the taxonomy you’ve created and add terms to it.  This is the point at which you’re actually creating the taxonomy of terms/controlled vocabulary to populate the metadata field you created in Step 1.  The addition of terms is as simple as clicking ADD TERM and typing.  For demonstration purposes, I populated the field IPSV – Asbestos with asbestos terms from the Integrated Public Sector Vocabulary (IPSV).

In Drupal, taxonomies are by default flat.  You can however make them hierarchical by editing a term after you create it, expanding the RELATIONS section of the term edit screen, and choosing to nest it under an existing term.  This process is relatively clunky but it can be effective.  Nevertheless, when manually curating taxonomies and terms like this in Drupal, I generally recommend keeping the taxonomies flat and simple.  This minimizes the administrative burden and improves the usability for the business users who will be asked to tag content with these taxonomies or leverage the taxonomies for findability.  I should note that Drupal has a lot of modules to enable faceted navigation, so a few flat taxonomies working in concert can still yield a lot of flexibility detail.  Once again, when in doubt, keep your taxonomy design simple in order to better serve your business users.

taxonomyfordrupal3Step 3: Associate the taxonomy with a content type (or multiple content types).

Even though in steps 1 and 2 you’ve created a taxonomy and terms, it is not yet immediately available for use with content.  The final step to enable the true functionality of the taxonomy is to associate your taxonomy with a content type (or types).  In the Structure>Content Types screen you see a view of the content types within Drupal.  You have the ability to use the out-of-the-box content types or create your own.


For this example, I chose to edit the Articles content type and associate my two new taxonomies with it.  Clicking MANAGE FIELDS next to the content type you wish to edit reveals a screen with the default labels or tags in Drupal.  You are also presented with the option to add a new field or add an existing field.

To associate the taxonomy you’ve created with this content type, you enter the name of the field under Add New Field as you want it to appear to end users, set the field type as Term Reference, and choose select list as the Widget (there are other options here as well, but this is the simplest example and the one you will most likely leverage the most).  After clicking save you will be prompted to pick the vocabulary you wish to use.  You are now done.  New content created with this content type will prompt the user to pick from the taxonomy you’ve defined.  In short, your taxonomy is now active.


Drupal has literally hundreds of modules for taxonomy management and visualization, and even more than that to enable faceting or other advanced navigation that leverages taxonomy.  You can see a list of these modules here.  Using a couple of these modules I translated the above example into a couple different navigation options, as shown below.


Your Drupal taxonomy is only as good as the Drupal taxonomy design you’ve put in place.  Following taxonomy design best practices and ensuring you understand your business users and have designed the taxonomy directly for them is still the primary success factor to enabling findability and leveraging taxonomy to get the most out of your content.  That’s where Enterprise Knowledge comes in.

Zach Wahl Zach Wahl Expert in knowledge and information management strategy, content strategy, and taxonomy design. Zach is passionate about forming and supporting high-functioning teams and facilitating results-focused outcomes with his clients. More from Zach Wahl »