BreadcrumbList

On this page 7

BreadcrumbList is the Schema.org type that describes a breadcrumb trail: the ordered chain of links that shows where a page sits in a website’s hierarchy, such as Home › Shoes › Running shoes. In structured data it is one of the most widely deployed types, because it is simple to implement and makes site structure explicit to search engines.

Search engines use BreadcrumbList markup to understand and display the page’s position in the site. Google may show the trail in place of the raw URL in search results, which makes the result easier to scan. BreadcrumbList is a subtype of ItemList, and each step in the trail is a ListItem with a name, a URL and a position.

How BreadcrumbList markup is structured

A BreadcrumbList contains an itemListElement array in which every element is a ListItem. The position property gives the order, starting at 1 for the top level, and the trail ends with the current page or its immediate parent.

PropertyApplies toPurposeStatus for Google
itemListElementBreadcrumbListHolds the ordered stepsRequired
positionListItemInteger order from 1 upwardRequired
nameListItemLabel shown for the stepRequired
itemListItemURL or identifier of the stepRequired except for the last step
@typeEach nodeDeclares BreadcrumbList or ListItemRequired by syntax
Properties used in BreadcrumbList markup

The markup is usually written in JSON-LD in the page head, which keeps it separate from the visible HTML. Microdata and RDFa are also supported and attach the properties directly to the visible breadcrumb elements, which guarantees consistency but makes templates harder to maintain.

A minimal trail for a running shoe category therefore has three ListItem nodes: position 1 named Home with the homepage URL, position 2 named Shoes with the category URL, and position 3 named Running shoes. The final step may omit item, in which case the search engine treats the current page URL as its destination.

What BreadcrumbList does in search results

BreadcrumbList is eligible for a breadcrumb rich result: instead of a long URL, the result shows the domain followed by the trail, for example a domain then Shoes › Running shoes. This helps users judge where a result sits before they click.

Display is never guaranteed. Search engines decide whether to show the trail based on device, layout and quality, and Google simplified its mobile results in 2025 so that breadcrumbs appear mainly on desktop. The markup remains valuable because it still communicates hierarchy for understanding and site structure.

The table below compares BreadcrumbList with other common structured data types to clarify its role.

TypeDescribesTypical visible effect
BreadcrumbListPosition of a page in the site hierarchyTrail in place of the URL
OrganizationThe entity behind the siteLogo and knowledge panel details
ProductA product with price and availabilityPrice, rating and stock in results
ArticleA news or blog articleHeadline, image and date treatment
FAQPageQuestion and answer pairsRich result now limited to few sites
BreadcrumbList compared with other structured data types

Implementing BreadcrumbList correctly

Good implementations generate BreadcrumbList from the same data as the visible breadcrumb, so markup and page always agree. The trail should reflect a logical user path, not necessarily the URL folders, because many sites use flat URLs with deep category hierarchies.

  • Start the trail at a meaningful top level; including the homepage is optional.
  • Use absolute canonical URLs for every item, never parameterized or redirected URLs.
  • Keep names short and identical to the visible breadcrumb labels.
  • For pages reachable through several categories, multiple BreadcrumbList blocks are allowed, one per trail.
  • Validate templates with the Rich Results Test and the Schema Markup Validator before release.

Content management systems and SEO plugins often output BreadcrumbList automatically. In that case the main task is to avoid duplicate or conflicting trails when a theme and a plugin both add their own markup.

Common BreadcrumbList errors

Errors in BreadcrumbList are typically reported in the Breadcrumbs enhancement report of Google Search Console. Most stem from template logic rather than from individual pages.

ErrorLikely causeFix
Missing field itemURL omitted on an intermediate stepAdd item for every step except the last
Invalid positionPositions start at 0 or skip numbersNumber sequentially from 1
Mismatch with visible trailMarkup built from different dataGenerate both from one source
Duplicate trailsTheme and plugin both output markupDisable one of the sources
Non-canonical URLsTracking parameters in item valuesUse clean canonical URLs
Trail ends on wrong pageLast step points to a categoryEnd with the current page or parent
Typical errors, causes and fixes

Errors in BreadcrumbList do not cause ranking penalties, but invalid items make the page ineligible for the breadcrumb display and remove a clear hierarchy signal.

BreadcrumbList only describes a hierarchy; it cannot create one. A site with a confused category structure produces confusing trails, so the markup works best on top of a clear site architecture with consistent parent categories.

Visible breadcrumbs also strengthen internal linking, because every page links back to its parents with descriptive anchor text. The structured data then labels these links precisely, so users, crawlers and answer engines read the same hierarchy in three ways: visually, through links and through markup.

For this reason, BreadcrumbList is best planned together with category design during a site migration or redesign. Changing the hierarchy later means updating visible trails, internal links and markup at once, and inconsistent trails across templates weaken the structure the markup is meant to express.

The idea in brief

Many websites show a small line of links near the top of a page, such as Home › Kitchen › Knives. This is a breadcrumb trail, named after the fairy tale in which children leave crumbs to find their way home.

BreadcrumbList is a hidden label that describes this trail to search engines. It tells them exactly which section a page belongs to. Search engines can then show the trail in results, so people see where a page fits before they open it.

A practical scenario

An outdoor equipment shop has about 6,000 product pages with URLs such as /p/48213, which tell users nothing in search results. Its theme shows visible breadcrumbs, but no structured data describes them.

The developer adds a JSON-LD BreadcrumbList generated from the same category data as the visible trail, for example Home › Camping › Tents › Two-person tents. After validation in the Rich Results Test and a few weeks of recrawling, the Breadcrumbs report lists the pages as valid, and desktop results show readable category trails instead of numeric URLs, which makes the listings easier to understand at a glance.