Plenty of sites get along fine without breadcrumbs. The trouble starts once a catalog or a content library grows past two or three levels, because a visitor arriving from a search result lands somewhere deep with no idea what sits above them.

That strip of small links above the page title is the fix. It marks where a page sits inside the site’s hierarchy and links back to every parent above it.

Ecommerce catalogs and documentation libraries lean on the pattern hardest. Multi-level blogs use it too, though the stakes are lower there. Anywhere a single search result can drop someone four levels deep, the trail is doing real work.

Baymard Institute’s 2013 ecommerce usability benchmark is worth a look before you assume this is a solved problem. It found that 23 percent of major online stores shipped with no breadcrumb trail at all, and 45 percent offered only one type instead of the combined hierarchy and history trail its research recommends.

What Are Breadcrumbs

The name borrows from Hansel and Gretel, where a trail of crumbs marked the path home. Web breadcrumbs do the same job inside a browser window, showing a visitor where they sit in the site’s hierarchy with clickable links back to every parent page above the current one.

It is not the main menu, and it should never try to be. It sits below the menu, does far less work, and answers one question: where am I right now?

Most trails follow the logic of a taxonomy, narrowing from a broad category down to the exact page someone landed on. That mirrors how the information architecture is organized behind the scenes.

  • Shows the current page’s exact position in the site hierarchy
  • Links back to every parent category in that path
  • Sits apart from the primary menu, never replacing it

The whole thing is a small piece of a much larger user interface decision, trading a bit of header space for orientation.

Nielsen Norman Group researchers have recommended breadcrumb navigation since 1995, well before it became a standard pattern. The reasoning has not changed much since. It is a cheap usability win that doubles as a wayfinding aid on any site with more than two levels of depth.

How Breadcrumb Navigation Works

How breadcrumb navigation works on a page

Nobody types these out by hand on every page. The trail is generated from the site’s URL structure or its content hierarchy.

Each segment is a real, clickable HTML link pointing to a parent page one level up. The final segment, the current page, stays as plain text. Linking to the page someone is already looking at serves nobody.

Three things have to exist underneath before any of this works. The site needs a defined taxonomy or category structure, consistent parent-child relationships across pages, and a URL structure or CMS that exposes that structure cleanly.

What is shaping UX design today?

Uncover the newest UX design statistics: user behavior, design trends, ROI data, and insights driving better digital experiences.

Check Them Out →

Without a clear hierarchy to pull from, there is nothing for the trail to represent. A flat site with no categories has no real breadcrumb path to build, and no plugin will invent one for you.

What you get out of it is a click path back to any ancestor level, not just the one directly above. Someone four levels deep can jump straight to level one in a single click rather than clicking back through each page in sequence.

That shortcut is the entire point. It turns a multi-step retreat into one decision, and it quietly improves the overall user experience along the way.

What Are the Types of Breadcrumbs

Structural trails come from the site’s permanent architecture. Attribute-based ones are assembled from whatever filters a visitor applied. History-based trails just record where that person clicked, session by session.

They are not interchangeable, and swapping one for another produces a trail that misrepresents the site’s actual structure.

TypeHow It FormsBest Use CaseExample Path
StructuralFixed site hierarchyBlogs, documentation, static contentHome > Guides > Web Design
Attribute-basedApplied filters and facetsEcommerce category and filter pagesHome > Shoes > Size 10 > Blue
History-basedThe visitor’s own click pathSearch results, session-driven browsingHome > Search > Back to Results

Structural Breadcrumbs

Location-based structural breadcrumbs

Sometimes called hierarchy-based, these mirror the permanent architecture of a site rather than the path any specific visitor took to arrive.

Two people landing on the same page from completely different searches see an identical trail. The trail describes the page’s fixed place in the taxonomy, not anyone’s session.

  • Stays consistent regardless of entry point
  • Matches the URL structure in most implementations
  • Easiest type to represent cleanly in structured data

Search engines rely on this format most, since it maps directly onto the hierarchy behind it. If you only implement one type, make it this one.

Attribute-Based Breadcrumbs

These get built from filters instead of folders. A visitor narrows a catalog by size, color, price, or some other facet, and the trail records each filter as its own step.

Ecommerce sites lean on this constantly. A shopper filtering shoes by size and color produces a trail no static category page shows on its own, because that exact combination only exists in that moment.

Baymard Institute’s usability testing bench for category navigation has included Amazon, IKEA, REI, and Newegg, four sites where filtered product trails carry real navigational weight.

History-Based Breadcrumbs

History-based trails track where a visitor personally clicked, not where the page sits in the taxonomy.

A search results page is the clearest case. The trail reads something like Home, Search Results, Product, and clicking Search Results drops the visitor back into their actual query instead of some generic category.

