BreadcrumbList Schema

How to implement BreadcrumbList structured data to drive breadcrumb display in Google search results, the relationship between schema.org/BreadcrumbList and real HTML breadcrumb navigation, and how to test it.

First published: Jun 27, 2026 · Last updated: Jul 17, 2026 · Advanced
demand #22 in Structured Data#51 in On-Page#240 in Technical SEO#324 on the site
1 evidence signal on this page

BreadcrumbList is the schema.org type that marks up a page's breadcrumb trail (Home > Category > Page) as JSON-LD. It does two jobs: it can drive a readable breadcrumb path in Google's search snippet in place of the raw URL, and — per Google's own docs — it's a categorization signal Google reads from the page body, which is why the same page can surface under different breadcrumb paths for different queries. The required shape is a BreadcrumbList holding an ordered itemListElement array of ListItems, each with position, name, and item — item is optional only on the final (current-page) entry. Google explicitly recommends breadcrumbs reflect a typical user path, not necessarily your URL folder structure, and you can skip a ListItem for the homepage and the current page. It's not a ranking factor, valid markup never guarantees the rich display, and there's genuine, unsettled disagreement in 2026 about how consistently Google still shows breadcrumbs in the SERP — so implement it for the categorization value and low cost, and check your own results rather than trusting secondhand claims.

TL;DR — BreadcrumbListBreadcrumbs are a secondary navigation trail (Home > Category > Page) that shows where a page sits in a site's hierarchy. They create internal links that pass PageRank, and when marked up with BreadcrumbList structured data they can drive the path Google shows in desktop search results. marks up a page’s breadcrumb trail as structured dataStructured data is a standardized way of labeling page content (using the schema.org vocabulary in JSON-LD, Microdata, or RDFa) so search engines can understand its meaning. It's not a direct ranking factor — its value is rich results and entity understanding. (JSON-LDJSON-LD (JavaScript Object Notation for Linked Data) is a script-based structured data format, typically paired with the schema.org vocabulary to describe page content for search engines and AI systems. Google recommends it over Microdata and RDFa because it's the easiest format to implement and maintain at scale — but all three work, and structured data isn't a ranking signal. recommended; Microdata/RDFa also supported). It does two jobs: it’s eligible to render a breadcrumb path in Google’s snippet in place of the URL, and — in Google’s words — Google “uses breadcrumb markup in the body of a web page to categorize the information from the page in search results,” which is why one page can surface under different trails for different queries. Required shape: BreadcrumbList.itemListElement is an ordered array of ListItems, each with position, name, and itemitem is optional only on the final (current) item. Google recommends the trail reflect a typical user path, not the URL structure, and says you can omit a ListItem for both the homepage and the current page. It’s not a ranking signal, valid markup never guarantees the rich display, and rich-result eligibility runs through Mueller’s three layers (valid markup → policy compliance → site-quality trust). Whether Google still reliably shows breadcrumbsBreadcrumbs are a secondary navigation trail (Home > Category > Page) that shows where a page sits in a site's hierarchy. They create internal links that pass PageRank, and when marked up with BreadcrumbList structured data they can drive the path Google shows in desktop search results. in the 2026 SERP is genuinely disputed — implement it anyway (categorization value, low cost, no downside) and check your own results.

What it is, precisely

BreadcrumbList is a schema.orgSchema markup is code that uses the schema.org vocabulary to label what your content means so search engines can understand it and show rich results. It's most often written in JSON-LD, and it's not a direct ranking factor. type. schema.org defines it as “an ItemList consisting of a chain of linked Web pages, typically described using at least their URL and their name, and typically ending with the current page.” In practice you build a BreadcrumbList whose itemListElement is an ordered array of ListItem entries — one per step in the trail. Evidence for this claim Google's breadcrumb examples use ordered ListItem entries with position, name, and item, with documented flexibility for the final item. Scope: Google Search breadcrumb feature requirements; schema.org permits a broader vocabulary. Confidence: high · Verified: Google: Breadcrumb structured data

You can express it in JSON-LDJSON-LD (JavaScript Object Notation for Linked Data) is a script-based structured data format, typically paired with the schema.org vocabulary to describe page content for search engines and AI systems. Google recommends it over Microdata and RDFa because it's the easiest format to implement and maintain at scale — but all three work, and structured data isn't a ranking signal., Microdata, or RDFa. JSON-LD is the format Google recommends and the one I’d default to: it lives in a single script block, doesn’t tangle with your visible markup, and is the easiest to template and debug.

The two jobs breadcrumb markup does

This is the framing most competitor pages miss — they jump straight to “paste this JSON-LD.” Breadcrumb markup does two separate things:

1. It’s eligible for a rich SERP display. Google can render the breadcrumb trail in the search snippet in place of the raw URL. Note the word eligible — having valid markup makes you a candidate, it does not guarantee the display (more on that below).

