Breadcrumb Schema: Get Your Site Structure into Google Results
Breadcrumb schema changes one specific thing in the search result: the line under your title that normally shows the raw URL becomes a readable path instead. So example.com › guides › schema › breadcrumbs shows as Home > Guides > Schema (or whatever labels you set). It is a small cosmetic win that makes your result look more organized and tells searchers where the page sits in your site before they click. That is the whole feature. It does not directly move rankings, and it does not add a headline or an image.
You mark it up with BreadcrumbList, a schema.org type that is one of the simpler ones to get right, which is why it is a good first structured-data project. Build the block with our Schema Markup Generator if you want it generated cleanly, and pair it with a real, crawlable breadcrumb trail in your HTML, which also strengthens your internal linking.
What BreadcrumbList looks like
A BreadcrumbList is an ordered list of ListItem objects. Each item has a position (the step in the trail), a name (the label shown), and, for every item except optionally the last, an item (the URL that step links to).
<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": "Guides",
"item": "https://example.com/guides/"
},
{
"@type": "ListItem",
"position": 3,
"name": "Breadcrumb schema"
}
]
}
</script>
That describes the trail Home > Guides > Breadcrumb schema. The current page is the last item, and notice it has no item URL, which we will explain next.
The position and item rules
Two rules govern the structure, and getting either wrong is the usual cause of a rejected breadcrumb.
Position starts at 1 and increments by 1. The first item in the trail is "position": 1, the next is 2, and so on with no gaps and no starting at 0. Google reads position to order the trail, so if the numbers are off, the path renders in the wrong order or fails validation.
The last item names the current page and should omit item. Every step except the last needs an item URL because those are the ancestor pages a user can navigate to. The final step is the page the user is already on, so it does not link anywhere. You can include an item on the last element pointing to the current page's own URL, and Google tolerates it, but the cleaner and recommended pattern is to leave item off the final ListItem. Giving the last item a URL that points somewhere other than the current page is a genuine error.
The visible breadcrumb should match
Here is a rule people miss: Google's structured data guidelines expect the breadcrumb markup to reflect a breadcrumb trail that is actually visible on the page. The markup is meant to describe a real navigational element, not invent one. So you should have an on-page breadcrumb (a row of links near the top of the content) whose steps and labels match the BreadcrumbList you mark up.
This is the same principle that runs through all of structured data: the markup describes what is on the page. If your page has no visible breadcrumb at all and you add BreadcrumbList schema anyway, you are describing navigation that does not exist, which can be flagged. The good news is that adding a visible breadcrumb is worth doing on its own, because it helps users orient and adds internal links up your site hierarchy. Mark up the trail you already show; do not fabricate one for the markup's sake.
Common errors
Beyond the position and item rules, a few specific mistakes account for most broken breadcrumbs:
The last item has an item URL that points elsewhere. If your final ListItem links to a different page (a common copy-paste slip), Google may reject the breadcrumb or render a path that leads users away from the current page. Drop the item from the last element, or point it at the current page's own URL.
Position not starting at 1. Starting at 0, or skipping a number, breaks the ordering. Renumber so the sequence is 1, 2, 3 with no gaps.
Relative URLs in item. The item value must be an absolute URL (https://example.com/guides/), not a relative path (/guides/). Relative URLs will not validate.
Mismatched labels. If the visible breadcrumb says "Guides" but the markup says "All Guides," the two disagree. Keep the name values identical to the visible link text.
Pages that belong to two paths
Sometimes a page legitimately sits under more than one path. A product might live under both Home > Shoes > Running and Home > Sale. Google allows multiple BreadcrumbList blocks on a single page for exactly this case: add one block per trail, each a complete, correctly numbered list. Google may then display whichever trail best matches the query the page ranked for.
Do not force this. Most pages have one natural path, and a single breadcrumb is the honest answer. Add a second trail only when the page really does belong in two places in your navigation, and make sure both trails correspond to breadcrumbs a user could actually follow on the page.
Verifying it
After you add the block, run the page through the Rich Results Test and check for a "Breadcrumbs" item with no errors. Our guide on testing structured data covers the full three-tool routine, but for breadcrumbs the Rich Results Test plus the "Breadcrumbs" enhancement report in Search Console is enough. Confirm the block is in your served HTML with view-source, because breadcrumb markup injected client-side hits the same detection problems as any other schema.
Frequently Asked Questions
What does breadcrumb schema change in the search result?
It replaces the raw URL line under your title with a readable path, such as Home > Guides > Schema, using the labels you set in the markup. It is a presentational change that shows searchers where the page sits in your site. It does not add a headline or image and does not directly affect rankings.
Does position have to start at 1 in a BreadcrumbList?
Yes. The position values must start at 1 and increment by 1 with no gaps. Google uses position to order the trail, so starting at 0 or skipping a number causes the path to render out of order or fail validation.
Should the last breadcrumb item have a URL?
The recommended pattern is to omit item on the last ListItem, because it represents the page the user is already on. You can point it at the current page's own URL and Google tolerates that, but giving the last item a URL that leads to a different page is an error.
Does my visible breadcrumb have to match the markup?
Yes. Google's guidelines expect breadcrumb markup to describe a breadcrumb trail that actually appears on the page, with matching steps and labels. Add a real, visible breadcrumb and mark up that trail rather than inventing navigation that does not exist on the page.
Do breadcrumb URLs need to be absolute?
Yes. The item value must be an absolute URL like https://example.com/guides/, not a relative path like /guides/. Relative URLs will not validate in the BreadcrumbList markup.