Breadcrumb Schema Generator
Build BreadcrumbList JSON-LD from a URL or your page's HTML, with multiple trails, Google checks, and matching breadcrumb HTML.
- Free
- No sign-up
- Runs in your browser
- Updated
Each folder in the URL becomes a level of the trail. You can rename, reorder, or remove levels afterwards.
Reads existing BreadcrumbList JSON-LD, microdata, or RDFa, or the visible breadcrumb links on the page (including Rank Math, Yoast, and WooCommerce breadcrumbs). Nothing is uploaded.
Your code
JSON-LD for the page's <head> or body.
How to use the Breadcrumb Schema Generator
-
Start the trail
Click Build from a URL and paste the page's address, or Auto-fill from page HTML to reuse existing breadcrumbs. You can also type each level.
-
Fix names and links
Replace each name with the title people see on that page, and make sure every level links to a real page.
-
Reorder or add levels
Use the arrow buttons to move levels, and + Add a level to insert one before the current page.
-
Add another trail if needed
If the page belongs to two categories, click + Add another trail and fill in the second path.
-
Copy and test the code
Copy the script tag into the page, and the Breadcrumb HTML if you need visible breadcrumbs. Then click Check in the JSON-LD Validator.
Example: breadcrumb schema with two trails
A product page that shoppers reach through two paths: Women › Shoes and Running. Each trail is a separate BreadcrumbList with its own @id, combined in one @graph. This is the JSON-LD the breadcrumb schema generator creates.
Trail 1: Home https://www.example.com/
Women https://www.example.com/women/
Shoes https://www.example.com/women/shoes/
Trail Runner 2 (current page)
Trail 2: Home https://www.example.com/
Running https://www.example.com/running/
Trail Runner 2 (current page)
Current page URL: https://www.example.com/products/trail-runner-2/
Options: include the current page's URL, add an @id
{
"@context": "https://schema.org",
"@graph": [
{
"@type": "BreadcrumbList",
"@id": "https://www.example.com/products/trail-runner-2/#breadcrumb",
"itemListElement": [
{
"@type": "ListItem",
"position": 1,
"name": "Home",
"item": "https://www.example.com/"
},
{
"@type": "ListItem",
"position": 2,
"name": "Women",
"item": "https://www.example.com/women/"
},
{
"@type": "ListItem",
"position": 3,
"name": "Shoes",
"item": "https://www.example.com/women/shoes/"
},
{
"@type": "ListItem",
"position": 4,
"name": "Trail Runner 2",
"item": "https://www.example.com/products/trail-runner-2/"
}
]
},
{
"@type": "BreadcrumbList",
"@id": "https://www.example.com/products/trail-runner-2/#breadcrumb-2",
"itemListElement": [
{
"@type": "ListItem",
"position": 1,
"name": "Home",
"item": "https://www.example.com/"
},
{
"@type": "ListItem",
"position": 2,
"name": "Running",
"item": "https://www.example.com/running/"
},
{
"@type": "ListItem",
"position": 3,
"name": "Trail Runner 2",
"item": "https://www.example.com/products/trail-runner-2/"
}
]
}
]
}
Positions start at 1 in each trail. The second trail's @id ends in #breadcrumb-2 so both can be referenced. With only one trail, the code is a single BreadcrumbList without @graph.
This breadcrumb schema generator creates BreadcrumbList JSON-LD that follows Google’s breadcrumb documentation. Paste a page URL to turn its folders into a trail, or paste the page’s HTML to reuse breadcrumbs you already have. Then rename, reorder, and check each level, add a second trail if the page sits in two categories, and copy the matching breadcrumb HTML for your page.
What is breadcrumb schema?
A breadcrumb trail shows where a page sits on a website, such as Home › Blog › Technical SEO › Core Web Vitals guide. Breadcrumb schema is the structured data version of that trail: a BreadcrumbList made of ListItem entries, each with a position, a name, and a URL.
Google uses breadcrumb structured data to understand how your pages are organized, and it can show the trail in desktop search results in place of a plain URL. That makes the result easier to read and shows searchers the section the page belongs to. Breadcrumb markup isn’t a ranking factor, but it is one of the simplest and most widely supported types of structured data.

