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.
4. Breadcrumbs as an internal link system
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
- Markup without a visible trail. BreadcrumbList JSON-LD with no visible path violates the structured-data guidelines.
- Visible trail without markup. Works for users but gives up the SERP display.
- Trail elements are not real links.
<span>instead of<a href>passes no internal link power. - Gaps or wrong order in
position. Google discards the markup if positions do not start at 1 without gaps. - History-based breadcrumbs with markup. The path differs per user and is meaningless to Google.
- 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
- Visible, clickable breadcrumb trail on all sub-pages.
- Hierarchical type, not history-based.
- Valid BreadcrumbList markup mirroring the visible trail exactly.
positionwith no gaps from 1.- All levels but the current one as real
<a href>with an absolute URL. - Trail, URL structure and canonical tell the same hierarchy.
- Markup labels identical to the visible text.
- 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.