TechnicalSchema

Breadcrumb Schema: BreadcrumbList Guide (2026)

Breadcrumb schema is BreadcrumbList structured data that describes where a page sits in your site’s hierarchy, as an ordered list of ListItem entries, each with a position, a name and usually a URL. Google uses it to categorize the page and to show a breadcrumb trail in place of the raw URL in desktop search results. Since January 2025, Google no longer shows breadcrumbs on mobile, which changes the payoff but not the syntax.

This guide is for developers and SEOs adding or fixing breadcrumb markup. It covers the current display rules, whether the markup is still worth it, the exact properties Google requires, how to match the visible trail, and the errors that come up most.

On this page

What is breadcrumb schema?

Breadcrumb schema is markup using the schema.org BreadcrumbList type, which schema.org defines 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”. Its usage figure, based on Google’s web index, is more than 10 million domains, which makes it one of the most widely deployed types.

Google’s breadcrumb documentation explains the purpose: a breadcrumb trail “indicates the page’s position in the site hierarchy”, and Google uses the markup “to categorize the information from the page in search results”. The same page can be reached from very different queries, and the breadcrumb tells Google which section it belongs to.

It’s one of the simplest types to implement because every value already exists in your navigation. It’s also one of the easiest to get subtly wrong, because the markup and the visible trail are often built by different parts of the template.

How Google shows breadcrumbs since January 2025

On desktop, Google shows the domain followed by the breadcrumb trail. On mobile, it shows the domain only. Google announced the change on January 23, 2025, explaining that the breadcrumb “isn’t as useful to people who are searching on mobile devices, as it gets cut off on smaller screens”. The diagram below shows the difference.

The visible URL line in Google results on desktop and mobile after January 23, 2025 Two mock search results. Desktop: the visible URL line reads example.com, then Books, then Science Fiction, separated by chevrons, above the page title Award Winners. The breadcrumb portion is highlighted as coming from BreadcrumbList markup. Mobile: the visible URL line shows only example.com above the same title. A note says the change applies in all languages and regions, breadcrumb markup is still supported for desktop, the Search Console breadcrumb report continues, and the Rich Results Test still tests it. Same markup, two displays Google's visible URL line since January 23, 2025 DESKTOP example.com › Books › Science Fiction Award Winners Trail from BreadcrumbList replaces the raw URL path MOBILE example.com Award Winners Domain only; no breadcrumb All languages and regions. Markup still supported for desktop; the Search Console breadcrumb report continues; the Rich Results Test still tests it. No action required.

Scroll the diagram sideways to see all of it.

Source: Ambeltek diagram based on Google Search Central's January 23, 2025 post on simplifying the visible URL element on mobile, using the example trail from Google's breadcrumb documentation.

Google was explicit that site owners don’t need to do anything: “If you’re using breadcrumb markup, there’s nothing you need to do, as we continue to support breadcrumb markup for use in desktop search results.” The breadcrumb rich result report in Search Console continues, and the markup is still testable in the Rich Results Test. The current documentation reflects this, listing the feature as “available on desktop in all regions and languages where Google Search is available”.

Is breadcrumb schema still worth adding?

Yes, for any site with more than one level of content, as long as you don’t expect miracles. It costs almost nothing when it’s generated from the same data as your visible breadcrumbs, and it still shapes how desktop results display.

The honest trade-offs:

  • It isn’t a ranking factor on its own. Google describes the markup as a way to categorize and display the page, not to rank it.
  • Mobile visibility is gone. If most of your search traffic is mobile, the visible payoff is smaller than it was before 2025.
  • It states hierarchy explicitly. That helps engines, and AI systems reading the page, understand which section a page belongs to. Our structured data for AI search guide lists BreadcrumbList among the types worth having for that reason.
  • Google stores site-hierarchy data separately. The 2024 leak of Google’s internal API documentation, analyzed by iPullRank, includes a QualitySitemapTargetGroup.breadcrumbTarget attribute. Google stores this attribute; the leak does not show how much it is weighted, and it doesn’t say that it comes from markup.

The best argument for breadcrumbs is still the visible ones. A clear trail helps people and gives you natural internal links up the hierarchy; the markup just describes it.

A BreadcrumbList needs at least two ListItem entries, each with a position and a name, and an item URL on every entry except the last. Those are Google’s requirements from its documentation:

