Breadcrumb Schema Generator: How to Build Valid BreadcrumbList JSON-LD
Understand with AI
Discuss with your preferred AI assistant
Google’s preferred way to add breadcrumb structured data — a single script block in the head.
Every crumb needs a position, a name, and (except the last) an absolute item URL.
Google recommends dropping the item on the current page — our toggle does it for you.
Breadcrumbs are the small trail of links — usually Home › Category › Subcategory › This Page — that shows visitors where a page sits in your site's hierarchy. When you describe that trail with BreadcrumbList structured data, Google can replace the raw URL in search results with a clean, clickable breadcrumb path. The result is a tidier listing, better context, and often a higher click-through rate.
This guide explains what breadcrumb schema is, how the JSON-LD is structured, how to generate it correctly, and the mistakes that quietly stop it from showing in the SERP.
What Is Breadcrumb Schema?
Breadcrumb schema is a piece of structured data — markup that describes your page to search engines in a machine-readable format. Specifically, it uses the schema.org BreadcrumbList type to spell out the ordered path from your homepage down to the current page.
Google supports three formats for structured data, but for breadcrumbs the recommended and most maintainable choice is JSON-LD: a small <script> block you drop into your page's <head>. It lives separately from your visible HTML, so it never interferes with layout or styling.
When Google parses valid breadcrumb markup, it can display the breadcrumb trail in place of the URL in search results — and breadcrumbs are also a key signal for how it understands your site architecture.
Anatomy of BreadcrumbList JSON-LD
A BreadcrumbList is an ordered list of ListItem entries. Each item has three parts:
- position — a 1-based integer marking the order, starting at the homepage.
- name — the human-readable label shown in the trail, e.g. "Running Shoes".
- item — the absolute URL the crumb points to. Per Google's guidance, the final crumb (the current page) may omit
itembecause the user is already there.
The key rules are that positions must be sequential, URLs must be absolute (a relative path like /shoes is invalid), and the order must reflect the real hierarchy from broad to specific. Our generator handles all of this for you — including turning relative paths into absolute URLs using the base URL you provide.
How to Generate Breadcrumb Schema, Step by Step
1. Map the page's real hierarchy
Write out the trail exactly as a visitor would travel it: start at Home, then each category and subcategory, ending on the current page. The trail should mirror your URL structure and site navigation, not an idealized one.
2. Add a base URL
Enter your site origin (for example https://example.com). This lets you type short relative paths like /shoes/running and have them resolved into the absolute URLs that schema.org requires.
3. Name and link each crumb
Give each level a concise, descriptive name and its destination URL. Keep names short — they should match what the visitor sees in your on-page breadcrumbs.
4. Decide whether to omit the last URL
Google recommends dropping the item on the final crumb since it represents the current page. Toggle this on if you want to follow that best practice; both forms are valid.
5. Copy or download, then validate
Copy the <script> block into your page's <head> (or download the .json), then run it through Google's Rich Results Test and the Schema Markup Validator to confirm it is eligible.
Breadcrumb Schema Best Practices
- Match the visible breadcrumbs. The trail in your markup should reflect the breadcrumbs users actually see on the page.
- Use absolute URLs. Every
itemmust be a fullhttps://address, not a relative path. - Keep positions sequential. Start at 1 for the homepage and increment by one with no gaps.
- Mirror the URL structure. A logical, shallow hierarchy is easier for both users and crawlers to follow.
- Provide one trail per page. If a page belongs to multiple paths, pick the single most relevant trail rather than stacking several BreadcrumbLists.
Common Breadcrumb Schema Mistakes
These are the issues that most often keep breadcrumbs from appearing in search results:
| Mistake | Why it breaks |
|---|---|
Relative URLs in item | Google needs an absolute URL to resolve and display the crumb. |
| Out-of-order or skipped positions | Non-sequential positions invalidate the list ordering. |
| Markup that doesn't match the page | A trail unrelated to the visible breadcrumbs can be ignored or flagged. |
| Duplicate URLs across crumbs | Each level should point to a distinct page in the hierarchy. |
| Missing names | Every ListItem requires a non-empty name. |
Expert Tips
Always use absolute URLs
Schema.org requires full https:// addresses in the item field. Set a base URL so short paths like /shoes/running resolve to absolute URLs automatically.
Validate before you ship
Paste the script into your head, then run Google’s Rich Results Test and the Schema Markup Validator. A valid trail is what makes you eligible for the breadcrumb rich result.
Frequently Asked Questions
What is breadcrumb schema used for?
Breadcrumb schema (BreadcrumbList JSON-LD) describes a page's position in your site hierarchy so Google can show a clean breadcrumb trail in search results instead of the raw URL. It also helps search engines understand your site structure.
Do I need to add a URL to the last breadcrumb?
No. Google recommends omitting the item property on the final crumb because it represents the current page the visitor is already on. Both including and omitting it are valid, and our generator lets you toggle this.
Does breadcrumb schema improve SEO rankings?
It is not a direct ranking factor, but it improves how your listing appears (a breadcrumb trail instead of a URL), which can lift click-through rate, and it strengthens Google's understanding of your site architecture — both of which support SEO indirectly.
Where do I put the breadcrumb JSON-LD on my page?
Paste the generated <script type="application/ld+json"> block into the <head> of the page it describes. Then validate it with Google's Rich Results Test to confirm it is eligible for rich results.