BreadcrumbList schema: navigation search engines understand
Why breadcrumbs are more than navigation
Breadcrumbs are one of those website elements that are often taken for granted. They sit somewhere at the top of the page, showing a path like "Home > Blog > Category > Article" and most visitors rarely click them. But for search engines and AI models, breadcrumbs are one of the most valuable navigation signals you can provide.
When an AI model analyzes your page, it needs to understand where that page fits within the larger structure of your website. Is it a product page within a category? A blog post within a theme? A subpage three levels deep? Breadcrumbs answer that question in a fraction of a second. They tell the model not only what the page contains, but also how it relates to the rest of your site.
The BreadcrumbList schema from Schema.org formalizes this hierarchy in a structured format that machines can process directly. Combined with the visual breadcrumbs on your page, this creates a powerful dual signal: visible navigation for visitors and machine-readable structure for search engines and AI. This connects directly to the broader Schema.org strategy we discussed earlier.
Google displays BreadcrumbList markup directly as rich results in search results. Your URL in the SERP is replaced by a readable breadcrumb navigation, which significantly improves click-through rate.
The structure of BreadcrumbList JSON-LD
A BreadcrumbList is technically an ItemList where each element is a ListItem. Each ListItem contains a position (position), a name (name) and a URL (item). The order of the items must exactly match your website hierarchy, from the homepage as the first item to the current page as the last.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "BreadcrumbList",
"itemListElement": [
{
"@type": "ListItem",
"position": 1,
"name": "Home",
"item": "https://example.com/"
},
{
"@type": "ListItem",
"position": 2,
"name": "Blog",
"item": "https://example.com/blog"
},
{
"@type": "ListItem",
"position": 3,
"name": "Structured Data",
"item": "https://example.com/blog/category/structured-data"
},
{
"@type": "ListItem",
"position": 4,
"name": "BreadcrumbList Schema Guide"
}
]
}
</script>Notice that the last item in the list has no "item" (URL) property. This is intentional: the last element represents the current page, and Google recommends omitting the URL for the last item. The "position" values must start at 1 and be sequential.
Multiple breadcrumb paths on a page
Some websites have pages that are reachable via multiple paths. A product might be accessible through both "Electronics > Laptops" and "Deals > Laptops". In that case, you can place multiple BreadcrumbList objects on the same page.
<script type="application/ld+json">
[
{
"@context": "https://schema.org",
"@type": "BreadcrumbList",
"itemListElement": [
{ "@type": "ListItem", "position": 1, "name": "Home", "item": "https://example.com/" },
{ "@type": "ListItem", "position": 2, "name": "Electronics", "item": "https://example.com/electronics" },
{ "@type": "ListItem", "position": 3, "name": "Laptops", "item": "https://example.com/electronics/laptops" },
{ "@type": "ListItem", "position": 4, "name": "MacBook Pro 2026" }
]
},
{
"@context": "https://schema.org",
"@type": "BreadcrumbList",
"itemListElement": [
{ "@type": "ListItem", "position": 1, "name": "Home", "item": "https://example.com/" },
{ "@type": "ListItem", "position": 2, "name": "Deals", "item": "https://example.com/deals" },
{ "@type": "ListItem", "position": 3, "name": "Laptops", "item": "https://example.com/deals/laptops" },
{ "@type": "ListItem", "position": 4, "name": "MacBook Pro 2026" }
]
}
]
</script>Google supports multiple breadcrumb paths and displays the most relevant path in search results. AI models use all paths to form a more complete picture of the site structure.
BreadcrumbList in popular CMS systems
The implementation of BreadcrumbList schema differs per CMS. Below we discuss the most common approaches for WordPress, Laravel and static sites.
In WordPress you can use the Yoast SEO or Rank Math plugin. Both automatically generate BreadcrumbList JSON-LD when you activate the breadcrumb functionality. Make sure the visual breadcrumbs on the page match the JSON-LD data. Inconsistencies between visible and structured breadcrumbs can lead to a manual action from Google.
// Laravel Blade example: generating breadcrumbs with JSON-LD
@php
$breadcrumbs = [
['name' => 'Home', 'url' => url('/')],
['name' => 'Blog', 'url' => url('/blog')],
['name' => $category->name, 'url' => $category->url],
['name' => $post->title],
];
@endphp
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "BreadcrumbList",
"itemListElement": [
@foreach($breadcrumbs as $index => $crumb)
{
"@type": "ListItem",
"position": {{ $index + 1 }},
"name": "{{ $crumb['name'] }}"
@if(isset($crumb['url']))
,"item": "{{ $crumb['url'] }}"
@endif
}@if(!$loop->last),@endif
@endforeach
]
}
</script>Dive deeper: Schema.org markup: the language AI understands | The heading hierarchy for humans and machines | E-E-A-T optimization for AI
Common mistakes in BreadcrumbList implementation
Although BreadcrumbList is one of the simpler schema types, we regularly see implementation mistakes that undermine effectiveness.
- Wrong position numbering. The position must start at 1 and be sequential. Starting at 0 or skipping positions leads to validation errors.
- Including a URL for the last item. Google recommends not including an "item" property for the current page (the last breadcrumb element).
- Inconsistency between visual breadcrumbs and JSON-LD. What the visitor sees must exactly match what is in the structured data. Different names or missing levels are problematic.
- Breadcrumbs that do not start at the homepage. Every breadcrumb path should begin at the root of your website. A path starting at a category page lacks essential context.
- Hierarchies that are too deep. More than five levels in a breadcrumb path indicates a structural problem. Keep your navigation flat and intuitive.
- Missing breadcrumbs on certain page types. Implement BreadcrumbList consistently across all pages, not just blog posts or product pages.
How AI models use breadcrumbs
AI models use BreadcrumbList data in several ways that go beyond what search engines do with them.
First, breadcrumbs help understand the thematic coherence of your site. When an AI model sees that you have a page at the path "Home > Knowledge Base > Structured Data > BreadcrumbList", it understands that your site contains a knowledge base with a section about structured data. This strengthens your topical authority for that subject.
Second, AI models use breadcrumbs to estimate the depth and breadth of your content. A site with multiple well-structured breadcrumb paths to diverse topics is seen as more comprehensive and trustworthy than a flat site without hierarchy. This contributes to the E-E-A-T signals that AI models evaluate.
Third, some AI models use breadcrumbs to determine which page is most relevant for a specific query. If a user asks about "BreadcrumbList implementation" and your site has a page with the breadcrumb path "Home > Guides > Structured Data > BreadcrumbList", then the breadcrumb structure perfectly matches the search intent.
Breadcrumbs are the navigation system machines need to understand your website as if they were browsing through it themselves. Without breadcrumbs, your site is a book without a table of contents.
Combining BreadcrumbList with other schema types
BreadcrumbList rarely stands alone. In practice, you combine it with other schema types to paint a richer picture for search engines and AI models.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@graph": [
{
"@type": "BreadcrumbList",
"itemListElement": [
{ "@type": "ListItem", "position": 1, "name": "Home", "item": "https://example.com/" },
{ "@type": "ListItem", "position": 2, "name": "Blog", "item": "https://example.com/blog" },
{ "@type": "ListItem", "position": 3, "name": "BreadcrumbList Schema Guide" }
]
},
{
"@type": "Article",
"headline": "BreadcrumbList Schema Guide",
"author": { "@type": "Person", "name": "Jan de Vries" },
"datePublished": "2026-04-24",
"breadcrumb": { "@id": "#breadcrumb" }
}
]
}
</script>By using a @graph array, you can combine BreadcrumbList, Article, Organization and other schema types in a single JSON-LD block. The "breadcrumb" property on the Article refers back to the BreadcrumbList, making the relationship explicit.
Validation and testing
After implementation, it is essential to validate your BreadcrumbList markup. Google offers two tools for this: the Rich Results Test and the Schema Markup Validator.
- Google Rich Results Test (search.google.com/test/rich-results): checks whether your markup qualifies for rich results and shows a preview of how breadcrumbs appear in search results.
- Schema Markup Validator (validator.schema.org): validates the technical correctness of your JSON-LD against the Schema.org specification.
- Chrome DevTools: inspect the JSON-LD block in the Elements tab to verify that the markup is correctly rendered in the HTML.
- Screaming Frog SEO Spider: crawl your entire site to check whether BreadcrumbList is consistently implemented across all pages.
Do not just test your blog posts. Also check category pages, product pages and landing pages. BreadcrumbList must be consistently present on all page types for maximum effect.
Key takeaways
- BreadcrumbList schema translates your visual breadcrumb navigation into machine-readable structured data that search engines and AI models can process directly.
- Google displays BreadcrumbList markup as rich results in the SERP, improving your click-through rate by replacing the URL with a readable path.
- The last item in the BreadcrumbList should not contain an "item" URL, as it represents the current page.
- AI models use breadcrumbs to assess topical authority, site structure and page relevance.
- Always combine BreadcrumbList with other schema types like Article via a @graph array for a complete structured picture.
Frequently asked questions
Should I implement breadcrumbs on every page?
Yes, BreadcrumbList schema belongs on every page that is part of a hierarchy. The homepage is the only exception, as it is by definition the starting point of all breadcrumb paths. Even on pages with a shallow structure (Home > Page), breadcrumbs add value because they confirm to search engines and AI models that the page falls directly under the homepage.
Does BreadcrumbList affect my Google ranking?
BreadcrumbList is not a direct ranking factor, but it does have indirect influence. The rich results that Google generates based on BreadcrumbList markup improve your click-through rate, which in turn can positively affect your ranking. Additionally, breadcrumbs help Google understand your site structure, which can improve indexing and crawl priority.
What if my breadcrumbs do not match my URL structure?
Breadcrumbs do not need to exactly follow your URL structure. They should reflect the logical navigation hierarchy of your site. A URL like "/blog/2026/04/breadcrumblist-schema" can perfectly have a breadcrumb like "Home > Blog > Structured Data > BreadcrumbList Schema" without the date components. The breadcrumb shows the content hierarchy, not the technical URL structure.
Can I use BreadcrumbList without visual breadcrumbs on the page?
Technically you can, but it is strongly discouraged. Google requires that structured data corresponds with visible content on the page. If you implement BreadcrumbList markup without corresponding visual breadcrumbs, you risk a manual action for misleading structured data. Always implement both the visual and structured variants.
How many levels deep can breadcrumbs be?
There is no technical limit, but in practice more than five levels is considered problematic. Deeper hierarchies indicate a complex site structure that is difficult to navigate for both users and machines. If you regularly need more than five levels, reconsider your site architecture. Three to four levels is optimal for most websites.
A well-structured website needs breadcrumbs like a well-structured book needs a table of contents. It tells the reader not only where they are, but also where they can go.
How does your website score on AI readiness?
Get your AEO score within 30 seconds and discover what you can improve.