Breadcrumb schema markup generator
Breadcrumbs are the most reliably achievable rich result there is: the trail appears in place of the raw URL, the markup is four properties deep, and almost nothing about it is ambiguous.
Reference copy unfinished. The generator below works and produces valid markup. The explanatory sections are still being written, so this page is not listed for search engines yet.
Google Search features this type can produce
From the registry| Feature | Status | Surface | Last verified |
|---|---|---|---|
| Breadcrumb (opens in a new tab) | ACTIVE | search | 2026-08-29 |
Meeting a feature’s documented requirements does not guarantee that the feature appears. No tool can promise that, and any that does is describing something it cannot know.
Generate the markup
Runs in your browser<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "BreadcrumbList",
"itemListElement": [
{
"@type": "ListItem",
"name": "Home",
"item": "https://example.com/",
"position": 1
},
{
"@type": "ListItem",
"name": "Kitchen",
"item": "https://example.com/kitchen/",
"position": 2
},
{
"@type": "ListItem",
"name": "Kettles",
"item": "https://example.com/kitchen/kettles/",
"position": 3
},
{
"@type": "ListItem",
"name": "Stagg EKG electric kettle",
"position": 4
}
]
}
</script>Paste this into the <head> of the page it describes. Markup that describes a page must live on that page.
Why breadcrumbs are worth doing first
Most structured data types promise a feature that may or may not appear. Breadcrumbs are the exception: the trail genuinely replaces the URL line in results, it is widely shown, and the markup is short. If you are adding structured data to a site for the first time and want something that visibly works, start here.
The trail should reflect a real path through the site. An invented hierarchy that no navigation actually offers describes a structure that does not exist, and the names in the markup should match the names a visitor sees.
Positions and the final item
Each ListItem carries a position, numbered from 1, in the order a visitor would walk the path. The numbering defines the order — array order alone is not enough, and getting them out of step produces a scrambled trail.
The final item represents the current page, and its item URL is conventionally omitted. Including a self-referencing URL is not fatal, but leaving it out states more clearly that this is where you already are.
Mistakes worth avoiding
A trail that does not exist
Breadcrumbs should reflect a real path within the site, not a keyword-optimised hierarchy invented for the markup.
Names that differ from the page
The item names should match the navigation a visitor can see and follow.
An item object with no @type
The most common breadcrumb defect in the wild: item given as an object carrying an id and a name but no @type, so no consumer can tell what it describes. Either give item a plain URL string, or give the nested object a type.
Check what you already have
If the page you are marking up already carries structured data, audit it before adding more. Duplicate entities from a theme and a plugin are the most common finding on established sites, and adding a third block makes it worse rather than better.