Media Morpheus

How-To Guideby Media Morpheus Research

October 10, 2026 · Last fact-checked: October 10, 2026

How to Add Breadcrumb Structured Data: BreadcrumbList JSON-LD, Visible Trails and Validation

To add breadcrumb structured data, decide the trail a typical visitor follows to a page, show it as visible links, describe the same trail in a BreadcrumbList JSON-LD block with at least two ListItem entries, then check it in the Rich Results Test and Search Console. The main prerequisite is a site hierarchy you can describe in a sentence. This guide has seven steps. Key warning: since January 23, 2025, Google shows breadcrumbs in desktop results only; on mobile the visible URL is the domain alone.

Structured dataBreadcrumbsSchema.orgTechnical SEO

At a Glance

  • Google's rule: “define a BreadcrumbList that contains at least two ListItems”, each with position, name and item (the URL), and the last item may omit item (Google Search Central).
  • Google recommends breadcrumbs that show “a typical user path to a page, instead of mirroring the URL structure.”
  • On January 23, 2025, Google stopped showing breadcrumbs in mobile results; they “continue to appear on desktop search results” and the markup is still supported (Google Search Central Blog).
  • Schema.org reports BreadcrumbList in use on “10M+” domains, based on Google's August 2026 index aggregations (schema.org).
  • Valid markup makes a page eligible, not guaranteed: “Google does not guarantee that your structured data will show up in search results, even if your page is marked up correctly” (Google guidelines).

What Is Breadcrumb Structured Data?

Breadcrumb structured data is a BreadcrumbList block, usually JSON-LD, that tells search engines the ordered chain of pages leading to the current page, so a search result can show a site path instead of a raw URL.

Schema.org defines a BreadcrumbList as “an ItemList consisting of a chain of linked Web pages, typically described using at least their URL and their name, and typically ending with the current page” (schema.org). Google uses it to build the path shown above a desktop result. Google's documentation says the feature “is available on desktop in all regions and languages where Google Search is available” (Google). It is one of several types covered in our guide to rich results, and it sits alongside Organization markup and Article markup on most content sites.

How to Add Breadcrumb Structured Data at a Glance

StepActionExpected result
1Map the trail a typical visitor followsOne agreed path per page type
2Show the trail as visible linksAn accessible breadcrumb on the page
3Write the BreadcrumbList JSON-LDA block with two or more ListItems
4Set positions, names and URLs correctlyPositions from 1, absolute URLs, matching names
5Generate it from your templatesMarkup on every page that has a trail
6Validate in the Rich Results TestNo critical errors
7Monitor in Search ConsoleValid items rising, invalid items flat

Time: an hour for a template change on a small site (our estimate); Google may take days to recrawl. Tools: a text editor or CMS template, the Rich Results Test, Search Console. Cost: none. Skill level: beginner to intermediate; you need access to page templates.

Schema.org adoption band: BreadcrumbList and other common types

Classification from schema.org usage bands (domains), not a measurement: bar length shows band rank only

BreadcrumbList
10M+
ListItem
10M+
Article
10M+
FAQPage
1M to 10M
VideoObject
1M to 10M
HowTo
100K to 1M

Source: schema.org type pages for BreadcrumbList, ListItem, Article, FAQPage, VideoObject and HowTo, “Based on monthly aggregations from Google's web index. (Google - August 2026)”, read October 10, 2026.

Schema.org publishes bands, not counts. Each band covers a tenfold range, so bar length shows rank on a four-step scale (10M+ = full width, 1M to 10M = three quarters, 100K to 1M = half, 10K to 100K = a quarter), not proportional domain counts: a half-length bar means roughly 10 to 100 times fewer domains, not half as many. Adoption is not a measure of how often Google displays a rich result.

What You Need Before Starting

Step 1: Map the Trail a Typical Visitor Follows

Write down the path a reader would take from your top section to the page. Google's documentation says to use breadcrumbs that represent “a typical user path to a page, instead of mirroring the URL structure” (Google).

Process: list each page type (article, product, category, location) and its parent sections. Where a page sits in two sections, pick the one most readers use. Including a ListItem for the home page or for the page itself is optional, according to Google. Expected result: one trail per page type, written as Section > Subsection > Page. Verify: every section in the trail has its own live, indexable URL. Common mistake: copying folder names from the URL, which produces labels like “cat-2” that no reader would recognize as a path.

Step 2: Show the Trail as Visible, Accessible Links

Put the same trail on the page as a list of links. Google's general guidelines say: “Don't mark up content that is not visible to readers of the page” (Google).

