Breadcrumb Schema Generator
Breadcrumb markup gives Google your page's place in the site: Services › Water Heaters › Tankless Installation. Google can show that trail in search results instead of a raw URL.
- Free, no sign-up
- BreadcrumbList JSON-LD
- Live check
- Nothing leaves your browser
Breadcrumb trail
From the top level down to the current page, as visitors would navigate. At least two items.
* Required by Google for this rich result.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "BreadcrumbList"
}
</script>Live check against Google's rules
- Missing required property “itemListElement”.
How to use the breadcrumb schema generator
- Add one level per step of the trail, from the top section down to the current page. Use the names visitors see in your breadcrumb navigation.
- Give every level a URL except the last. The last level is the current page; Google uses the page's own address.
- Copy the code to the page the trail belongs to. Each page gets its own trail.
- Check the published page in our schema markup validator.
What breadcrumb markup does
In search results Google often replaces the raw URL with a trail such as lakesideplumbing.com › Services › Water Heaters. BreadcrumbList markup tells Google which trail to use, so a page at /p/1234?ref=nav can still show a readable path.
It also states how the site is organized: which category a page belongs to and which pages sit above it.
What Google requires
| Property | Required | Notes |
|---|---|---|
itemListElement | Yes | At least two ListItems, in order |
position | Yes | 1 for the top of the trail, then 2, 3… |
name | Yes | The label shown for that level |
item | Yes, except on the last item | The level's full URL, with https:// |
Google recommends a trail that matches how people move through the site, not a mirror of the URL folders. The home page and the current page don't need their own items, though including them to match the visible breadcrumb is fine.
Example
{
"@context": "https://schema.org",
"@type": "BreadcrumbList",
"itemListElement": [
{ "@type": "ListItem", "position": 1, "name": "Services", "item": "https://www.lakesideplumbing.com/services/" },
{ "@type": "ListItem", "position": 2, "name": "Water Heaters", "item": "https://www.lakesideplumbing.com/services/water-heaters/" },
{ "@type": "ListItem", "position": 3, "name": "Tankless Installation" }
]
}
Common mistakes
- Relative URLs such as
/services/. Everyitemmust be a full URL. - Positions out of order or starting at 0. Count from 1.
- A one-item trail. Google needs at least two levels; on a top-level page the markup adds nothing.
- A trail in the markup that the page doesn't show. Keep the markup and the visible breadcrumb the same.
- Duplicate markup from a theme and a plugin. WordPress SEO plugins often add breadcrumb markup already; check before adding another block.
If the site's structure itself is the problem, with pages that sit nowhere or several clicks too deep, that is part of a technical SEO audit.
Breadcrumb Schema FAQ
A BreadcrumbList with at least two ListItems. Each item needs a position and a name, and every item except the last needs item, its URL. The last item can leave the URL out; Google uses the page's own address.
Not necessarily. Google recommends a trail that matches how people move through the site, not a copy of the URL folders. A page at /p/1234 can still have the trail Services › Water Heaters › Tankless Installation.
You don't have to. Google says the top-level domain and the current page don't need their own items. Many sites still include both so the markup matches the breadcrumb visitors see; either way is valid.
You can add more than one BreadcrumbList to the page, one per path. Use the paths visitors actually see in the page's navigation.
Get a free technical SEO audit
Structured data is one line of the audit. We check crawling, indexing, Core Web Vitals and markup across the whole site and send a prioritized list of fixes.