2. It’s a categorization signal Google reads internally. Straight from Google’s docs: “Google Search uses breadcrumb markup in the body of a web page to categorize the information from the page in search results.” This is the underrated half. It’s why the same URL can appear under different breadcrumb trails for different queries — Google is using the trail as context, not just decoration. That value exists even on queries where no visible breadcrumb ever renders.

Concretely, Google’s own documentation shows this as multiple separate BreadcrumbList objects on the same page — one complete JSON-LD block per path a user might realistically take to reach it — rather than one trail that somehow adapts itself per query. If a page is genuinely reachable through more than one category (a common ecommerce case), mark up each path as its own BreadcrumbList and keep every alternate trail independently valid — each still needs every ListItem to carry its own position, name, and item per the rules below. Don’t treat one “primary” trail as covering the categorization value for paths it doesn’t actually describe.

Required and optional properties

Here’s the accuracy spine — get this right and the rest is detail.

Required:

  • BreadcrumbList.itemListElement“An array of breadcrumbs listed in a specific order.” This is the ordered list of steps.
  • ListItem.position“The position of the breadcrumb in the breadcrumb trail. Position 1 signifies the beginning of the trail.” Start at 1 and increment.
  • ListItem.item (with a name) — the URL (and label) for each step. This is required for every item except the last one, which is the current page and can omit the URL.

Google puts the last-item exception plainly: “It is not required to include a breadcrumb ListItem for the top level path (your site’s domain or host name), nor for the page itself.” So both the homepage and the current page are optional to include — a genuinely common misconception is that you must have them.

A valid trail needs at least two ListItems to be meaningful — a single-step “breadcrumb” isn’t a trail.

TIP Validate every step before templating the trail site-wide

Position alone is not enough: intermediate items need readable names and absolute URLs, while only the final item may omit its URL.

Build the trail and resolve item-level errors with my free Schema Markup Generator Free

  1. Enter the typical user path in 1-based order.
  2. Give every item a visible label and every non-final item an absolute URL.
  3. Validate one representative page before applying the template across the site.
The three findings pinpoint which list item breaks the trail and preserve the final-item URL exception.

The generator reports three issues: crumb 1 needs a name, crumb 1 needs a URL because only the last item may omit it, and crumb 2 has an invalid URL. The code preview shows three ListItems with positions 1 through 3.

User path vs. URL structure

This is the nuance worth internalizing, because Google states it explicitly and most guides skip it: “We recommend providing breadcrumbs that represent a typical user path to a page, instead of mirroring the URL structureURL structure is how the parts of a web address — scheme, domain, path, query string, and fragment — are organized and formatted. It mostly affects crawling, usability, and how engines understand a page, not rankings directly..”

Evidence for this claim Google recommends breadcrumbs that represent a typical user path rather than simply mirroring the URL structure. Scope: Google Search breadcrumb guidance; sites should choose an accurate navigational path. Confidence: high · Verified: Google: Breadcrumb structured data

In other words, the breadcrumb trail is a navigational statement, not a directory one. Where these diverge — flat URL structuresURL structure is how the parts of a web address — scheme, domain, path, query string, and fragment — are organized and formatted. It mostly affects crawling, usability, and how engines understand a page, not rankings directly. with deep categorization, tag pages, or heavily faceted navigationFaceted navigation (faceted search, product filtering) lets visitors refine a list of products or content by attribute — price, color, size, brand, rating. The SEO problem: each filter combination can spawn a distinct crawlable URL, turning a small catalog into millions of near-duplicate pages that waste crawl budget and dilute ranking signals. where a product is reachable through many paths — mark up the path a user would actually take, not the folders in the URL. This matters most on ecommerce sites, where a single product legitimately lives under multiple category paths (which is also, not coincidentally, a place where faceted navigationFaceted navigation (faceted search, product filtering) lets visitors refine a list of products or content by attribute — price, color, size, brand, rating. The SEO problem: each filter combination can spawn a distinct crawlable URL, turning a small catalog into millions of near-duplicate pages that waste crawl budget and dilute ranking signals. and URL structure get messy). Pick the primary user path for that page’s markup.

It is not a ranking factor

Say it plainly, because “does it help rankings?” is one of the most common searcher questions: nothing in Google’s guidance ties BreadcrumbList to rankings. It affects SERP presentation and internal categorization — not ranking position. Adding it won’t move you up; not having it won’t hold you down. The reason to implement is the categorization signal plus the potential display, at a low implementation cost.

Validating and rolling it out

Google prescribes a straightforward workflow:

  1. Add the required properties in your chosen format, following Google’s placement guidance.
  2. Validate with the Rich Results Test and fix any critical errors.
  3. Deploy on a few pages first, confirm with URL InspectionA Google Search Console feature that reports how Google sees one specific URL on a property you own. By default it shows the last-indexed snapshot; a separate \"Test live URL\" mode fetches the current version. in Search ConsoleA free Google service that reports how a site performs in Google Search and surfaces problems with how Google crawls, indexes, and serves it. It's first-party data straight from Google — but you don't need it to appear in results., then roll out site-wide.

