# Breadcrumb Schema: How to Add and Test BreadcrumbList

> Add breadcrumb schema with a practical JSON-LD example. Choose a useful trail, check your CMS output, and test the live page before expanding the setup.

Canonical: https://www.getdexseo.com/blog/structured-data-for-seo/breadcrumb-schema/
Author: Dex SEO, Editorial team
Published: Oct 19, 2026 · Updated: Oct 19, 2026

## Key takeaways

- Choose a stable site path that helps readers find related pages.
- Check existing CMS output before adding another breadcrumb block.
- Adapt the code to real labels and links, then test the public URL.
- Use page quality checks alongside a dedicated schema test.

Breadcrumb schema describes a page’s place in a website. Add it after you choose a useful trail for readers, then test the live page. A neat code sample is only the start: the links, labels, and page layout must work together.

This guide walks through a small service blog example. You will map the trail, build a JSON-LD list, check your CMS output, and review the result after launch. For the wider context, see our [structured data for SEO guide](https://www.getdexseo.com/blog/structured-data-for-seo/).

## Choose a breadcrumb trail that helps readers

Start with the page, not the code. Ask which section a reader would use to find it again. A trail should make that path clear. Avoid adding levels just to fit more keywords or make the site look larger. If a trail leads through author pages, [connect author profiles to their articles](https://www.getdexseo.com/blog/structured-data-for-seo/person-schema-for-authors/) so those destinations are useful too.

Imagine a home repair business with a blog about common jobs. One post explains how to fix a loose door handle. A useful path might be: Home repair guides → Doors → Fix a loose door handle. This is a made-up example, not a test of a live business.

Each parent should serve a purpose. The Doors page could group related guides and help readers choose their next step. If it is an empty archive, improve it before using it as a key part of the trail. Click each link as a visitor would.

A breadcrumb is a site path, not the visitor’s browser history. Do not build a different trail just because someone came from an ad or a search result. Choose a stable path that makes sense within your site.

## Check what your CMS already creates

Open a sample post and look for the visible breadcrumb near the title. Then check the rendered page for BreadcrumbList. A theme, SEO plugin, or custom template may already add it. A visible trail and a JSON-LD block are separate things, so check both. If your CMS also generates post data, [check Article and BlogPosting fields](https://www.getdexseo.com/blog/structured-data-for-seo/article-schema-markup/) separately from the breadcrumb trail.

Write down which tool owns the output before adding code. If the trail is correct, you may only need to change a setting or fix a parent page. Adding another block can make future changes harder to track.

If two tools describe the same path in different ways, trace the source of each one. Our guide to [duplicate schema markup in WordPress](https://www.getdexseo.com/blog/structured-data-for-seo/duplicate-schema-markup-wordpress/) covers that task. Keep this step focused on the breadcrumb; do not turn off all schema just to remove one wrong trail.

## Build a BreadcrumbList in JSON-LD

Schema.org calls the ordered trail a BreadcrumbList. Its entries can use ListItem objects with names, page links, and position numbers. The number states where each entry belongs, rather than relying on the order in which code happens to appear. Keep the navigation model separate from the business entity; [keep the business and publisher identity consistent](https://www.getdexseo.com/blog/structured-data-for-seo/organization-schema-markup/) at the site level.

The sample below describes our fictional repair guide. It is an example to adapt, not code to paste across every page. Replace the domain, labels, and links with your own real pages.

```
{
  "@context": "https://schema.org",
  "@type": "BreadcrumbList",
  "itemListElement": [
    {
      "@type": "ListItem",
      "position": 1,
      "name": "Home repair guides",
      "item": "https://example.com/guides/"
    },
    {
      "@type": "ListItem",
      "position": 2,
      "name": "Doors",
      "item": "https://example.com/guides/doors/"
    },
    {
      "@type": "ListItem",
      "position": 3,
      "name": "Fix a loose door handle"
    }
  ]
}
```

A developer can place this object inside a script element with type application/ld+json. In a CMS, use the tool that already owns the trail when possible. Do not place a new hard-coded sample in every post if one shared template can use each page’s actual data.

## Check the fields before you publish

Google’s breadcrumb requirements call for at least two ListItem entries. Each entry needs its position and the relevant name and page reference. In the final entry, the item URL may be omitted; Google then uses the containing page’s URL. The sample uses that option. For a product page, also [choose and test Product and Offer data](https://www.getdexseo.com/blog/structured-data-for-seo/product-schema-markup/) without mixing its offer into the navigation list.

Use these checks on your own trail:

-   Start positions at 1 and keep the sequence clear.
-   Use readable names that describe each step.
-   Check that parent links open the intended public pages.
-   Keep the chosen language consistent across the trail.
-   Remove sample domains and copied labels before release.

For a translated guide, link to the parent section in that language. A Spanish post should not send readers into an English category by mistake. Also check the final URL after a slug change. A code sample can pass a syntax test while pointing to the wrong place.

## Test the code and the live page

Run the sample through Google’s Rich Results Test before release. Use the code view while you draft, then test the public URL after the CMS saves it. Fix errors in the output the test actually sees, not just in a local copy.

Next, open the page in a fresh browser view. Check the trail on a small screen. Long labels should not hide the article title or make links hard to tap. Use a keyboard to move through the links as well. These are practical page checks, separate from a schema test.

Pick a few pages with different layouts: a short post, a long title, and a post with more than one category. Record the expected path beside the path shown. That small check sheet makes it easier to spot a template rule that works for one page but fails for another.

## Fix wrong paths without rewriting the whole site

If a post shows the wrong parent, first check its category and any primary-category setting. Then check the template rule. A shared rule should produce a clear path for all pages that use it. Avoid a patch that fixes one post but breaks its neighbors.

Two genuine navigation paths can be valid; Google documents support for multiple trails. That differs from two tools publishing conflicting copies of the same path. Keep a second trail only when it reflects a real way to browse the site.

Before changing a shared template, save the current settings and test the change on a safe copy of the site. Recheck the same sample pages afterward. If a parent URL moved, repair the trail at its source so future posts use the right destination too.

## Review breadcrumbs as part of page quality

After release, use Search Console to inspect the page and review breadcrumb issues it reports. Google currently lists breadcrumb search appearance for desktop. Valid markup does not promise a special display, more clicks, or a ranking gain. If a breadcrumb issue appears in a report, [fix and validate Search Console schema issues](https://www.getdexseo.com/blog/structured-data-for-seo/structured-data-errors-search-console/) after testing the live trail.

DEX Health can help you review the wider quality and SEO of the live page, including on the free plan. Use that broader review alongside the schema test. A high page score is useful feedback, but it does not prove that Google has accepted a breadcrumb or chosen to show it.

When you publish new guides, keep the section pages and links useful as the cluster grows. Explore DEX if you want page checks alongside your content work. Keep a clear owner for the breadcrumb template, and repeat the sample-page checks when the theme, plugin, or site structure changes.

## FAQ

### Who should own the breadcrumb setup?

Assign one person to review the shared template and its source settings. Editors can check page labels and categories, while a developer handles changes to code when needed.

### Should I add breadcrumbs to a one-page site?

A trail needs a useful hierarchy. If there is no parent section to visit, focus on clear page navigation rather than inventing levels just to add markup.

### When should I retest the trail?

Check it after changes to the theme, SEO plugin, category rules, or page URLs. Keep a small set of sample pages so you can compare the same cases each time.

## Sources

- [Breadcrumb structured data](https://developers.google.com/search/docs/appearance/structured-data/breadcrumb) — Google
