Breadcrumb Schema Generator
Add a row per level of your trail, reorder with the arrows, and get two outputs: the BreadcrumbList JSON-LD and a matching HTML nav snippet, because the visible trail must reflect the markup.
The last row is the current page. Its URL is optional, Google allows omitting it.
Where to paste this
The JSON-LD block goes anywhere in the head or body of the page, script tags included, one block per trail. The HTML snippet goes where your visible breadcrumb renders, typically just under the header. Both describe the same trail, keep them generated from the same data. After publishing, run the page through Google's Rich Results Test to confirm the BreadcrumbList is detected.
How positions and the last item work
Each level is a ListItem with a position counted from 1 at the top of the trail. This tool numbers them from row order, so reordering rows renumbers everything for you. The final item represents the current page: it always needs a name, but Google allows you to omit its URL, since the visitor is already there. The HTML snippet mirrors this by rendering the last crumb as plain text instead of a link when no URL is given.
Why trails get rejected
- Relative URLs. Every item URL must be absolute, https included. Relative paths are the most common reason a trail fails validation.
- Single-item trails. Google needs at least two levels to render a trail, a lone Home crumb does nothing.
- Markup without a visible trail. Structured data must reflect on-page content, so ship the HTML breadcrumb with the JSON-LD.
Frequently asked questions
Do breadcrumbs replace the URL in search results?
On desktop, yes. When Google accepts your BreadcrumbList markup it shows the crumb trail in place of the raw URL above your title, which usually reads cleaner than a long path of slugs. On mobile Google shows the site name and a shortened path, also informed by the markup.
Should breadcrumbs start at Home?
By convention, yes, and users expect it. The markup itself does not require it though. Google only needs an ordered list of at least two levels, so a trail starting at a top category is valid. If your visible trail starts at Home, the markup should too.
Can one page have multiple breadcrumb trails?
Yes, Google explicitly allows multiple BreadcrumbList blocks when a page is reachable through more than one path. In practice, mark up the canonical path, the one that matches your site hierarchy and visible trail, and only add a second trail when both paths genuinely appear on the page.
Does the visible trail have to match the markup?
Yes. Structured data must reflect content that is on the page. A BreadcrumbList with no visible breadcrumb, or one that lists different levels than the visible trail, risks being ignored or flagged as misleading markup. That is why this tool generates the HTML snippet alongside the JSON-LD.