Breadcrumb schema example
Breadcrumb markup tells Google where a page sits in your site's hierarchy. A BreadcrumbList needs itemListElement; each ListItem needs position and name, plus item (a URL) on every crumb except, optionally, the last one, which is the current page.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "BreadcrumbList",
"itemListElement": [
{
"@type": "ListItem",
"position": 1,
"name": "Packs",
"item": "https://example.com/packs"
},
{
"@type": "ListItem",
"position": 2,
"name": "Daypacks",
"item": "https://example.com/packs/daypacks"
},
{
"@type": "ListItem",
"position": 3,
"name": "Trailhead 28L"
}
]
}
</script>What Google checks
Breadcrumb docs
Required: itemListElement
Taken from Google Search Central's documentation for this type. Meeting the requirements makes a page eligible; Google decides whether to show a rich result.
Mistakes the validator catches on BreadcrumbList
- Positions starting at 0 or out of order
- position counts from 1 in list order.
- "position": "2" as text
- Use an integer.
- Relative item URLs
- Use absolute URLs so the markup works wherever it is read.
- Breadcrumbs that aren't on the page
- The trail should match a breadcrumb the visitor can see.
Paste your own version into the schema markup validator or test a live URL.
Questions
Does the last breadcrumb need a URL?
No. Google says the item URL is optional on the last crumb, which is the current page.
Can a page have two breadcrumb trails?
Yes, if it genuinely sits in two places. Add two BreadcrumbList entities.
Should the home page be the first crumb?
It can be. Many sites start at the first section instead; both are valid.
Other examples
ArticleProductFAQPageRecipeEventLocalBusinessOrganizationVideoObjectJobPostingReview