Breadcrumbs: Orientation, Snippet and Structure

Breadcrumbs are the small trail at the top of a page: Home › Men › Shoes › Running Shoes. They look like a detail, but they do three separate jobs at once – orientation, display in search, and internal structure. This guide shows how to build them so all three work.

1. The three jobs of a breadcrumb

Job Effect What it depends on
Orientation Users see where they are and step back a level A visible, clickable trail
SERP display Google shows the path instead of the bare URL in the snippet Valid BreadcrumbList markup
Internal structure Strengthens parent pages and explains the hierarchy Real <a href> to each level

These three are independent. A pretty but JavaScript-loaded breadcrumb does job 1 and misses 2 and 3. JSON-LD alone with no visible trail is a policy violation. Only the combination of a visible, linked trail and matching markup serves all three.

2. Three types – only one is good

Type Principle Verdict
Hierarchical Shows the fixed position in the site structure Recommended – stable and machine-readable
Attribute-based Builds the trail from chosen filters Use with care – can clash with facets
History-based Shows the user’s click path (“back to …”) Worthless for SEO – differs per user, not crawlable

For search engines only the hierarchical variant counts, because it gives every URL the same, unambiguous path. History-based breadcrumbs (“you came from search”) are pure UX features and should carry no markup.

3. The BreadcrumbList markup

Google shows the path in the search result only when a valid BreadcrumbList object is present. Its structure is an ordered list of ListItem entries with a running position:

Field Purpose
itemListElement The ordered list of levels
position Rank, starting at 1, ascending with no gaps
name The level’s label, as shown
item Absolute URL of the level (optional on the last)

Ground rule for structured data: the markup must mirror the visible trail exactly. Labels and order in the JSON-LD must match the trail on the page. Markup that claims a different hierarchy than the visible one is a policy violation and can cost the rich-result eligibility.

The last level – the current page – is usually not linked. All other levels carry an item with an absolute URL. Every article page in this wiki uses exactly this pattern.

The most underrated benefit: a hierarchical breadcrumb is a highly consistent internal link system. Every detail page automatically links its parents – category and parent category – with descriptive anchor text. Across thousands of product pages this creates thousands of additional, topically precise links to the important category pages.

For this effect to occur, the trail elements must be real <a href> in the rendered DOM – not <span onclick> constructs. Only real links pass link equity and crawl priority to the parent pages.

5. Consistency with URL and structure

The breadcrumb should mirror the actual page hierarchy – and that hierarchy should show up in the URL structure. Ideally three things run in parallel:

  • The visible trail: Home › Men › Shoes › Running Shoes
  • The URL: /men/shoes/running-shoes
  • The BreadcrumbList markup with the same levels

When products live in several categories, pick one primary path per page – the same one the canonical implies. Inconsistent breadcrumbs for the same URL send contradictory hierarchy signals.

6. Common mistakes

  1. Markup without a visible trail. BreadcrumbList JSON-LD with no visible path violates the structured-data guidelines.
  2. Visible trail without markup. Works for users but gives up the SERP display.
  3. Trail elements are not real links. <span> instead of <a href> passes no internal link power.
  4. Gaps or wrong order in position. Google discards the markup if positions do not start at 1 without gaps.
  5. History-based breadcrumbs with markup. The path differs per user and is meaningless to Google.
  6. Markup label differs from the visible text. They must be identical, or it is a policy violation.

Pro tip: Rank-O-Saur lists all structured data on a page. Check that the BreadcrumbList is present, that the position values have no gaps and that the name entries match the visible trail exactly – the three points where rich results most often fail.

7. Checklist

  1. Visible, clickable breadcrumb trail on all sub-pages.
  2. Hierarchical type, not history-based.
  3. Valid BreadcrumbList markup mirroring the visible trail exactly.
  4. position with no gaps from 1.
  5. All levels but the current one as real <a href> with an absolute URL.
  6. Trail, URL structure and canonical tell the same hierarchy.
  7. Markup labels identical to the visible text.
  8. One primary path per page, even with multiple categories.

8. Frequently Asked Questions

Are breadcrumbs a ranking factor?

Not as a standalone factor, but they work through two confirmed routes: they create internal links to parent pages with descriptive anchor text, and they enable the path display in the snippet, which can improve click-through. Both feed visibility indirectly.

Do I need visible breadcrumbs or is the markup enough?

You need both. Markup with no visible trail violates Google’s structured-data guidelines. The visible trail is the foundation; the markup makes it usable in the search results.

Should the current page be linked in the breadcrumb?

Usually not. The last level – the page you are on – is shown as non-clickable text. All preceding levels are real links to their respective URL.

Which format should I use for the markup?

JSON-LD is Google’s recommended format and the easiest to maintain, because it sits in the <head> separate from the visible HTML. Microdata also works but is more error prone, since it is woven into the layout markup.

What do I do if a product is in several categories?

Pick one primary path and show it consistently – the same one the canonical implies. Switching breadcrumbs for the same URL send contradictory hierarchy signals and should be avoided.

Are history-based breadcrumbs bad?

They can help user guidance, but for SEO they are worthless. Because the path varies with where the user came from, it is not crawlable and should carry no BreadcrumbList markup. For search, the hierarchical path is always what counts.

Read next

Christoph Hein, Head of SEO and search consultant
About the Author

Christoph Hein

Head of SEO at Popken Fashion Group & independent Search Consultant

Christoph has spent 10+ years in search, currently steering organic strategy for 5 fashion brands across 13 countries and more than 30 domains. Alongside his in-house and consulting work, he founded niche content portals such as Angelmagazin.de and BaristaCompass.com, and built the Rank-O-Saur extension to make technical SEO audits effortless. Every guide here is grounded in hands-on, data-driven practice rather than theory.