UtilityToolsLab

© 2026 UtilityToolsLab. Built and maintained by the UtilityToolsLab Team.

Free eBooks·About·Changelog·Privacy Policy·Terms of Service·Report a bug
HomeSchema & Structured DataBreadcrumb Schema

Related Tools

LocalBusiness JSON-LDArticle SchemaFAQ SchemaProduct Schema

Breadcrumb Schema Generator

Build a schema.org BreadcrumbList JSON-LD block from an ordered page trail, ready to paste into your page. 100% client-side, no uploads.

You Might Also Like

All Schema & Structured Data

LocalBusiness JSON-LD

Build LocalBusiness JSON-LD with opening hours modelled properly: split shifts, merged day ranges and round-the-clock trading all come out correct.

Article Schema

Build Article, BlogPosting or NewsArticle JSON-LD with author, publisher and date properties. Flags a headline over Google's 110-character limit.

FAQ Schema

Build a schema.org FAQPage JSON-LD block from your own questions and answers, ready to paste into your page. 100% client-side, no uploads.

Product Schema

Build a schema.org Product JSON-LD block with brand, SKU, price, availability and star ratings. Empty fields are dropped, so the markup stays valid.

The breadcrumb trail rendered under a Google search result, something like example.com › Docs › API Reference, comes from a BreadcrumbList block, and Google builds it entirely from your JSON-LD rather than from any visible navigation on the page. A trail that’s visually correct on screen but missing from the markup, or numbered out of order in the markup, simply doesn’t show up as a rich result.

List your page hierarchy top to bottom, one level per row, with a name and a URL. The tool numbers each entry automatically and wraps the result in a ready-to-paste <script type="application/ld+json"> tag.

Worked Example: Docs Site, 3 Levels Deep

The tool loads with Home, Docs, and API Reference already filled in, each with its own URL. The output numbers them position: 1 through position: 3 in order, and every level carries an item URL since all 3 rows have one filled in. Click Load Sample again and the next trail leaves the final row’s URL blank on purpose — that row’s JSON object comes out with only @type, position, and name, no item key at all.

Format Notes: Positions and the Optional Last URL

  • Every block opens with the same 2 fixed keys as every schema on this platform: "@context": "https://schema.org" and "@type": "BreadcrumbList".
  • position always starts at 1, never 0, and counts only the rows that have a name filled in — an empty row in the middle of the form doesn’t leave a gap or a skipped number in the output.
  • A URL typed without a scheme, like example.com/docs, is corrected to https://example.com/docs automatically, so a copy-pasted domain never ships a broken relative link.
  • Leaving a row’s URL empty omits the item key from that entry entirely rather than writing an empty string. Google’s own reference documents this specifically for the final, current-page level, though the tool doesn’t restrict the option to the last row.

Edge Cases: Empty Rows and a Single Level

A row with no name typed is silently left out of the JSON, the same way an incomplete row is dropped in every schema generator on this platform; the tool shows “Fill in at least one page name to generate schema.” only once every row is empty. A single row still produces syntactically valid BreadcrumbList JSON-LD, but a trail 1 level deep carries no navigational information for Google to render, so it doesn’t enable the rich result on its own; breadcrumbs need at least 2 levels to mean anything.

Level 1
Level 2
Level 3 (current page)
3 levels · JSON-LD
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "BreadcrumbList",
  "itemListElement": [
    {
      "@type": "ListItem",
      "position": 1,
      "name": "Home",
      "item": "https://example.com"
    },
    {
      "@type": "ListItem",
      "position": 2,
      "name": "Docs",
      "item": "https://example.com/docs"
    },
    {
      "@type": "ListItem",
      "position": 3,
      "name": "API Reference",
      "item": "https://example.com/docs/api"
    }
  ]
}
</script>

A URL typed without http:// or https:// is prefixed with https:// automatically. Leaving a level’s URL blank omits the item key from that entry entirely rather than emitting an empty string; Google’s spec allows this specifically for the last, current-page level. Google’s own Rich Results Test is the authoritative way to confirm a page qualifies for the breadcrumb rich result once it’s live.