PropertyOnRequired?Rule
itemListElementBreadcrumbListYesAn ordered array of ListItem, at least two
positionListItemYesInteger; 1 is the start of the trail
nameListItemYesThe label shown to users (optional if item is a Thing with a name)
itemListItemYes, except lastThe URL of that level, or a Thing identified by @id

The diagram below maps a visible trail to its markup.

How a visible breadcrumb trail maps to BreadcrumbList ListItems Top: a visible breadcrumb trail on a page reads Books, Science Fiction, Award Winners. Below it, three ListItem boxes aligned with each crumb. ListItem position 1: name Books, item https://example.com/books. ListItem position 2: name Science Fiction, item https://example.com/books/sciencefiction. ListItem position 3: name Award Winners, with no item, because Google uses the current page's URL for the last item. A note says the homepage crumb is optional and the list needs at least two ListItems. One crumb, one ListItem The visible trail and the markup should say the same thing Books › Science Fiction › Award Winners visible on the page ListItem position: 1 name: "Books" item: .../books ListItem position: 2 name: "Science Fiction" item: .../books/sciencefiction ListItem (last) position: 3 name: "Award Winners" item: optional (page URL used) Homepage crumb optional. At least two ListItems. Positions start at 1.

Scroll the diagram sideways to see all of it.

Source: Ambeltek diagram based on the BreadcrumbList and ListItem definitions and example in Google's breadcrumb structured data documentation.

Here is that trail as JSON-LD, following Google’s own example:

{
  "@context": "https://schema.org",
  "@type": "BreadcrumbList",
  "itemListElement": [
    {
      "@type": "ListItem",
      "position": 1,
      "name": "Books",
      "item": "https://example.com/books"
    },
    {
      "@type": "ListItem",
      "position": 2,
      "name": "Science Fiction",
      "item": "https://example.com/books/sciencefiction"
    },
    {
      "@type": "ListItem",
      "position": 3,
      "name": "Award Winners"
    }
  ]
}

If you publish a connected @graph, give the list an @id and reference it from your WebPage node’s breadcrumb property, as shown in our JSON-LD guide. Schema.org defines breadcrumb as “a set of links that can help a user understand and navigate a website hierarchy”.

Should breadcrumbs follow the URL or the user’s path?

Follow the user’s path. Google’s guidelines say: “We recommend providing breadcrumbs that represent a typical user path to a page, instead of mirroring the URL structure.” They add that you don’t need a ListItem for the top-level path (your domain) or for the page itself.

That matters most on sites with flat or technical URLs. The comparison below shows the difference.

Breadcrumbs that mirror the URL versus breadcrumbs that follow the user's path A product at the URL example.com/p/48213?ref=nav. Left, mirroring the URL: the trail would be p, then 48213, which tells neither users nor Google anything. Right, following the user path: Home, Shoes, Running, Trail Runner 2, which matches how people browse to the product. A second example: a blog post at example.com/2026/09/json-guide. Mirroring the URL gives 2026, then 09. Following the path gives Blog, then Structured data, then the post title. Google recommends the user-path version. Mirror the URL, or follow the path? Google recommends the typical user path URL Mirrors the URL Follows the user path /p/48213?ref=nav p › 48213 Shoes › Running › Trail Runner 2 /2026/09/json-guide 2026 › 09 Blog › Structured data › JSON guide Whatever you choose, the markup must match the trail visible on the page.

Scroll the diagram sideways to see all of it.

Source: Ambeltek diagram based on the breadcrumb guidelines in Google's breadcrumb structured data documentation.

The other half of the rule comes from Google’s general structured data guidelines: don’t mark up content that isn’t visible to readers. If your markup describes a trail the page doesn’t show, you’re describing invisible content. Build the visible breadcrumb and the JSON-LD from the same function in your template so they can’t disagree.

Multiple breadcrumb trails on one page

When a page genuinely sits in two places, you can publish two BreadcrumbList items. Google’s documentation uses a book that’s reachable both as Books › Science Fiction › Award Winners and as Literature › Award Winners, and marks up each trail as its own list.

Use this sparingly. It suits products listed in two real categories or articles filed under two sections. It doesn’t suit inventing extra trails to add keywords, and each trail should correspond to navigation a visitor can actually follow.

Common breadcrumb schema errors

