SEO · Structured data

Breadcrumb Schema Generator

This breadcrumb schema generator builds valid BreadcrumbList JSON-LD from the trail of pages leading to yours. It numbers the positions for you and checks that every breadcrumb but the last has a URL.

Eligible for a Google rich result

Breadcrumb markup lets Google show a page’s position in the site hierarchy in its result. Google needs at least two breadcrumbs, each with a name and a position.

Status verified on 24 September 2026 · Google’s BreadcrumbList documentation

Fill in your details

BreadcrumbsRequired

In order, from the top of the site to the current page. Positions are numbered automatically.

Breadcrumb 1

The last breadcrumb may omit the URL.

Breadcrumb 2

The last breadcrumb may omit the URL.

Breadcrumb 3

The last breadcrumb may omit the URL.

{
  "@context": "https://schema.org",
  "@type": "BreadcrumbList",
  "itemListElement": [
    {
      "@type": "ListItem",
      "position": 1,
      "name": "Books",
      "item": "https://example.com/books"
    },
    {
      "@type": "ListItem",
      "position": 2,
      "name": "Science Fiction",
      "item": "https://example.com/books/sciencefiction"
    },
    {
      "@type": "ListItem",
      "position": 3,
      "name": "Award Winners"
    }
  ]
}

Validation — no errors

All required and recommended fields are present and correctly formatted.

Rich result preview (illustration)

example.com › Books › Science Fiction › Award Winners
Your page title

An illustration of the kind of result this markup could produce — not a guarantee. Google decides whether to show a rich result at all.

The markup is generated in your browser from what you type. Nothing is uploaded.

Breadcrumb schema: required vs recommended properties

BreadcrumbList has one required property, itemListElement, and each ListItem in it needs a name, a position and, except for the last one, a URL.

PropertyStatusFormatNotes
BreadcrumbsRequiredRepeated groupIn order, from the top of the site to the current page. Positions are numbered automatically.
Breadcrumbs › NameRequiredText
Breadcrumbs › URLOptionalURLThe last breadcrumb may omit the URL.

Is BreadcrumbList markup eligible for a Google rich result?

Breadcrumb markup lets Google show a page’s position in the site hierarchy in its result. Google needs at least two breadcrumbs, each with a name and a position.

Status verified on 24 September 2026. Google’s documentation: https://developers.google.com/search/docs/appearance/structured-data/breadcrumb

About Breadcrumb structured data

A BreadcrumbList describes where a page sits in your site: Home, then a category, then a sub-category, then the page. Google can use it to show that path in the search result instead of a raw URL, which helps people understand what kind of page they are about to open.

Because it is only a list of names and URLs, it is one of the easiest structured data types to get right. The two rules that trip people up are the minimum of two items and the position numbering, which starts at one.

Common Breadcrumb schema mistakes

  • Providing only one breadcrumb. Google requires at least two ListItems for a valid BreadcrumbList.
  • Starting the positions at 0. Position 1 is the first breadcrumb.
  • Leaving the URL off a breadcrumb that is not the last. Only the final item may omit it, because Google uses the page’s own URL.
  • Mirroring the URL path instead of a real user path. Breadcrumbs should show a typical route to the page, not just the folders in its address.
  • Markup that does not match the visible breadcrumbs on the page.
  • Adding a breadcrumb for the home page and the page itself. Neither is required.

Breadcrumb schema example

A three-level trail — Books, Science Fiction, Award Winners — with the last item leaving out its URL, as generated on this page, is shown below.

{
  "@context": "https://schema.org",
  "@type": "BreadcrumbList",
  "itemListElement": [
    {
      "@type": "ListItem",
      "position": 1,
      "name": "Books",
      "item": "https://example.com/books"
    },
    {
      "@type": "ListItem",
      "position": 2,
      "name": "Science Fiction",
      "item": "https://example.com/books/sciencefiction"
    },
    {
      "@type": "ListItem",
      "position": 3,
      "name": "Award Winners"
    }
  ]
}

How to use it

  1. Fill in the breadcrumb details — the form marks each field Required, Recommended or Optional.
  2. Watch the JSON-LD and the validation list update as you type.
  3. Copy the JSON-LD, the HTML script tag or the Next.js snippet, or download the .json file.
  4. Paste it into your page, then check it with Google’s Rich Results Test.

Frequently asked questions

How many breadcrumbs do I need?

At least two ListItems for the markup to be valid. Most pages have between two and five.

Does the last breadcrumb need a URL?

No. The last item may omit its URL because Google uses the URL of the page the markup is on.

Should breadcrumbs match my URL structure?

Not necessarily. They should show a typical path a visitor takes to the page, which may differ from the folders in the URL.

Do I need to include the home page?

It is not required. You can include it as the first breadcrumb, or start from the first category.

Can a page have more than one breadcrumb trail?

Yes. A product in two categories can have two BreadcrumbList blocks, one for each route.

Valid markup makes a page eligible for a rich result; it does not guarantee one. Google decides what to show. Test your page with Google’s Rich Results Test before relying on it.