Skip to content

Taxonomy and Categorization — Complete Guide

DodaTech Updated 2026-06-28 4 min read

In this tutorial, you will learn about Taxonomy and Categorization. We cover key concepts, practical examples, and best practices to help you master this topic.

Taxonomy defines how content is categorized and classified. Learn controlled vocabularies, faceted classification, and designing categorization systems that match user mental models.

What You'll Learn

You will learn the difference between taxonomy and folksonomy, how to design controlled vocabularies, and how to apply faceted classification to documentation.

Why It Matters

Consistent categorization makes content predictable. Users learn your taxonomy and can navigate confidently. Inconsistent categorization confuses and frustrates.

Real-World Use

DodaTech uses a taxonomy with categories like programming-languages, security, web-development, and tools. Each category has consistent subcategories and tags.

flowchart LR
  A[Taxonomy] --> B[Controlled Vocabulary]
  A --> C[Faceted Classification]
  A --> D[Tags]
  B --> E[Preferred Terms]
  B --> F[Synonyms]
  C --> G[Category: Language]
  C --> H[Category: Difficulty]
  C --> I[Category: Topic]
  D --> J[User-Generated]
  D --> K[System-Generated]
  E:::current
  classDef current fill:#f90,color:#fff,stroke:#333,stroke-width:2px

Controlled Vocabulary

A controlled vocabulary is a predefined list of terms used for categorization.

# controlled-vocabulary.yaml
categories:
  - id: programming-languages
    label: Programming Languages
    description: Tutorials about programming languages
    synonyms: [languages, coding languages]
    subcategories:
      - python
      - javascript
      - go
      - rust

  - id: security
    label: Security
    description: Security and cybersecurity tutorials
    synonyms: [cybersecurity, infosec]
    subcategories:
      - authentication
      - encryption
      - scanning
      - monitoring
def validate_taxonomy(taxonomy, content):
    errors = []
    for page in content:
        if page['category'] not in taxonomy:
            errors.append(f"Unknown category: {page['category']}")
    return errors

taxonomy = ['programming-languages', 'security']
pages = [
    {'title': 'Python Basics', 'category': 'programming-languages'},
    {'title': 'Network Security', 'category': 'networking'},  # error
]
print(validate_taxonomy(taxonomy, pages))

Expected output:

['Unknown category: networking']

Faceted Classification

Faceted classification uses multiple dimensions to categorize content.

Facet Values
Language Python, JavaScript, Go, Rust
Difficulty Beginner, Intermediate, Advanced
Content Type Tutorial, Reference, How-To
Topic Variables, Functions, Security, Deployment
def filter_by_facets(pages, facets):
    results = pages
    for facet, value in facets.items():
        results = [p for p in results if p.get(facet) == value]
    return results

pages = [
    {'title': 'Python Variables', 'language': 'python', 'difficulty': 'beginner'},
    {'title': 'Python Decorators', 'language': 'python', 'difficulty': 'advanced'},
    {'title': 'Go Concurrency', 'language': 'go', 'difficulty': 'advanced'},
]

filtered = filter_by_facets(pages, {'language': 'python', 'difficulty': 'advanced'})
for p in filtered:
    print(p['title'])

Expected output:

Python Decorators

Taxonomy vs. Folksonomy

Aspect Taxonomy Folksonomy
Who creates Designers Users
Consistency High Low
Scalability Controlled Open-ended
Example Category tree User tags
Best for Navigation Discovery

Designing a Taxonomy

Steps

  1. Content inventory: List all content
  2. User research: Understand how users categorize
  3. Card sorting: Validate categories with users
  4. Draft taxonomy: Create category structure
  5. Test: Validate with tree testing
  6. Iterate: Refine based on feedback
def create_taxonomy(content_list, user_groups):
    # Identify common themes
    themes = set()
    for item in content_list:
        themes.add(item['theme'])
    
    # Map to user group terminology
    taxonomy = {}
    for theme in themes:
        taxonomy[theme] = {
            'label': user_groups.get(theme, theme),
            'children': []
        }
    return taxonomy

content = [{'theme': 'authentication'}, {'theme': 'encryption'}]
users = {'authentication': 'Login & Security', 'encryption': 'Data Protection'}
print(create_taxonomy(content, users))

Expected output:

{'authentication': {'label': 'Login & Security', 'children': []}, 'encryption': {'label': 'Data Protection', 'children': []}}

Common Mistakes

1. Too Many Categories

More than 7-10 top-level categories overwhelm users. Group related topics under broader categories.

2. Overlapping Categories

If content could fit in multiple categories, the taxonomy is ambiguous. Make categories mutually exclusive.

3. Using Internal Jargon

Naming categories after internal team names confuses users. Use terms they understand.

4. No Synonym Mapping

If users call it "authentication" but your category is "login," they may not find it. Map synonyms in search.

5. Static Taxonomy

Taxonomies should evolve as content grows. Review and update the taxonomy annually.

Practice Questions

1. What is the difference between taxonomy and folksonomy?

Taxonomy is a controlled system created by designers. Folksonomy is user-generated tagging with less consistency.

2. What is faceted classification?

Using multiple dimensions (language, difficulty, topic) to categorize content, allowing filtering along any dimension.

3. What is a controlled vocabulary?

A predefined list of terms used for categorization. It ensures consistency by limiting which terms can be used.

4. How many top-level categories should a taxonomy have?

7-10 maximum. More than that overwhelms users.

5. Challenge: Design a taxonomy for a documentation site with 50 pages. Define 5-7 top-level categories, create subcategories, and map 50 pages to the taxonomy.

FAQ

How is taxonomy different from information architecture?

Taxonomy is a component of IA. IA covers structure, navigation, and labeling. Taxonomy specifically focuses on categorization.

What is card sorting in taxonomy design?

Card sorting is a user research method where participants group content into categories that make sense to them.

How do you handle content that fits multiple categories?

Choose the best category and add cross-references from the other categories. Avoid duplicate content.

Should tags be part of taxonomy?

Tags can complement taxonomy, but they are not a replacement. Use taxonomy for primary navigation and tags for secondary filtering.

How often should taxonomy be updated?

Review annually or when significant new content types are added. Major changes should be tested with users.

Mini Project

Design a taxonomy for a documentation site. Define 5-7 top-level categories with subcategories, create a controlled vocabulary with synonyms, and map 20 sample pages to the taxonomy.

What's Next

Now that you understand taxonomy, learn Hierarchy Structure for organizing pages. Then study Navigation Design.

Built by the developers of DodaTech

Doda Browser, DodaZIP & Durga Antivirus Pro