The format falls apart in two ordinary situations. Open the page in a new tab and there is no prior click to reference. Arrive from a bookmark or a shared link and the same problem shows up.

Most implementations build this with JavaScript tracking the active session, which is exactly why it collapses once that session context is gone.

Jakob Nielsen has argued for years that history breadcrumbs largely duplicate what the browser’s back button already does. Hard to disagree. Structural and attribute-based trails sidestep that criticism because they describe the site rather than the session.

Where Breadcrumbs Should Be Placed on a Page

Breadcrumb placement on the Macy's website

Standard position is directly below the header and above the page’s main heading, in that small band of space before the real content starts.

The placement is not arbitrary. It matches how people scan, moving in the top left heavy pattern researchers describe as F-pattern reading, so the trail sits where the eye already lands first.

Where Breadcrumbs Appear on the Page

A few placement rules hold across most sites.

  • Below the primary navigation, never inside it
  • Above the page title, not beside or under it
  • Left aligned in left to right languages
  • Never floating over content or a hero image

Nielsen Norman Group’s guidelines are consistent here. Breadcrumbs belong below the main menu and above the heading, which signals they are a secondary aid rather than the primary way to move around.

Breadcrumb Separators and Visual Style

A separator character sits between each link. The choice comes down to legibility more than convention, and honestly, most visitors will never notice which one you picked.

  • Slash, the most neutral and common choice
  • Arrow or chevron, easier to read at small sizes
  • Bullet or pipe, used mostly in minimalist layouts

On a narrow screen the full viewport rarely has room for a long trail, so truncating to the immediate parent or letting the trail scroll horizontally is common practice.

Baymard Institute’s mobile research on ecommerce product pages found that among sites which already display breadcrumbs, 36% fail to show the full category hierarchy on the mobile version of the page, leaving visitors without the complete path.

How Breadcrumb Schema Markup Works

Breadcrumb schema is a separate, invisible layer of code telling search engines the same hierarchy a visitor already sees in the trail on the page.

The vocabulary comes from schema.org, under a type called BreadcrumbList. Google’s developer documentation states that a BreadcrumbList must contain at least two ListItem entries to qualify for display.

Every ListItem carries a name (the visible label for that step), a position (its numeric place in the sequence), and a URL, except on the final item in the list.

Google’s documentation also notes something easy to miss. The homepage and the current page do not need their own ListItem entries, since the list only has to represent the steps in between.

JSON-LD is the format Google recommends over Microdata or RDFa here. It lives in a script block, separate from the visible breadcrumb HTML, which means the two have to be kept in sync by hand or by template logic.

A mismatch between them, where the visible trail says one thing and the JSON-LD says another, is one of the more common ways this markup breaks silently. Nobody notices until Search Console starts complaining weeks later.

How Breadcrumbs Affect SEO

The effect on search performance is indirect. It comes through structure and eligibility, not a direct ranking boost, and anyone promising otherwise is selling something.

A handful of numbers frame the current state of things.

  • JSON-LD structured data now appears on 41% of web pages, up from 34% in 2022 (HTTP Archive Web Almanac, 2024)
  • A valid BreadcrumbList needs a minimum of two ListItem entries to qualify for rich result display (Google Search Central documentation)
  • Google removed the breadcrumb trail from mobile search result snippets in January 2025, while keeping it unchanged on desktop (Search Engine Land, Search Engine Journal, 2025)
  • Breadcrumb structured data errors surface inside a dedicated Breadcrumbs report in Google Search Console

Google’s structured data guidelines say plainly that markup is not a ranking factor on its own. What it does is make a page eligible for a specific rich result, sometimes still called a rich snippet, and give crawlers a cleaner path through the site.

That mobile change matters more for expectations than for strategy. The markup still confirms hierarchy to crawlers and still qualifies desktop listings for the rich result, even though the visible trail on a phone now shows only a domain name.

Internal link distribution is the quieter benefit, and probably the more valuable one. Every breadcrumb link sends authority from a deep page back up to its parent category. That shortens crawl paths, helps search engines spend crawl budget more efficiently on large sites, and spreads varied anchor text around instead of repeating the same phrase in every internal link.

Breadcrumbs vs Main Navigation and Sitemaps

All three help a visitor move around a site. They solve different problems, though, and none of them substitutes for the other two.

Main navigation shows every available option. Breadcrumbs show only the one path a visitor is currently standing on. A sitemap lists the entire site at once, options and location included, with no sense of where anyone actually is.

What breadcrumbs give you, and where they stop:

  • Show exact current position within the hierarchy
  • Take up minimal header space
  • Fail on flat sites with no real hierarchy to represent

