Drupal - When to use list(text) or taxonomy?

Structure and dynamic are IMO the keywords for choosing taxonomy. I recently had this question come to me when tagging companies with geographical regions. My first choice was to prepare taxonomy with list of regions. Soon it turned out to be over-complication. The regions almost never change their names and almost never change their structure/parents. So I tossed out the taxonomy and decided to use a flat List (Text). It's now also much easier to maneuver the regions in a View. So - if your list is static and flat - go for a list.


Taxonomy has performance issues as it scales because the SQL queries get longer; if you are using views filters, select lists will be faster than taxonomy.


The key differentiations I learned were:

  • do you want users to be adding to the list of values, not just site admins or, will adding to the list be a semi-regular need for even site admins?
  • do you want to use the value as an organizing piece of content itself (as suggested above by @Artur, creating pages of all content that shares this term, with different layouts, like a product page: show all XL clothes; or news, show all Sports)
  • is the data at all hierarchical? (eg: subcategories where you'll want to capture the parent category sometimes or the children separately at others)

If no to all of the above, use select/text. If yes, use taxonomy terms. You'll usually use select/text, in my experience. It always feels wrong, but it's usually right.