Most breadcrumb problems are template bugs rather than misunderstandings. The ones that come up most:

  • A single ListItem. Google requires at least two. A homepage-only trail isn’t a trail.
  • Missing item on a middle crumb. Only the last item can omit its URL.
  • Positions that don’t start at 1 or skip numbers, usually from a loop index that starts at 0.
  • Relative URLs such as /books in item. Use absolute URLs, as Google’s examples do.
  • Markup that disagrees with the visible trail, often because a plugin builds the JSON-LD from the URL while the theme builds the visible trail from categories.
  • Legacy data-vocabulary.org markup. Google’s documentation notes it is “no longer eligible for Google rich result features”. Use schema.org.

The Schema Markup Validator catches syntax and vocabulary problems; the Rich Results Test catches Google’s required properties. Neither can tell you whether the trail makes sense, so read a few by eye.

How do you monitor breadcrumb markup after launch?

Use Search Console’s breadcrumb report, which Google kept after the mobile change. Google’s rich result report overview explains how to read it:

  • Find it under Enhancements in the Search Console navigation. The report appears only once Google has found valid markup of a supported type on your property.
  • Read items, not pages. The counts are structured data items, so a page with two trails counts twice.
  • Fix critical issues first. Items with a critical issue are invalid and can’t appear as a rich result. Non-critical issues are listed separately under ways to improve item appearance.
  • Don’t expect a full list. Google says the reports “show a sample of detected items”, so use the URL Inspection tool to check a specific page that isn’t listed.
  • Validate the fix. After you correct a template, request validation from the issue page so Google rechecks the affected items.

The pattern to watch for is a sudden rise in invalid items after a release. That usually means a template change broke the markup on every page that uses it, which is exactly the kind of fault breadcrumbs are prone to, because they’re built in one shared component. A drop in valid items without a matching rise in invalid ones usually means the markup has disappeared altogether, often after a theme or plugin update. Either way, the fix belongs in the template, not on individual pages.

Getting breadcrumb schema right sitewide

Breadcrumb schema belongs in templates, not on individual pages. Generate the visible breadcrumb and the BreadcrumbList from one source, run a few URLs per template through the Rich Results Test after each release, and watch the breadcrumb report in Search Console for jumps in invalid items.

Treat it as part of your information architecture. If your breadcrumbs are hard to define, the problem is usually the site structure, which shows up in redesigns and migrations as well; our website redesign SEO guide covers keeping hierarchy and URLs stable through a rebuild. For framework-specific setups, see Astro SEO and WordPress SEO.

If your breadcrumbs, visible or marked up, disagree across templates, our schema markup service rebuilds them from one source and connects them to the rest of your structured data graph.

Frequently asked questions

What is breadcrumb schema?

Breadcrumb schema is BreadcrumbList structured data that describes a page's position in a site's hierarchy as an ordered list of ListItem entries, each with a position, a name and usually a URL. Google uses it to categorize the page and to show a breadcrumb trail in desktop search results.

Does Google still show breadcrumbs in search results?

On desktop, yes. On January 23, 2025, Google stopped showing breadcrumbs in mobile search results, where the visible URL now shows only the domain. Google said breadcrumb markup is still supported for desktop, the Search Console report continues, and the Rich Results Test still tests it.

Is breadcrumb schema still worth adding?

Yes, for most sites with more than one level of content. It is cheap to add from templates, still shapes the desktop result, and gives search engines an explicit statement of where a page sits. It is not a ranking factor on its own, so do it properly once rather than as a priority fix.

Does the breadcrumb schema have to match the URL?

No. Google recommends breadcrumbs that represent a typical user path to a page instead of mirroring the URL structure. The markup should match the breadcrumb trail visible on the page, which may be different from the folders in the URL.

Do I need to include the homepage and the current page in breadcrumb schema?

Neither is required. Google says it is not required to include a ListItem for the top-level path or for the page itself. If you do include the current page as the last item, you can leave out its item URL and Google will use the page's own URL.

Can a page have more than one breadcrumb trail?

Yes. Google supports multiple BreadcrumbList items on one page when there are genuinely different ways to navigate to it, such as a book reachable from both a genre section and an awards section.

OK

Olga Kunger

Founder & Lead Strategist, Ambeltek

Olga leads Ambeltek's web development, AI SEO, and GEO work — helping brands rank on Google and get cited by AI engines. More about Olga →

Want structured data that engines trust?

We audit, design and ship connected JSON-LD for your whole site, validated and monitored.