- BreadcrumbList replaces the URL with a clean breadcrumb trail in Google search results, improving CTR and clarifying page context.
- Required:
itemListElementarray ofListItementries withposition,name, anditem(URL). - Hierarchy goes site root to current page. Skip the homepage entry if your visible breadcrumbs start at a category.
- The final ListItem should omit the
itemURL. It represents the current page; including a URL is allowed but conventionally omitted. - One BreadcrumbList per page is standard. Sites with multiple legitimate paths to the same page can ship multiple BreadcrumbList objects.
Chapter 1. Before you start
BreadcrumbList is one of the lowest-effort, highest-leverage schemas you can ship. The markup is small, the rich-result benefit is consistent, and Google has supported it unchanged for years.
- Confirm your visible breadcrumb hierarchy. The schema must match what's on the page. If your site shows "Home / Category / Product", the schema mirrors that exact path.
- Decide whether to include the homepage entry. Both patterns are valid; pick one and apply consistently sitewide.
- Generate breadcrumb URLs server-side. Hardcoded paths break on any URL change. Most CMSs already produce them from the page hierarchy.
- Decide handling for pages with multiple breadcrumb trails (e.g., a product reachable via two categories). Ship both BreadcrumbList objects rather than picking one arbitrarily.
position values out of order or starting at 0 instead of 1.
The fix is template-level and takes 30 minutes per CMS; the rich-result benefit applies
across every page that ships the schema.
Chapter 2. Why does BreadcrumbList matter for search?
BreadcrumbList does two things in 2026: it powers Google's breadcrumb display in SERPs (replacing the cluttered URL with a clean hierarchy), and it feeds AI engines a structured map of where the page sits in your site's information architecture.
The visible benefit is the cleaner SERP snippet. Instead of
example.com/shop/category-name/sub-cat/product-slug, Google shows
Example › Shop › Category › Sub Category. The cleaner
display correlates with higher CTR in most studies, especially on mobile where URL
truncation is aggressive.
The invisible benefit is the structured signal to LLMs. ChatGPT, Perplexity, and Google AI Overviews parse BreadcrumbList to understand the page's role in your site. A product page two clicks deep with a clear breadcrumb trail is easier for AI to contextualize than an orphan URL.
Chapter 3. Required and recommended properties
Per Google's
Breadcrumb documentation, BreadcrumbList requires itemListElement with
at least two ListItem entries. Each ListItem needs position,
name, and (for all but the last) item.
{
"@context": "https://schema.org",
"@type": "BreadcrumbList",
"itemListElement": [
{
"@type": "ListItem",
"position": 1,
"name": "Books",
"item": "https://www.example.com/books"
},
{
"@type": "ListItem",
"position": 2,
"name": "Science Fiction",
"item": "https://www.example.com/books/science-fiction"
},
{
"@type": "ListItem",
"position": 3,
"name": "Award Winners"
}
]
}
Three rules: position starts at 1 (not 0), increments by 1, and reflects the
visible left-to-right order of the breadcrumb on the page. The final ListItem
can omit item (it's the current page); including the current page's URL is
allowed but conventionally omitted.
Chapter 4. Pick the right hierarchy
Your breadcrumb schema must mirror the visible breadcrumb on the page. Google's policy explicitly: the structured data must match what users see. Three common hierarchy patterns:
| Pattern | Example | When to use |
|---|---|---|
| Site root to leaf | Home › Books › SciFi › Title | Default for most sites |
| Category to leaf (no homepage) | Books › SciFi › Title | When visible breadcrumbs skip the homepage |
| URL path matching | example.com › books › scifi › title | Avoid - URL path is not a user-friendly hierarchy |
Pick one pattern and apply it consistently. Mixing patterns across pages confuses both Google and visitors. The hierarchy should follow the user's navigation path, not the URL structure (which often differs).
Chapter 5. Handling multiple breadcrumb trails per page
Some pages are reachable through multiple legitimate paths. A product in "Books › Bestsellers" and "Books › New Releases" has two valid breadcrumb trails. Google's guidance: ship both as separate BreadcrumbList objects on the same page.
[
{
"@context": "https://schema.org",
"@type": "BreadcrumbList",
"itemListElement": [
{ "@type": "ListItem", "position": 1, "name": "Books", "item": "https://www.example.com/books" },
{ "@type": "ListItem", "position": 2, "name": "Bestsellers", "item": "https://www.example.com/books/bestsellers" },
{ "@type": "ListItem", "position": 3, "name": "Award Winners" }
]
},
{
"@context": "https://schema.org",
"@type": "BreadcrumbList",
"itemListElement": [
{ "@type": "ListItem", "position": 1, "name": "Books", "item": "https://www.example.com/books" },
{ "@type": "ListItem", "position": 2, "name": "New Releases", "item": "https://www.example.com/books/new" },
{ "@type": "ListItem", "position": 3, "name": "Award Winners" }
]
}
]
Google picks whichever trail best matches the user's query at search time. Don't ship one trail and pretend the others don't exist - that loses you ranking opportunities on category-specific queries.
Chapter 6. Where do you place BreadcrumbList?
On every page that has a visible breadcrumb trail. Embed in
<head> or before </body> inside a
<script type="application/ld+json"> tag. Either location works for
Google.
Don't ship BreadcrumbList on:
- The homepage. By definition there's nowhere to navigate up from.
- Search results, error pages, or transient utility pages. No persistent hierarchy applies.
- Pages without visible breadcrumbs. Schema must match visible content.
For sites where BreadcrumbList is part of a larger schema graph (Article, Product), you
can include it as a top-level entry in the @graph array or as a standalone
block. Both work; the standalone block is simpler and easier to debug.
Chapter 7. The breakages we see most often
Ranked by frequency across 47 ecommerce schema audits over the past 24 months:
- No BreadcrumbList schema at all: missing the simplest, highest-ROI structured data win. 26 of 47 audited stores.
positionvalues out of order or starting at 0: schema invalid, rich result blocked. 14 of 47.- Schema hierarchy doesn't match visible breadcrumbs: policy violation. 11 of 47.
- Hardcoded breadcrumb URLs that broke on URL change: 404s in the schema. 9 of 47.
- One trail shipped when multiple legitimate paths exist: missed category-specific ranking opportunities. 7 of 47.
- Final ListItem includes
itemURL pointing at the current page: technically allowed, conventionally omitted, occasionally triggers validator warnings. 5 of 47. - BreadcrumbList shipped on the homepage: hierarchy makes no sense. 3 of 47.
We track BreadcrumbList completeness through our Sentry product; the structured-data rule set catches every breakage above on running sites.
FAQ
Do I need BreadcrumbList if my site already shows visible breadcrumbs?
Yes. The visible breadcrumbs are for users; BreadcrumbList schema is for search engines and AI engines. The schema is what triggers Google's breadcrumb display in SERPs (which replaces the URL) and what AI engines parse to understand your site's hierarchy. Both have to be present and matching.
Should the homepage be in the breadcrumb?
Either pattern is valid. If your visible breadcrumb starts with "Home", include it in
the schema as position: 1. If your visible breadcrumb starts with a
category, skip the homepage entry. Apply whichever pattern you choose consistently
sitewide.
Can I have multiple BreadcrumbLists on one page?
Yes. If a product is reachable through multiple legitimate paths (e.g., via two parent categories), ship each path as its own BreadcrumbList object. Google picks the best-matching one at search time based on the user's query.
Where does BreadcrumbList go on the page?
Inside a <script type="application/ld+json"> tag in
<head> or before </body>. On every page that has
a visible breadcrumb trail. Skip the homepage, search results, and error pages.
What if my site has deep nesting (4+ levels)?
Ship the full hierarchy. There's no Google-imposed depth limit on BreadcrumbList. Some ecommerce sites have 5-6 level breadcrumbs ("Books › Fiction › Science Fiction › Space Opera › Series › Title") and Google handles them fine. Just make sure the visible breadcrumb matches.
Can BreadcrumbList hurt SEO?
Not on its own. The only way BreadcrumbList causes harm is if it doesn't match the visible content (Google policy violation, can trigger manual action) or if it has invalid syntax (positions out of order, missing required fields - rich result fails to render but no ranking penalty).
References
- Schema.org. "BreadcrumbList." schema.org/BreadcrumbList
- Google Search Central. "Breadcrumb (BreadcrumbList) structured data." developers.google.com/search/docs/appearance/structured-data/breadcrumb
- Schema.org. "ListItem." schema.org/ListItem
- Schema.org. "Schema Markup Validator." validator.schema.org
- Google. "Rich Results Test." search.google.com/test/rich-results