What Google requires for BreadcrumbList schema
Breadcrumb structured data has a short list of required properties, and the generator fills in all of them:
| Property | What it is | Notes |
|---|---|---|
itemListElement | The levels of the trail, in order | Google needs at least two ListItems. |
position | The level’s number, starting at 1 | Added and renumbered automatically when you reorder levels. |
name | The label people see | Use the page’s short title, such as “Blog”. |
item | The URL of that level’s page | Required for every level except the last. Without it, Google uses the URL of the page the code is on. |
Google also says the trail doesn’t have to include the homepage or the current page. Most sites include both, because it matches the visible breadcrumbs on the page.
Follow the user’s path, not the URL
Google asks for breadcrumbs that represent a typical path a person takes to the page, instead of a copy of the URL structure. Build from a URL is a fast starting point, and the breadcrumb schema generator already skips folders that usually aren’t real pages, such as /category/, /tag/, and date folders like /2026/10/. After building, check two things:
- Every level is a real page. A folder in the URL doesn’t always have its own page, and a breadcrumb that links to a 404 or a redirect doesn’t help anyone.
- Every name matches the page. Names created from URLs, such as “Core Web Vitals Guide”, are a guess. Replace them with the titles people see on your site.
Multiple breadcrumb trails
Some pages can be reached through more than one path. A pair of running shoes might sit under both Women › Shoes and Running. Google supports this: add a BreadcrumbList for each path. Click + Add another trail, and the breadcrumb schema generator starts the new trail with the same homepage and current page, so you only add the levels in between. With two or more trails, the breadcrumb schema is output as one @graph, each trail with its own @id.
Keep extra trails to real alternative paths. Two identical trails, or trails that end with different page names, are flagged in the checks.
Visible breadcrumbs and accessible HTML
Structured data should describe what is on the page, so the best breadcrumb markup matches a visible breadcrumb trail. The Breadcrumb HTML tab gives you that trail as accessible navigation: a nav element labeled “Breadcrumb”, an ordered list of links, and aria-current="page" on the current page, with a few lines of CSS for the separators. Screen readers announce it as breadcrumb navigation and skip the separator characters.
Breadcrumb schema in WordPress and other platforms
SEO plugins such as Rank Math and Yoast can add BreadcrumbList to every page automatically, and many themes do too. Before adding breadcrumb schema by hand, view the page source or use Auto-fill from page HTML: the tool reads existing BreadcrumbList JSON-LD, microdata, and RDFa, and visible breadcrumbs from Rank Math, Yoast, and WooCommerce. If the page already has correct breadcrumb markup, don’t add a second version.
This breadcrumb schema generator is most useful for custom-built sites, static sites, landing page builders, and pages where the automatic trail is wrong. The optional @id (the page URL plus #breadcrumb) lets a WebPage in your schema point to the trail with its breadcrumb property, and the Schema Graph Combiner can join them into one graph.
Common breadcrumb markup mistakes
These are the problems the checks catch most often:
- A trail with one level. Google needs at least two ListItems.
- Relative URLs such as
/blog/. Each item needs a full URL with https:// and your domain. - The whole trail in one name, like “Blog > SEO”, instead of one level per row.
- Tracking parameters and #fragments in URLs, instead of each page’s canonical URL.
- Links to another website, or a mix of http:// and https:// URLs.
- Mixed trailing slashes, which can send every breadcrumb click through a redirect.
Adding and testing the markup
Paste the script tag into the page’s HTML, then click Check in the JSON-LD Validator to test the breadcrumb schema in the JSON-LD Validator. Confirm the live page with Google’s Rich Results Test, and watch the Breadcrumbs report in Search Console after Google recrawls your pages. If you add breadcrumbs to an article page, the Article Schema Generator can create the Article markup for the same page.
Breadcrumb Schema Generator FAQ
What does Google require for breadcrumb schema?
A BreadcrumbList with at least two ListItems. Each ListItem needs a position and a name, and every item except the last needs the URL of its page.
Should the last breadcrumb have a URL?
It's optional. If you leave it out, Google uses the URL of the page the code is on. Including it is fine and lets the trail have its own @id.
Do breadcrumbs have to match my URL structure?
No. Google recommends breadcrumbs that show a typical path people take to the page. Building from a URL is a starting point; adjust the levels to match how your site is organized.
Can a page have more than one breadcrumb trail?
Yes. Google supports several BreadcrumbList trails on one page, for example a product listed in two categories. Add each path as its own trail.
Does Rank Math or Yoast already add breadcrumb schema?
Both can add BreadcrumbList automatically. Check your page source first; if correct breadcrumb markup is already there, don't add a second version.
Do breadcrumbs still show in Google search results?
Google shows breadcrumbs in desktop search results. Breadcrumb markup also helps Google understand how your pages are organized.
Related tools
JSON-LD Validator
Validate JSON-LD against schema.org and Google's rich result rules, find exact syntax errors, and auto-fix common mistakes.
Schema @graph Combiner
Merge separate JSON-LD blocks into one connected @graph: duplicates removed, stable @id values added, and conflicts flagged for review.
Article Schema Generator
Create Article, BlogPosting, and NewsArticle JSON-LD with image checks, author best practices, and correct dates. Auto-fill it from your page.
Organization Schema Generator
Create Organization and WebSite JSON-LD for your homepage, with logo checks, profile links, contact points, and validated business identifiers.
Person Schema Generator
Create Person and ProfilePage JSON-LD for author, About, and team pages, with photo checks, clean sameAs links, and credentials. Auto-fill it from your page.
Local Business Schema Generator
Build valid LocalBusiness JSON-LD for any of 131 business types, with opening hours, geo coordinates, and instant checks against Google's rules.