Skip to content
SEO

Breadcrumb Schema Generator

Generate BreadcrumbList JSON-LD for navigation trails.

breadcrumbschemajson-ldnavigationseo
Loading tool…

Recommended tools

Affiliate links — we may earn a commission if you sign up.

About the Breadcrumb Schema Generator

The Breadcrumb Schema Generator produces BreadcrumbList JSON-LD for the navigation trails that appear in search results. It opens with a sample three-level trail — Home, Blog, and Sustainable Coffee Guide — which you can edit directly; each crumb has a Name field and a URL field, and only items whose URL is a valid http(s) address make it into the schema. Buttons let you add crumbs up to a limit of thirty, remove them down to one, and reorder the trail with up and down arrows, while a live visual preview renders the trail exactly as a visitor would see it, with chevron separators and the current page in bold. Position numbers in the output are assigned automatically based on the final order, so reordering the list renumbers the schema for you. Invalid URLs are flagged inline with an "invalid" hint and counted in the stats panel, and the finished JSON downloads as breadcrumbs.json. Replacing a search engine's guessed URL path with a clean breadcrumb trail gives your listing a compact, structured appearance that often wins clicks, and keeping the visible breadcrumb on the page identical to the schema is a key part of Google's guidelines.

Hand-written guide

Examples

Input
The three sample crumbs: Home / https://example.com/ · Blog / https://example.com/blog · Sustainable Coffee Guide / https://example.com/blog/sustainable-coffee
Output
{
  "@context": "https://schema.org",
  "@type": "BreadcrumbList",
  "itemListElement": [
    {
      "@type": "ListItem",
      "position": 1,
      "name": "Home",
      "item": "https://example.com/"
    },
    {
      "@type": "ListItem",
      "position": 2,
      "name": "Blog",
      "item": "https://example.com/blog"
    },
    {
      "@type": "ListItem",
      "position": 3,
      "name": "Sustainable Coffee Guide",
      "item": "https://example.com/blog/sustainable-coffee"
    }
  ]
}
Note: The visual preview shows the trail with chevron separators and the last item in bold. Stats report 3 total items, 3 valid, 0 invalid.
Input
Change the Blog URL to "/blog" (a relative path) and leave everything else unchanged
Output
{
  "@context": "https://schema.org",
  "@type": "BreadcrumbList",
  "itemListElement": [
    {
      "@type": "ListItem",
      "position": 1,
      "name": "Home",
      "item": "https://example.com/"
    },
    {
      "@type": "ListItem",
      "position": 2,
      "name": "Sustainable Coffee Guide",
      "item": "https://example.com/blog/sustainable-coffee"
    }
  ]
}
Note: The relative URL is flagged with an "invalid" hint and a red border, counted in the Invalid stat, and excluded from the schema. Remaining items renumber automatically, so the guide becomes position 2.
Input
Use the up arrow to move "Sustainable Coffee Guide" above "Blog" in the list
Output
  "itemListElement": [
    {
      "@type": "ListItem",
      "position": 1,
      "name": "Home",
      "item": "https://example.com/"
    },
    {
      "@type": "ListItem",
      "position": 2,
      "name": "Sustainable Coffee Guide",
      "item": "https://example.com/blog/sustainable-coffee"
    },
    {
      "@type": "ListItem",
      "position": 3,
      "name": "Blog",
      "item": "https://example.com/blog"
    }
  ]
Note: The visual preview updates to Home > Sustainable Coffee Guide > Blog, and the position numbers in the JSON-LD renumber to match the new order.

How to use

  1. 1

    Edit the three sample crumbs, filling the Name and URL fields for each level of your trail.

  2. 2

    Use the up and down arrows to reorder the trail — positions in the schema renumber automatically.

  3. 3

    Add more levels with Add breadcrumb (up to 30) or remove items with the trash button.

  4. 4

    Watch for the "invalid" hint on any URL that is not http(s) — invalid items are excluded from the JSON-LD.

  5. 5

    Copy or download the BreadcrumbList JSON-LD from the result box and make sure the visible breadcrumb on your page matches it.

Common use cases

  • E-commerce category trails — emit schema for Home > Category > Subcategory > Product paths at scale.
  • Blog topic clusters — add breadcrumbs that reinforce hub pages in the URL path structure.
  • Support docs — structure troubleshooting guides under Home > Help Center > Topic for SERP trails.
  • Multi-level landing pages — generate deep trails for campaign pages that live several clicks from the homepage.
  • Schema refreshes — renumber and re-emit trails after information architecture changes without hand-editing JSON.
  • Client SEO audits — generate the correct BreadcrumbList as the deliverable for sites that show URL paths in SERPs.

Technical SEO best practices

  • Use absolute http(s) URLs in every crumb — the generator rejects relative paths because Google requires full URLs in the item property.
  • Keep the schema order identical to the visible breadcrumb on the page, including the final current-page item.
  • Give each position a distinct, descriptive name — repeating the same label across levels confuses both users and crawlers.
  • Mark up only the trail users can see; breadcrumb text that exists only in the schema is against Google's guidelines.
  • Ensure every crumb URL returns 200; linking intermediate levels to 404s breaks the chain's value.
  • Keep trails shallow at three to five levels; deep nesting adds little crawl benefit and clutters the SERP path.

Tips

  • Start from the sample and replace crumb by crumb — the three-level structure covers most page types.
  • Read the visual preview out loud as a user would: Home > Blog > Post should make sense as a path.
  • Keep the trail in sync with your navigation menu labels; mismatched names confuse users.
  • Re-emit the schema after URL structure changes, since the old JSON still references dead paths.

Frequently asked questions

An item is only included when its name is filled and its URL passes validation as an absolute http(s) address. Relative paths like /blog and malformed strings are flagged with an invalid hint and a red border, counted in the Invalid stat, and left out of the JSON-LD. Fix the URL and the item reappears with the correct position number automatically.

Explore more seo tools

Browse the full collection of seo tools on the hub, or jump back to all categories.