The W3C accessibility pattern describes a breadcrumb as “a list of links to the parent pages of the current page in hierarchical order”, contained in a navigation landmark labelled with aria-label, with aria-current set to page on the link to the current page (W3C WAI). A minimal version:

<nav aria-label="Breadcrumb">
  <ol>
    <li><a href="/research">Research</a></li>
    <li><a href="/research/structured-data">Structured data</a></li>
    <li><a href="/research/structured-data/breadcrumbs" aria-current="page">Breadcrumb markup</a></li>
  </ol>
</nav>

Expected result: a breadcrumb readers and screen readers can use. Common mistake: marking up a trail in JSON-LD that does not appear anywhere on the page.

Step 3: Write the BreadcrumbList JSON-LD

Add one script type="application/ld+json" block that lists the trail in order. Google's general guidelines name JSON-LD as the recommended format, alongside Microdata and RDFa (Google).

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "BreadcrumbList",
  "itemListElement": [{
    "@type": "ListItem",
    "position": 1,
    "name": "Research",
    "item": "https://example.com/research"
  },{
    "@type": "ListItem",
    "position": 2,
    "name": "Structured data",
    "item": "https://example.com/research/structured-data"
  },{
    "@type": "ListItem",
    "position": 3,
    "name": "Breadcrumb markup"
  }]
}
</script>

The structure follows Google's own example. itemListElement is required and is described as “An array of breadcrumbs listed in a specific order”; each entry is a ListItem (Google). Expected result: a block that parses as JSON. Common mistake: a trailing comma after the last item, which breaks the whole block.

Step 4: Set Positions, Names and URLs Correctly

Each ListItem needs three things, per Google's required-properties table:

  • position: “The position of the breadcrumb in the breadcrumb trail. Position 1 signifies the beginning of the trail.” Schema.org adds that positions “should be integers, e.g. beginning with '1' for the first item in the list” (schema.org).
  • name: “The title of the breadcrumb displayed for the user.” Use the same words as the visible link.
  • item: “The URL to the webpage that represents the breadcrumb.” Google adds: “If the breadcrumb is the last item in the breadcrumb trail, item is not required.”

Process: use absolute canonical URLs, not relative paths or parameter versions. Expected result: a trail whose positions run 1, 2, 3 without gaps. Common mistake: pointing item at a redirected or non-canonical URL.

Step 5: Generate the Markup From Your Templates

Build the JSON-LD from the same data that produces the visible breadcrumb, so the two cannot drift apart.

Process: in a CMS, add the block to the article, category and product templates; many SEO plugins already output BreadcrumbList, so check the page source before adding a second one. On a static site, write the block into each page or generate it at build time. Expected result: one BreadcrumbList per page that shows a trail. Verify: view source on three page types and count the BreadcrumbList blocks. Common mistake: two plugins each emitting a different trail for the same page.

Step 6: Validate in the Rich Results Test

Paste the URL or code into Google's Rich Results Test. Google says: “Validate your code using the Rich Results Test and fix any critical errors”, and that fixing non-critical issues “isn't necessary to be eligible for rich results” (Google).

Process: test one URL per template, then use the URL Inspection tool in Search Console to see how Google fetched the live page; see how to check if a page is indexed. Pages blocked by robots.txt or noindex cannot qualify, because Google's guidelines say not to block structured data pages from Googlebot (Google). Expected result: “Breadcrumbs” detected with no critical errors. Common mistake: testing a staging URL that Google cannot reach.

Step 7: Monitor in Search Console

After Google recrawls the pages, open the breadcrumb report under rich results. Google describes the goal as “an increase of valid items, and no increase in invalid items” (Google).

Search Console's help page notes that the reports “aren't a comprehensive list of all detected items” and that “numbers in the reports reflect items not pages” (Search Console Help). A page with two trails counts twice. Expected result: valid items close to the number of pages with trails. Common mistake: reading a drop in mobile breadcrumb display as a markup failure; it is the January 2025 change.

Where Google shows breadcrumbs since January 23, 2025

Classification from Google Search Central, not a measurement

Desktop search results
shown
Rich Results Test
still supported
Search Console breadcrumb report
continues
Mobile search results
not shown (domain only)

Source: Google Search Central Blog, “Simplifying the visible URL element on mobile search results”, January 23, 2025; Google breadcrumb documentation, last updated September 8, 2026.

Full bar = Google says the surface shows or supports breadcrumbs; empty bar = Google says it does not. Values are categories, not quantities.

