// SEO plans from €35/hour or €395/month// from €35/hr · €395/mo Free SEO checker[email protected]+31 6 4555 9353
Free SEO audit
technical seo

Breadcrumb Schema: BreadcrumbList Markup Guide

Breadcrumbs show where a page sits in your site and help Google categorise it in results. This guide covers the exact BreadcrumbList properties, JSON-LD and other formats, rules for multiple trails, Google’s guidelines, and how to deploy, validate and monitor the markup.

  • Required properties
  • JSON-LD format
  • Guidelines
  • Deploy and monitor
BreadcrumbListJSON-LD
Home > Guides > Breadcrumb schema
position 1, 2, 3
name + item (last item optional)
// quick answer
Add a BreadcrumbList with an itemListElement array of at least two ListItems, each with position (1 is the start), name and item (URL). The last item may omit item, and Google then uses the page URL. Build trails around typical user paths, not URL structure. Validate with the Rich Results Test, then inspect a few pages and monitor the Rich results status report. Google says the feature appears on desktop.

What breadcrumb markup does

A breadcrumb trail shows where a page sits in a site’s hierarchy, helping users understand the site and move up one level at a time. Google uses breadcrumb markup to categorise page content in results, and the same page may be shown with different trails depending on the query.

Properties

TypePropertyRule
BreadcrumbListitemListElementRequired; at least two ListItems, in order
ListItempositionInteger; position 1 is the start of the trail
ListItemnameText shown to users; not required if a Thing with its own name is used for item
ListItemitemURL or a Thing; optional for the last item, where Google uses the containing page’s URL

Formats

JSON-LD is the usual choice: a script block holding a BreadcrumbList with an ordered array of ListItems. Google also supports RDFa and Microdata (properties added to ordered-list and list-item elements, with positions supplied through meta elements). A plain linked list in visible HTML shows the trail to users but carries no structured data.

{
  "@type": "BreadcrumbList",
  "itemListElement": [
    {"@type":"ListItem","position":1,"name":"Home","item":"https://example.com/"},
    {"@type":"ListItem","position":2,"name":"Guides","item":"https://example.com/guides/"},
    {"@type":"ListItem","position":3,"name":"Breadcrumbs"}
  ]
}

The example is my own short illustration following Google’s property rules.

Multiple trails

If a page belongs in more than one trail, JSON-LD uses an array of BreadcrumbList objects. RDFa and Microdata use separate ordered lists, one per trail.

Guidelines

  • Eligibility depends on following Search Essentials and the general structured data guidelines.
  • Markup outside the guidelines can trigger a manual action, and structured data on a page under manual action is ignored. See manual actions.
  • Build breadcrumbs around typical user paths, not by mirroring URL structure.
  • Including the home-level item or the current page as a ListItem is not required.
  • Data-vocabulary.org markup is no longer eligible for rich results.

Implement step by step

1
add

Add the required properties

Via a CMS plugin or generated with JavaScript.

JSON-LD
2
follow

Follow the guidelines

Match visible breadcrumbs.

guidelines
3
validate

Run the Rich Results Test

Fix critical errors; non-critical issues are worth fixing but not required for eligibility.

4
deploy

Deploy a few pages, inspect

Confirm they are not blocked by robots.txt, noindex or login. Then request recrawling; allow several days.

5
sitemap

Submit a sitemap

Keeps Google informed.

6
monitor

Watch reports

Rich results status and Performance.

status report

How it shows in results

Google’s page describes the feature for desktop in all regions and languages where Search is available. It does not explain display rules in detail, and valid markup does not guarantee a rich result.

Notes for WordPress sites

  • SEO plugins add breadcrumb schema when breadcrumbs are enabled (my own note). Check your plugin. See Yoast settings.
  • Avoid duplicates from theme and plugin both outputting a BreadcrumbList.
  • Check after template updates; Google advises watching valid and invalid items then.
  • Also see schema markup guide.

Troubleshooting

SymptomLikely cause (my own diagnosis)Fix
Error: missing itemListElementIncomplete markupAdd at least two ListItems
Not eligibleGuideline breachMatch visible trail
Not shownNo guarantee, or desktop onlyCheck status report
Duplicate trailsPlugin plus themeKeep one

Checklist

Markup

  • itemListElement present
  • At least two items
  • Positions in order
  • Names and URLs

Rules

  • Reflects user paths
  • Matches visible trail
  • No data-vocabulary.org
  • Guidelines followed

Deploy

  • Rich Results Test
  • Inspect sample pages
  • Not blocked or noindexed
  • Sitemap submitted

Monitor

  • Rich results report
  • Check after template edits
  • Performance report
  • No duplicates

What Google’s page does not say

It does not cover the difference between location-based and path-based breadcrumbs, any limit on trail length, what happens when item is omitted for a non-final item, indexing timeframes beyond several days, or mobile display behaviour.

Key terms

BreadcrumbList
Schema type for a breadcrumb trail.
ListItem
One step in the trail.
position
Order number; 1 is the start.
Trail
The path from top level to the page.

Common mistakes

mistake 1

Only one item

At least two required.

Add the parent.
mistake 2

Mirroring the URL

Not user paths.

Follow how people navigate.
mistake 3

Wrong positions

Order broken.

Start at 1.
mistake 4

Old data-vocabulary.org

Not eligible.

Use schema.org.
mistake 5

Duplicate markup

Plugin plus theme.

Keep one source.
mistake 6

Deploying without checks

Blocked pages.

Inspect first.

Related guides

faq

Breadcrumb schema questions

What is required?

An itemListElement with at least two ListItems in order.

Can the last item omit its URL?

Yes. Google then uses the page’s own URL.

Where does position start?

At 1, the beginning of the trail.

Do I need to include Home?

No. The home item and current page are not required.

Can I have two trails?

Yes, with an array of BreadcrumbList objects in JSON-LD.

Does valid markup guarantee display?

No.

Which format?

JSON-LD, RDFa and Microdata are supported.

Is data-vocabulary.org OK?

No, it is no longer eligible.

sources

Properties, formats, guidelines, deployment steps and monitoring come from Google’s page. The code example, WordPress notes, troubleshooting and checklists are my own.

Scroll to Top