Main navigation works differently. It surfaces every section a visitor could jump to and does so from any page regardless of depth, but it needs a visible location cue to be genuinely useful, and most sites skip that part.

On mobile the menu usually collapses behind a hamburger menu, hidden until someone taps. That is the moment a breadcrumb trail earns its space, staying visible without requiring a single tap.

Baymard Institute’s usability benchmark found that 66% of sites fail to highlight a visitor’s current section inside their main navigation. In one documented case, a shopper who landed directly on B&H Photo’s television category page from an outside link struggled to tell where that page sat in the wider catalog. That gap is exactly what a breadcrumb trail closes.

A sitemap plays a third role entirely. It exists for discovery and for crawlers, listing every URL in one place rather than tracking anyone’s position, which is why it rarely shows up as a visible design element at all.

When Breadcrumbs Do Not Apply

Breadcrumbs earn their keep on sites with real depth. Take the structure away and the value disappears fast.

Some pages simply have nothing to show in a trail.

  • Single-level or flat sites with no categories above the page
  • Portfolio sites and small brochure sites with five or six pages total
  • Any page that already sits at the top of its own hierarchy

A dedicated landing page built for a single ad campaign is another case worth calling out. The trail only adds visual noise to a page with nowhere else to send anyone.

On a WordPress site built that way, switching the breadcrumb trail off is usually a quick settings change rather than a code rewrite.

History-based trails carry their own failure case. Once the session context is gone, there is nothing accurate left to display, so forcing one onto a site with no real browsing history to track just invents a path that never happened.

Valid schema markup does not guarantee a rich result either. Google draws that line for every structured data type it supports, breadcrumbs included. Eligibility is not a promise of display, and a page can pass every validation check and still show up as a plain blue link.

How to Add Breadcrumbs to a Website

Build order matters more than the platform you are on. Get the sequence wrong and the trail either shows the wrong path or breaks the moment content moves.

  1. Confirm the category hierarchy is finalized and unlikely to shift
  2. Build the visible trail from that hierarchy, not from the URL alone
  3. Add the BreadcrumbList markup last, matching the visible trail exactly

WordPress

Almost entirely a plugin and configuration job here.

  • Yoast SEO generates the trail and its schema together from a settings panel, no code required
  • Rank Math offers the same pairing through its own breadcrumb module
  • Breadcrumb NavXT focuses purely on breadcrumbs for sites that don’t want a full SEO plugin

Most themes expect a shortcode or template tag to place the trail, so the plugin handles generation while the theme decides where it renders.

Shopify

Shopify does not ship a default breadcrumb trail in most themes, which surprises a lot of store owners coming over from WordPress.

Two paths cover most stores.

You can edit the theme directly, adding Liquid code to product and collection templates that loops through the category path. Or an app such as Collection Breadcrumbs generates the trail and its JSON-LD schema automatically, without touching theme files.

The manual route gives more control over exact wording and styling. The app route trades that control for speed and fewer broken templates after a theme update. I’d take the app on a store with an active theme update cycle, and the manual build on anything custom.

Custom HTML and CSS

On a hand-built site the trail is just a nav element wrapped around an ordered list of links. That’s it.

The stylesheet handles separator characters between links, spacing and alignment and hover states, plus which levels collapse or hide on narrow screens. All of it comes from CSS the same way any other navigation component would be styled, not from the markup.

On smaller screens, developers often hide the earliest levels of a long trail below a set width using media queries, leaving only the immediate parent and the current page visible.

The BreadcrumbList JSON-LD block goes in separately, once the visible version is finalized and unlikely to change.

How to Make Breadcrumbs Accessible

A trail that only works visually leaves out anyone using a screen reader or navigating by keyboard alone.

The W3C’s WAI-ARIA Authoring Practices Guide defines the pattern precisely. Wrap the trail in a nav element, labeled so assistive technology identifies it as a distinct navigation region rather than folding it into the main menu.

Three pieces of markup do the work. A nav element with aria-label=”Breadcrumb”, separate from the primary navigation’s own label. The links structured as an ordered list inside that nav. And aria-current=”page” applied to the final item in the trail.

That final item stays reachable without necessarily being a clickable link. When it isn’t a link, aria-current becomes optional, since there is no interactive element left to mark.

WCAG backs this at the standards level. Success Criterion 2.4.8, titled Location, sits at Level AAA, the strictest conformance tier, and lists a breadcrumb trail as one of the sufficient techniques for meeting it.

Distinguishing the breadcrumb’s ARIA label from the main menu’s matters more than it looks. Screen reader users jump between landmark regions by name, and two navigation regions sharing an identical label turn that jump into a guessing game.

Keyboard focus order should follow reading order. Someone tabbing through the page reaches the breadcrumb links before the main content, the same order a sighted visitor scans in.

