ToolNimba Browse

🍞 Breadcrumb Schema (JSON-LD) Generator

By ToolNimba SEO Team · Updated 2026-06-19

Breadcrumb trail

Add one row per level, from the home page down to the current page. The last row is the page itself. Positions are numbered automatically. A URL on the last item is optional.

Preview trail

-

 

Paste this block into the head of the page it describes (it also works inside the body), then check it in Google’s Rich Results Test.

This breadcrumb schema generator builds valid BreadcrumbList JSON-LD for any page in seconds. Add one row for each step a visitor takes from your home page down to the current page, type the name and URL for each level, and the tool assigns the position numbers and outputs a ready-to-paste script block. Breadcrumb structured data helps search engines understand where a page sits in your site and can show a tidy breadcrumb trail in the search result instead of a plain URL.

What is the Breadcrumb Schema Generator?

A breadcrumb is the row of links near the top of a page that shows the path back to the home page, for example Home then Blog then the article title. BreadcrumbList is the schema.org type that describes that path to search engines in a structured way. Each step is a ListItem with a position (1, 2, 3 and so on), a name, and usually an item URL pointing to that page. Google reads this markup to display a breadcrumb trail in the search snippet, which makes your result clearer and can improve the click-through rate.

The markup is delivered as JSON-LD, a small block of JSON inside a script tag with the type application/ld+json. JSON-LD is Google's recommended format because it sits separately from your visible HTML and is easy to generate and maintain. The order of the items matters: position 1 is the top level (normally the home page) and the highest position is the current page. The position numbers must run in sequence starting at 1 with no gaps.

A common detail is whether to include a URL on the last item, the current page itself. Google's guidance allows you to leave the item off the final entry because that page is the one already being viewed. Both styles are valid, so this tool gives you a checkbox to drop the URL on the last item if you prefer. Whatever you choose, the breadcrumb markup should match the breadcrumbs that are actually visible on the page: structured data is meant to describe real on-page content, not to add a trail that users never see.

When to use it

  • Adding BreadcrumbList structured data to blog posts, product pages, or category pages so search results show a breadcrumb trail.
  • Generating valid JSON-LD without hand-writing the script block or worrying about position numbering.
  • Standardising breadcrumb markup across a site so every template uses the same correct structure.
  • Quickly producing a test block to paste into Google’s Rich Results Test while debugging breadcrumb errors.

How to use the Breadcrumb Schema Generator

  1. Add a level for each step in the trail, starting with your home page at the top.
  2. Type the name shown to users and the full URL for each level.
  3. Order the rows from the home page (position 1) down to the current page (the last row).
  4. Optionally tick the box to drop the URL on the last item (the current page).
  5. Copy the generated JSON-LD and paste it into the head of the matching page.

Formula & method

Each level becomes a ListItem: { "@type": "ListItem", "position": n, "name": "...", "item": "URL" }. Positions run 1, 2, 3 in order from the top level down to the current page, with no gaps. The item URL is optional on the final (current) page.

Worked examples

A three-level trail for a blog article: Home, Blog, then the post.

  1. Level 1: name Home, URL https://example.com/, position 1
  2. Level 2: name Blog, URL https://example.com/blog/, position 2
  3. Level 3: name How to bake sourdough, URL https://example.com/blog/sourdough/, position 3
  4. The tool wraps these three ListItem entries in a BreadcrumbList and adds the @context and @type fields.

Result: A BreadcrumbList with three ListItem entries numbered 1 to 3, ready to paste into the page head.

A two-level shop trail where you drop the URL on the current page.

  1. Level 1: name Home, URL https://shop.example/, position 1
  2. Level 2: name Running Shoes, URL https://shop.example/running-shoes/, position 2
  3. Tick the option to drop the URL on the last item.
  4. The second ListItem keeps its name and position but has no item URL, which Google allows for the current page.

