Structure

Breadcrumb trails need a consistent depth model

Breadcrumbs expose your hierarchy whether you're ready or not

Breadcrumbs aren't decoration. They're a structural contract with your users about how your site is organized. If you add breadcrumbs before you've locked down your information architecture, you'll surface every inconsistency in your content model — and users will notice.

I've watched teams add breadcrumb navigation to sites where the hierarchy was still "flexible." One product page lived three levels deep. Another identical product page lived four levels deep because someone nested it under a seasonal collection. The breadcrumbs told the truth: the site structure was incoherent.

You can't patch this with conditional logic. The problem isn't technical. The problem is you haven't decided what your levels mean.

Define what each level represents

Before you write a single breadcrumb template, document what each hierarchical level represents on your site. Not in abstract terms — in concrete, falsifiable rules.

For a documentation site, that might be: Home → Product area → Feature category → Specific article. For an e-commerce site: Home → Department → Category → Subcategory → Product. For a university site: Home → Academic unit → Program → Degree level → Specific page.

Write it down. Get agreement. Enforce it in your CMS content model, not just in your breadcrumb code. If your structure allows pages to live at arbitrary depths or skip levels, your breadcrumbs will surface that chaos immediately.

This connects directly to heading hierarchy — both systems fail when you treat structural decisions as negotiable styling choices.

Match breadcrumb depth to your actual IA

Don't add more breadcrumb levels than your information architecture supports. I've seen five-level breadcrumbs on sites with three real structural levels. The extra levels were tags, filters, or session state that changed on every visit.

Breadcrumbs represent stable hierarchical relationships. If the path changes based on how a user arrived, you're not showing hierarchy — you're showing history. That's fine, but call it a history trail and style it differently. Don't pretend it's structure when it's navigation state.

Every level in your breadcrumb should correspond to a real, persistent structural parent in your content model. If you can't answer "what is the parent of this page" with a single, consistent answer, you don't have a hierarchy. You have a network, and breadcrumbs won't help.

Breadcrumbs make IA problems visible

This is actually useful. Adding breadcrumbs before your structure is solid is diagnostic. When your breadcrumbs look wrong, they're telling you something true about your site.

If two pages in the same section show different breadcrumb depths, your section isn't coherent. If your breadcrumbs repeat the same label twice (Home → Products → Products → Item), you've nested something incorrectly. If users complain that breadcrumbs "don't make sense," they're right — your hierarchy doesn't make sense.

Fix the structure. Don't fix the breadcrumb display logic.

Set depth rules in your CMS

Once you know your hierarchy depth, enforce it in your content model. If articles always live exactly three levels down, your CMS should prevent editors from creating them at level two or level four. If product pages always have a department and a category parent, make those fields required and validate them.

Most CMS platforms let you set maximum nesting depth per content type. Use it. Breadcrumbs are easier to template when you know exactly how many levels you're rendering. Variable-depth breadcrumbs require more complex logic and more testing, and they're a symptom of structural ambiguity that will cause problems elsewhere.

The breadcrumb is the visible output. The depth model is the structural input. Build the model first. The breadcrumb will follow.

← All posts