- Use hierarchy-based breadcrumbs that reflect the site structure, not the user's click history.
- Each level except the current page should be a crawlable link.
- Add BreadcrumbList structured data that matches the visible trail.
- Pick one primary path for pages that live in several categories.
- Google shows breadcrumb paths in desktop results, and removed them from mobile results in 2025.
A breadcrumb trail usually sits near the top of a page and looks something like: Home > Guides > Technical SEO > Canonical Tags. It is small, and it does a surprising amount of work.
Why breadcrumbs help
- Orientation: visitors arriving from search on a deep page can see where they are.
- Navigation: one click takes them up to a broader category.
- Internal linking: every page links to its parents, which strengthens category pages across the site.
- Search appearance: Google can replace the raw URL in a desktop result with a tidy breadcrumb path.
- Structure signals: they reinforce how the site is organised.
Types
- Hierarchy-based: shows the page's position in the site structure. This is the type to use for SEO.
- Attribute-based: shows selected filters on an ecommerce listing.
- History-based: shows the path the user took. It is of little value, since the back button does the same and the trail differs for every visitor.
HTML
<nav aria-label="Breadcrumb">
<ol>
<li><a href="/">Home</a></li>
<li><a href="/guides/">Guides</a></li>
<li><a href="/guides/technical-seo/">Technical SEO</a></li>
<li aria-current="page">Canonical Tags</li>
</ol>
</nav>
An ordered list inside a nav element with an aria-label is the accessible pattern. The final item is the current page and does not need to be a link.
Structured data
<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": "Guides", "item": "https://www.example.com/guides/" },
{ "@type": "ListItem", "position": 3, "name": "Technical SEO", "item": "https://www.example.com/guides/technical-seo/" },
{ "@type": "ListItem", "position": 4, "name": "Canonical Tags" }
]
}
</script>
The last item can omit the item URL, in which case Google uses the page's own URL. The markup should mirror the visible breadcrumb.
Best practice
- Start from the homepage and include each real level.
- Link to indexable pages. Every crumb should lead to a page that exists and returns 200.
- Keep labels short and consistent with the names used in navigation.
- Choose one canonical path when a product sits in several categories. Showing a different trail depending on how the user arrived creates inconsistency.
- Put them in the server-rendered HTML.
- Keep them visible on mobile, even if they need to scroll horizontally or be truncated.
- Do not use them as a replacement for the main navigation.
Breadcrumbs and URLs
Breadcrumbs do not have to match the URL path. A flat URL such as /canonical-tags can still have a breadcrumb showing its logical parents. What matters is that the trail reflects a sensible hierarchy.
How Google displays them
On desktop, Google often shows the breadcrumb path above the title in place of the URL. In early 2025 it simplified mobile results to show only the domain, so breadcrumb trails no longer appear there. The markup is still worth having for desktop display and for the structural understanding it provides.
Common mistakes
- Structured data that does not match what users see.
- Crumbs linking to redirected, noindexed or missing pages.
- Only one level, which is not much of a trail.
- Missing position values or positions out of order.
- Several conflicting BreadcrumbList blocks on a page without intending to offer multiple trails.
- Breadcrumbs hidden on mobile to save space.
How to test
- The Rich Results Test validates BreadcrumbList markup.
- Search Console's Breadcrumbs enhancement report shows errors across the site.
- A crawl confirms that every breadcrumb link resolves to a 200 page.
The GEO angle
Breadcrumbs give a machine-readable statement of what category a page belongs to. For an AI system working out what a page is about and how it relates to the rest of your site, "Guides, then Technical SEO, then Canonical Tags" is a compact and useful piece of context, both in the visible links and in the markup.
Add your title here
This is a paragraph. Writing in paragraphs lets visitors find what they are looking for quickly and easily. Make sure the title suits the content of this text.




