AI search glossary

Breadcrumb schema: BreadcrumbList markup explained with an example

Breadcrumb schema is structured data using the schema.org BreadcrumbList type: an ordered list of ListItem entries, each with a position, a name and a URL, that describes the trail of pages leading to the current page.

Also called: breadcrumb structured data, BreadcrumbList schema, breadcrumb markup

Why it matters for AI search

AI engines and their crawlers need to know what a page is part of, not only what it says. A breadcrumb trail such as Home, Running shoes, Trail shoes tells a retriever which category a product belongs to and links the page to its parent sections. That context helps an engine match a page to the right question and find related pages on the same site.

How breadcrumb schema works

Breadcrumbs are the small trail of links near the top of a page, such as Home, Guides, Schema. Breadcrumb schema states the same trail in machine-readable form. Schema.org defines BreadcrumbList as a chain of linked web pages, usually described by URL and name, where the last item is typically the current page.

Each step is a ListItem with three properties:

  • position: an integer. Position 1 is the start of the trail.
  • name: the label shown to users.
  • item: the URL of that step. Google lets you skip it on the last item.
{
  "@context": "https://schema.org",
  "@type": "BreadcrumbList",
  "itemListElement": [
    { "@type": "ListItem", "position": 1, "name": "Shoes", "item": "https://example.com/shoes" },
    { "@type": "ListItem", "position": 2, "name": "Trail running", "item": "https://example.com/shoes/trail" },
    { "@type": "ListItem", "position": 3, "name": "Ridgeline 4" }
  ]
}

Most sites add this as JSON-LD in a template, so every product or article page gets its trail automatically. Google also reads breadcrumbs from RDFa and Microdata.

Google's rules

  • At least two ListItems per BreadcrumbList.
  • Use a trail that reflects how a typical visitor reaches the page, not a copy of the URL folders.
  • Including the home page or the current page as an item is optional.
  • Multiple trails are allowed as separate BreadcrumbList objects.
  • Misleading markup can lead to a manual action, as with any structured data.

Google says no special structured data is required for its AI features, so breadcrumbs are not a ticket into AI answers. Their value is context. A clear trail plus matching visible links tells crawlers which section a page belongs to and gives them a path to its parent and sibling pages. For a store, that means a product page is tied to its category, which helps an engine answering "best trail running shoes" connect the product to the question. The visible breadcrumb links matter as much as the markup, because they are ordinary crawlable links.

How to check and fix it

  1. Make sure the visible breadcrumb on the page and the markup show the same steps.
  2. Generate the markup from the same data that builds your navigation, so they cannot drift apart.
  3. Test a few templates (category, product, article) in Google's Rich Results Test.
  4. Check that every item URL returns a 200 status and is not blocked in robots.txt.

Breadcrumbs are one of the simplest forms of schema markup. They work alongside an XML sitemap: the sitemap lists your pages, while breadcrumbs show how those pages relate to each other.

Questions

How many items does a BreadcrumbList need?
Google asks for a BreadcrumbList with at least two ListItems. Each needs a name and an item URL, except the last one, which can omit item; Google then uses the URL of the page itself.
Should breadcrumbs mirror my URL structure?
Not necessarily. Google recommends breadcrumbs that represent a typical user path to the page instead of mirroring the URL structure.
Can one page have more than one breadcrumb trail?
Yes. If a product sits in two categories, Google accepts several BreadcrumbList objects on the same page, one per trail.
Is the position property important?
Yes. Schema.org notes that the order of elements in your markup is not enough on its own. Each ListItem should carry an integer position, starting at 1 for the top of the trail.

Related terms

Sources