Search ConsoleGoogle's free tool for monitoring crawling, indexing, and search performance. has a dedicated Breadcrumbs enhancement report that surfaces errors and warnings across your site once it’s live — that’s where you monitor ongoing health.

Why isn’t my breadcrumb rich result showing?

Valid markup is necessary but not sufficient. John Mueller has laid out a useful three-layer model for rich-result eligibility generally (paraphrasing his framing): first, the markup has to be technically valid; second, it has to comply with Google’s structured-data policies; and third, there’s a broader, usually site-wide quality/trust signal — whether Google trusts your site enough to show enhanced resultsRich results (formerly 'rich snippets') are enhanced search listings — stars, images, prices, breadcrumbs, video thumbnails, and more — that Google and Bing build from structured data. They're a display feature, not a ranking factor, and eligibility never guarantees they'll show. from your structured data at all.

Mueller has also offered a rough diagnostic: run a site: query for your own domain and see whether the rich resultsRich results (formerly 'rich snippets') are enhanced search listings — stars, images, prices, breadcrumbs, video thumbnails, and more — that Google and Bing build from structured data. They're a display feature, not a ranking factor, and eligibility never guarantees they'll show. show there. Roughly, if the enhancement appears for site: queries but not for normal ones, that points less at your markup and more at a site-quality/trust issue than a technical one.

On breadcrumbs specifically, Mueller has downplayed policy risk — his gist being that breadcrumbs are one of the harder structured-data types to get wrong in a way that trips policy, since a breadcrumb trail is a fairly literal thing. Treat that as reassurance that if your breadcrumb rich result isn’t showing, the cause is more likely the display/quality layer than a policy violation in the breadcrumb markup itself.

The one policy backstop that does apply: Google’s general structured data guidelines require markup to reflect real, on-page content. Don’t fabricate a breadcrumb trail that doesn’t match your actual site structure to game a rich result — markup that deviates from the guidelines can, in principle, trigger a manual action.

Does Google still show breadcrumbs in the SERP? (an honest 2026 answer)

This is where I want to be careful rather than confident, because the sources genuinely disagree. Some 2025–2026 posts claim Google removed breadcrumb display (desktop first, then mobile); other 2026-dated guides describe BreadcrumbList as one of the more stable schema types with the trail still appearing. Google’s own breadcrumb documentation, as of mid-2026, still scopes the feature to “desktop in all regions and languages where Google Search is available” and carries no deprecation notice.

I’m not going to resolve that disagreement with a flat “Google shows this” or “it’s dead” — the display side is visibly in flux and secondhand claims (some citing image-embedded screenshots or single-region observations) aren’t a reliable basis. My recommendation is decision-first: implement it regardless. The categorization value doesn’t depend on the visible trail renderingTurning HTML, CSS, and JavaScript into the final visual page and DOM., the implementation cost is low, and there’s no downside. Then check your own SERPs for your own query set — on the surfaces and regions you care about — rather than trusting a blog post’s screenshot. That’s the honest posture on a live, unsettled question.

(If you specifically want the navigation-and-UX angle — visible breadcrumbs as internal linksAn internal link is a hyperlink from one page on a website to another page on the same website. Internal links help search engines discover your pages and pass ranking signals (PageRank and anchor-text context) between them., PageRankPageRank is Google's original recursive link-graph algorithm: a page's score depends on the scores of the pages linking to it, and in the published model each page's score is split across its outbound links (the simplified version: links are weighted votes). Google says it's evolved since launch but still part of its core ranking systems. flow, accessibility — that’s a sibling topic on this site, covered under website structureWebsite structure (site architecture) is a site's visible hierarchy, navigation, breadcrumbs, and URL organization — how pages relate and how people and search engines move between them. Internal linking is the primary signal Google reads to understand that structure, not URL folders.. This page deliberately stays on the markup.)

Bing and other engines

BreadcrumbList is a standard schema.org type, not a Google-proprietary one, and Bing has long stated it supports the schema.org vocabulary (JSON-LD, Microdata, RDFa) for structured data broadly. I didn’t find a dedicated Bing documentation page for breadcrumb schema specifically, so I’d describe Bing’s support as generic schema.org support rather than pointing you at a breadcrumb-specific Bing rich-result guarantee. The markup you write for Google is valid for Bing too; whether and how Bing renders a breadcrumb enhancement is a separate, less-documented question.

The bottom line

  • Minimum valid structure: BreadcrumbListitemListElement array of ListItems, each with position (from 1), name, and itemitem optional on the last item only.
  • Google recommends the user path, not the URL structure; homepage and current page are optional to include.
  • It’s not a ranking factor; valid markup never guarantees the display.
  • SERP display is genuinely disputed in 2026 — implement for the categorization value and verify on your own results.

Add an expert note

Pin an expert quote

New person? Create their unclaimed profile at /admin/experts/ → Pin a quote first.