Breadcrumbs

Breadcrumbs are the trail of links that shows where a page sits in your site. They help visitors move up, help crawlers discover sections, and can show in search results. This page covers what to add, how to mark it up, how to check it, and the traps to avoid.

By , founder of Porteur · Updated 14 September 2026 · Markdown

What they do for a small site

Breadcrumbs give visitors a quick way back to a parent page. On a page like /guides/search-console/inspections, a trail like Home, Guides, Search Console, Inspections reduces pogoing to the main nav.

They add internal links up your hierarchy. That helps crawlers reach categories and hubs you care about, like /guides or /pricing.

With BreadcrumbList structured data, Google can replace the URL line under a result with the trail. That makes the path clearer on the results page and can lift confidence to click.

How to add breadcrumbs: HTML and structured data

Place the trail near the top of the main content. Use an ordered list so the sequence is clear. Give the nav an aria-label so assistive tech announces it as breadcrumbs.

<nav aria-label="Breadcrumb">
  <ol>
    <li><a href="/">Home</a></li>
    <li><a href="/guides/">Guides</a></li>
    <li><a href="/guides/search-console/">Search Console</a></li>
    <li aria-current="page">Inspections</li>
  </ol>
</nav>

Add BreadcrumbList structured data. You can use JSON-LD without changing your HTML. The names should match what you display and the last item is the current page.

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "BreadcrumbList",
  "itemListElement": [
    {"@type": "ListItem", "position": 1,
     "name": "Home", "item": "https://yourproduct.com/"},
    {"@type": "ListItem", "position": 2,
     "name": "Guides", "item": "https://yourproduct.com/guides/"},
    {"@type": "ListItem", "position": 3,
     "name": "Search Console", "item": "https://yourproduct.com/guides/search-console/"},
    {"@type": "ListItem", "position": 4,
     "name": "Inspections"}
  ]
}
</script>

Base the trail on your site structure, not only the URL. If a blog post lives under /library/ but belongs in Guides, show it under Guides in the trail so users land in the right hub.

How to check your breadcrumbs

Validate the structured data. Use Google’s Rich Results Test on a sample of pages. Fix missing positions, wrong item URLs or mismatched names before rolling out.

Spot check the live HTML. Load a few deep pages and use a screen reader or browser accessibility tree to confirm the nav has aria-label Breadcrumb and the list order is correct.

Search for a page title in Google. Look at your result. When BreadcrumbList is picked up, the green or grey URL line becomes the trail, like Home › Guides › Search Console.

What to do on common page types

  • Home: no breadcrumb needed, or show Home only and mark it current.
  • Category or hub pages like /guides/: show Home, then the section, current unlinked.
  • Articles and docs: include Home, section, and the subcategory if you have one.
  • Product pages: show Home, Category, Product. For variants, keep the same trail.
  • Search or filter pages: avoid breadcrumbs if the path is not a stable hierarchy.

A fixed page looks like this after changes: on /pricing for a SaaS, show Home, Pricing, with Pricing unlinked, and validate the two-item BreadcrumbList.

Traps to avoid

  • Copying your header nav instead of the real hierarchy.
  • Linking the current page in the trail, which confuses assistive tech.
  • Letting CMS tags create multiple, conflicting paths for one page.
  • Using spans for everything, not an ordered list, so the order is unclear.
  • Stuffing keywords into crumb names that do not match the page titles.
  • Breaking canonicals and trails: if a page is canonical, its breadcrumb should reflect that canonical location.

Questions

Sources

Check my site, free

Paste a URL and get a free check that reads your site and the searches around it, then shows three breadcrumb findings in about thirty seconds.

  • Free check, no card
  • Read-only, your own accounts
  • Readable by your agent

Read next