None of this replaces broader web accessibility work elsewhere on the page. It covers one component.

Common Breadcrumb Mistakes

Most breadcrumb failures have nothing to do with picking the wrong type. They come from small inconsistencies between what a visitor sees and what the code says.

Search Console flags two errors more than any others. Missing field ‘item’, which is the URL for a given step, and missing field ‘itemListElement’, the array holding the whole list.

Both usually trace back to the same root cause. The JSON-LD block was written by hand or by an older plugin version and never updated to match a later template change.

Other mistakes show up long before schema enters the picture.

  • Duplicating the main navigation instead of supplementing it
  • An inconsistent hierarchy, where the same category sits under two different parents depending on the page
  • Parent links left pointing at old URLs after a site restructure

That last one is common after a category gets renamed or merged. The trail keeps linking to a page that now 404s or redirects somewhere unrelated, quietly sending both visitors and crawlers down a dead path.

Some sites skip the trail entirely even where it clearly belongs. L.L.Bean’s product pages have gone without any breadcrumb navigation at all, leaving shoppers no path back to the category they came from short of the browser’s back button.

An inconsistent hierarchy does more than confuse people. It sends conflicting signals to crawlers about which category actually owns a page, undercutting the same internal link distribution breadcrumbs are supposed to strengthen.

How to Validate Breadcrumb Markup

Markup that looks fine in the code editor can still fail once Google parses it. Validation catches that gap before a template change ships to every page on the site.

Before publishing, run the page through Google’s Rich Results Test and confirm the breadcrumb result appears with no errors. Then compare the parsed output against the visible trail item by item, and check that position values are sequential, start at 1, and contain no gaps or repeats.

The Rich Results Test replaced Google’s older Structured Data Testing Tool, which the company began phasing out after the newer tool came out of beta in July 2020. Google recommends the newer tool specifically because it mirrors what Search Console reports, rather than validating against the broader schema.org spec in isolation.

After launch the work shifts from testing to monitoring. Search Console’s Breadcrumbs report keeps tracking the same pages, flagging errors that appear after a theme update, a plugin change, or a category restructure.

Re-testing is not a one-time step. Any change to URL structure or category hierarchy is reason enough to run the check again, since a passing result today says nothing about a template someone edits next month.

FAQ on What Are Breadcrumbs

What Is Breadcrumb Navigation Also Called?

Breadcrumb trail is the most common alternative. Cookie crumb nods directly to the fairy tale origin, and older CMS documentation sometimes labels it a path bar.

Where Does the Term Breadcrumb Come From?

The name borrows from Hansel and Gretel, where a trail of crumbs marked the path home. Software reused that image well beyond websites, in file managers, mobile apps, and desktop programs, wherever someone retraces a path through nested folders or screens.

Do Breadcrumbs Affect Crawl Budget?

Crawl budget mainly matters on very large sites, past a few thousand pages. Breadcrumbs help indirectly, giving crawlers short, repeatable paths back to parent categories. They don’t change how much budget Google allocates, only how efficiently that budget moves through deep pages.

Do Breadcrumbs Improve Bounce Rate or Session Length?

No published Google or Baymard figure ties breadcrumbs directly to bounce rate or session length. The effect is indirect. Fewer clicks back to a parent category usually keeps a visitor browsing instead of leaving entirely.

How Do You Add Breadcrumb Schema to a Shopify Store?

The JSON-LD BreadcrumbList block gets pasted directly into a theme’s product template, usually main-product.liquid, inside the page head. Shopify’s Liquid variables fill in product and collection names automatically, so one dynamic block covers every product page instead of one per item.

Do Breadcrumbs Work the Same Way on Mobile?

Baymard’s mobile research confirms breadcrumb links need to be genuinely tappable, not just visible. Apple’s Human Interface Guidelines set the reference tap target at 44 by 44 points, a useful baseline for spacing breadcrumb links on a small screen.

Where the Breadcrumb Pattern Breaks Down

The pattern breaks down once content gets organized by multiple independent tags rather than a single category tree. A recipe tagged by cuisine, diet, and meal type at once has no one parent path a trail can honestly represent.

Baymard’s mobile and navigation research point at the same gap from two angles. Sites hiding the full category path on small screens are largely the same sites whose main navigation never marks a visitor’s section, so a broken trail rarely fails alone.

Fix it in a fixed order, because strengthening navigation before settling the canonical path treats a symptom instead of the cause.

  • Pick one facet as the canonical path for the trail
  • Mark that same section inside the main navigation
  • Add a secondary aid for the remaining facets

That secondary aid is usually a sidebar navigation panel, built for exactly the facets a breadcrumb trail cannot show in one line.

Bogdan Sandu
Latest posts by Bogdan Sandu (see all)