Schema Markup Generator

Free tool · No signup

Breadcrumb Schema Generator

BreadcrumbList markup describes where a page sits in your site, such as Home › Shoes › Running shoes. Google may show that trail instead of the raw URL in search results.

Required by Google

Breadcrumb trail

From the home page (or top category) down to the current page.

  1. step 1

    Optional for the last step, the current page.

  2. step 2

    Optional for the last step, the current page.

  3. step 3

    Optional for the last step, the current page.

JSON-LD

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "BreadcrumbList",
  "itemListElement": [
    {
      "@type": "ListItem",
      "position": 1,
      "name": "Home",
      "item": "https://www.example.com/"
    },
    {
      "@type": "ListItem",
      "position": 2,
      "name": "Shoes",
      "item": "https://www.example.com/shoes"
    },
    {
      "@type": "ListItem",
      "position": 3,
      "name": "Trail Running Shoe"
    }
  ]
}
</script>

Valid BreadcrumbList markup

In the Rich Results Test, choose Code and paste. Your data stays in this browser: nothing is sent to a server.

Search preview · approximate

example.com › Shoes › Trail Running Shoe

Trail Running Shoe

Google can show this trail in place of the page URL.

Google can show the breadcrumb trail in place of the URL on desktop results. Google's gallery

What Google can show

Google can show the breadcrumb trail in place of the URL on desktop results.

Required and recommended properties

Google needs these for Breadcrumb markup to be valid:

RequiredNotes
Breadcrumb trailFrom the home page (or top category) down to the current page.

A complete example

The example values in the generator above produce this:

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "BreadcrumbList",
  "itemListElement": [
    {
      "@type": "ListItem",
      "position": 1,
      "name": "Home",
      "item": "https://www.example.com/"
    },
    {
      "@type": "ListItem",
      "position": 2,
      "name": "Shoes",
      "item": "https://www.example.com/shoes"
    },
    {
      "@type": "ListItem",
      "position": 3,
      "name": "Trail Running Shoe"
    }
  ]
}
</script>

Where to paste the code

  • WordPress: check what your SEO plugin (Yoast, Rank Math) already outputs, then add the block with a header-code plugin such as WPCode, or in your child theme's header.php before </head>. For one page only, use a Custom HTML block in that page.
  • Shopify: for site-wide markup such as Organization, go to Online Store › Themes › Edit code and paste it in theme.liquid before </head>. For products, edit the product section (often main-product.liquid) and use Liquid variables such as {{ product.title | json }} so every product gets its own values. Most themes already output basic Product markup.
  • Next.js: render it in the page component as <script type="application/ld+json" dangerouslySetInnerHTML={{ __html: JSON.stringify(data).replace(/</g, "\\u003c") }} />. Escaping < stops a value from closing the script tag early; this site does the same.
  • Webflow: Page settings › Custom code › Inside <head> tag. For CMS collection pages, add it to the template's page settings and insert fields from the collection.

Test before you publish

Paste the code into Google's Rich Results Test, then test the live page once it's published. Make sure every value matches what people see on the page.

By Muhammad Saif · Updated

Questions

Does the breadcrumb markup need to match the visible breadcrumbs?

Yes. Mark up the trail people can see on the page. If a page sits in several categories, pick the one you show, or add one BreadcrumbList per visible trail.

Should the home page be the first item?

It's common but not required. Start from whatever the visible breadcrumb starts with, usually Home or the top-level category.

Does schema markup improve rankings?

Not directly. Google has said structured data isn't a general ranking factor. It makes pages eligible for rich results, such as review stars, prices and breadcrumbs, which can make a result stand out and earn more clicks.

JSON-LD or Microdata?

JSON-LD. Google recommends it because it sits in one script block, separate from your HTML, so it's easier to add and maintain. Microdata and RDFa still work but are woven into the markup.