How to Verify It Worked

  • Markup: the Rich Results Test detects Breadcrumbs on a live URL with no critical errors.
  • Coverage: the Search Console breadcrumb report shows valid items for each template you changed.
  • Display: a desktop search for the page shows the domain followed by your trail. Display is at Google's discretion, so absence is not proof of an error.
  • Consistency: the visible trail and the JSON-LD use the same names in the same order.

How to Choose a Trail Structure

SituationRecommended trailWhy
Blog or research libraryResearch > Topic > ArticleMatches how readers browse; topic pages exist
Product in several categoriesThe category most visitors useGoogle asks for a typical user path
Flat site with no sectionsHome > Page, or no breadcrumbTwo items is the minimum; a one-level trail adds little
Location pages for a businessLocations > City > BranchPairs with LocalBusiness markup
URL folders that readers never seeIgnore the foldersGoogle says not to mirror the URL structure

Common Problems and Fixes

ProblemLikely causeFix
Error about a missing itemA middle ListItem has no URLAdd item to every entry except, optionally, the last
Breadcrumbs not detectedInvalid JSON or the block is injected after load and not renderedValidate the JSON; test the live URL, not pasted code
Two different trails reportedTheme and plugin both output markupDisable one source
No breadcrumb on phone resultsGoogle removed mobile breadcrumbs in January 2025Nothing to fix; check desktop
Invalid items rising after a redesignNew template dropped position or nameFix the template and use Validate Fix in Search Console

What Not to Do

  • Do not mark up a trail readers cannot see. Consequence: Google's guidelines treat hidden or misleading markup as a quality problem, and its breadcrumb page warns that markup outside the guidelines can lead to a manual action. Correction: show the same trail on the page.
  • Do not stuff keywords into breadcrumb names. Consequence: labels that misdescribe pages. Correction: use the visible section names.
  • Do not point items at redirects or parameter URLs. Consequence: Google may ignore or rewrite the trail. Correction: use canonical URLs.
  • Do not expect breadcrumbs to change rankings. Consequence: misplaced effort. Correction: treat the markup as a display and clarity aid; see does schema markup affect citation?

Frequently Asked Questions

Does breadcrumb structured data still matter after the mobile change?

Google says it continues to support breadcrumb markup for desktop results, the Search Console report continues, and the Rich Results Test still checks it. On mobile, results show only the domain in the visible URL.

How many items does a breadcrumb trail need?

Google requires a BreadcrumbList with at least two ListItems. Including the home page or the current page is optional.

Does the last breadcrumb need a URL?

No. Google says that if the breadcrumb is the last item in the trail, the item property is not required. Name and position are still needed.

Should breadcrumbs match my URL structure?

Not necessarily. Google recommends breadcrumbs that represent a typical user path to a page rather than mirroring the URL structure.

JSON-LD, Microdata or RDFa?

Google supports all three and recommends JSON-LD, which is the easiest to keep separate from page layout.

Will breadcrumb markup improve my rankings?

Google does not say so. It describes breadcrumbs as a way to show a page's position in the site hierarchy, and it does not guarantee any rich result even when markup is valid.

Sources and Methodology

This guide is built from Google's breadcrumb documentation (last updated September 8, 2026), Google's general structured data guidelines (last updated July 10, 2026), the January 23, 2025 Search Central blog post, the schema.org BreadcrumbList and ListItem pages, the W3C breadcrumb accessibility pattern and Search Console Help, all read on October 10, 2026. Quotations are from those pages. We validated the JSON-LD example as JSON but did not run it through the Rich Results Test on a live site or measure how often Google displays breadcrumbs. Adoption figures are schema.org's published bands, not exact counts.

  1. official Google Search Central, Breadcrumb (BreadcrumbList) structured data, last updated September 8, 2026. Read October 10, 2026.
  2. official Google Search Central Blog, Caitlin Dorsey, Simplifying the visible URL element on mobile search results, January 23, 2025. Read October 10, 2026.
  3. official Google Search Central, General structured data guidelines, last updated July 10, 2026. Read October 10, 2026.
  4. official Search Console Help, Rich result report overview. Read October 10, 2026.
  5. standards Schema.org, BreadcrumbList, including the usage band based on Google's August 2026 aggregations. Read October 10, 2026.
  6. standards Schema.org, ListItem. Read October 10, 2026.
  7. standards W3C Web Accessibility Initiative, Breadcrumb Pattern, ARIA Authoring Practices Guide. Read October 10, 2026.