SchemaValid
ENDE

Breadcrumb Schema Generator

Create valid BreadcrumbList JSON-LD structured data for your pages — add each navigation level and the positions are numbered automatically, ready for Google's breadcrumb rich results. Instant, in your browser, free.

Try an example

Breadcrumb levels

Level 1
Level 2

The position of each level is numbered automatically from top to bottom — you don't enter it. The URL is optional; you may leave it out on the last (current) page.

JSON-LD code

Add at least one level with a name to generate the JSON-LD code.

Why Breadcrumb schema matters

BreadcrumbList structured data describes the position of a page within your site's hierarchy — for example Home › Tools › Breadcrumb Schema Generator. When it is valid, Google can replace the plain URL in a search result with a readable breadcrumb trail, showing users exactly where the page sits before they click. This makes your listing clearer and more trustworthy, and it can improve click-through. Breadcrumbs also help search engines and AI assistants understand how your content is organized, which supports better crawling and more accurate context in generated answers. It is simple, low-risk markup that almost every content page benefits from.

How positions are numbered

Each item in a breadcrumb trail needs a position — an integer that reflects its place in the path, starting at 1 for the top level (usually the homepage) and increasing by one for each step down. Getting these out of order or skipping numbers is a common mistake that invalidates the markup. This tool removes that risk entirely: you just add the levels in order and it numbers the positions automatically, so they are always sequential and correct. Each level has a name (the visible label) and an optional item, which is the URL of that page. The URL can be omitted on the final, current page, since the user is already there.

How to add the schema to your site

Copy the generated code and paste it into a script tag of type application/ld+json in the head section of the page whose breadcrumb trail it describes. The names and order in the markup should match the breadcrumb navigation visible on the page. A minimal example looks like 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": "Tools",
      "item": "https://www.example.com/tools/"
    }
  ]
}
</script>

Frequently asked questions

Which fields are required for Breadcrumb schema?
Each list item needs a name and a position. This tool requires at least one level with a name and numbers the positions for you. The item (URL) is recommended for every level except the last, current page.
Why is the URL field called "item"?
In BreadcrumbList JSON-LD the URL of each level is stored in a property named item, not url. This tool uses the label URL in the form for clarity but outputs it as item in the generated code, exactly as Google expects.
Do I need to enter the position manually?
No. The position is calculated automatically from the order of your levels, starting at 1 at the top. Just add, remove and reorder levels — the tool keeps the positions sequential so they are always valid.
Can I leave the URL out on the last item?
Yes. Google allows the item URL to be omitted on the final breadcrumb because it represents the current page. Fill in the name and simply leave the URL field empty for that last level.
How do I validate the markup?
Paste your page URL or the generated code into Google's Rich Results Test or the schema.org validator. They parse the JSON-LD and report whether the BreadcrumbList structure is valid and eligible for breadcrumb rich results.
What is Breadcrumb schema markup?
Breadcrumb schema markup is a JSON-LD snippet based on the schema.org BreadcrumbList type that tells search engines where a page sits within your site's navigation hierarchy, as an ordered list of named, positioned steps. It doesn't add anything to what a visitor sees — it's a structured description of the visible breadcrumb trail, aimed at search engines.
Does Breadcrumb schema directly affect my ranking?
Not directly — it isn't a ranking factor on its own. What it does is help Google understand your site's structure more reliably and can make your search listing show a readable path instead of a raw URL, which tends to improve click-through even without moving your position.
Does the visible breadcrumb trail need to match the schema exactly?
Yes. The names, order and URLs in the markup should mirror what a visitor actually sees on the page. A mismatch between the visible trail and the structured data is inconsistent and can lead Google to ignore the markup.
How many breadcrumb levels should I include?
Include every level that meaningfully reflects the page's place in your site, typically somewhere between two and five. Avoid padding the trail with extra steps just to look thorough — an unnecessarily long or overly deep path is harder to read and rarely adds value.
Can I combine Breadcrumb schema with other schema types?
Yes. BreadcrumbList markup is independent of Product, Article, FAQPage or any other schema type on the same page — each is its own JSON-LD block, and having several together is normal and expected, not a conflict.
What's the difference between breadcrumb navigation and breadcrumb schema?
Breadcrumb navigation is the clickable trail (like Home › Shoes › Running Shoes) that visitors see and use on the page. Breadcrumb schema is the invisible JSON-LD twin of that same trail, written so machines can parse it instead of having to infer it from the page layout.
What are common mistakes when adding Breadcrumb schema?
The most frequent ones are numbering positions out of order, using a relative path instead of an absolute URL in the item field, and letting the markup drift out of sync with the visible trail after a page gets moved or renamed. This tool avoids the numbering mistake automatically since positions are calculated for you.

Related tools