Result: A two-item BreadcrumbList where position 2 carries a name and position only, no item field.

BreadcrumbList fields used in the generated markup

FieldWhere it appearsPurpose
@contextTop of the blockAlways set to https://schema.org so the vocabulary is understood.
@type: BreadcrumbListTop of the blockDeclares the whole object as a breadcrumb trail.
itemListElementTop of the blockThe ordered array of ListItem entries, one per level.
@type: ListItemEach levelMarks each entry as one step in the list.
positionEach levelThe order number, starting at 1 with no gaps.
nameEach levelThe visible label for that step, such as Home or Blog.
itemEach levelThe URL of that step. Optional on the final (current) page.

Common breadcrumb depths and their position numbers

Page typeTrailPositions
Top category pageHome, Category1, 2
Sub-category pageHome, Category, Sub-category1, 2, 3
Blog postHome, Blog, Post title1, 2, 3
Product pageHome, Category, Product1, 2, 3
Deep product pageHome, Department, Category, Product1, 2, 3, 4

Common mistakes to avoid

  • Breadcrumb markup that does not match the visible page. Structured data should describe breadcrumbs the user can actually see on the page. Adding a trail in JSON-LD that does not appear on screen can be treated as misleading markup and may be ignored or penalised.
  • Positions that skip numbers or start at 0. The position values must be 1, 2, 3 and so on in order, with no gaps and no zero. This generator numbers them for you, so keep the rows in the correct top-to-bottom order.
  • Using relative URLs in the item field. The item URL should be the full absolute address, including https and the domain, for example https://example.com/blog/. A relative path like /blog/ may not be resolved correctly.
  • Leaving the current page out of the trail. The final level should be the current page itself. You may drop its URL, but it should still appear as the last named item so the trail is complete.
  • Adding the same breadcrumb block twice. If your CMS or theme already outputs BreadcrumbList markup, pasting a second block creates duplicate breadcrumbs. Check the page source first and keep only one.

Glossary

Breadcrumb
The row of links showing the path from the home page to the current page, such as Home then Blog then the article.
BreadcrumbList
The schema.org type that describes a breadcrumb trail to search engines as an ordered list of items.
JSON-LD
JavaScript Object Notation for Linked Data, a script-based format and Google’s recommended way to add structured data.
ListItem
One step in the breadcrumb list, carrying a position number, a name, and usually an item URL.
position
The order number of a ListItem, starting at 1 for the top level and counting up to the current page.
Structured data
Machine-readable markup that describes the content of a page so search engines can understand and enhance it.

Frequently asked questions

What is breadcrumb schema?

Breadcrumb schema is structured data using the schema.org BreadcrumbList type that tells search engines the path from your home page to the current page. Google can use it to show a breadcrumb trail in the search result instead of a plain URL, which makes the listing clearer.

Where do I put the generated JSON-LD?

Paste the script block into the head of the page it describes. It also works anywhere in the body. Use one block per page, and make sure the breadcrumb levels in the markup match the breadcrumbs shown on that page.

Do I need a URL on the last breadcrumb item?

No, the URL is optional on the final item because that is the page being viewed. Google accepts a last item with just a name and position. This tool has a checkbox to drop the URL on the last level if you prefer that style.

How are the position numbers decided?

The generator numbers the levels automatically from top to bottom: the first row is position 1 (usually your home page) and the last row is the highest number (the current page). Keep the rows in the right order and the positions will be correct.

Can I have more than three breadcrumb levels?

Yes. Add as many levels as your trail needs by clicking Add level. A deep page might run Home, Department, Category, Product across four or more levels. The positions stay in sequence whatever the depth.

Will this guarantee breadcrumbs appear in Google?

No tool can guarantee a rich result. Valid BreadcrumbList markup makes a breadcrumb trail eligible, but Google decides whether to show it based on the page and the query. Test your block in Google’s Rich Results Test to confirm it is valid and eligible.