Skip to content

Breadcrumb navigation

Do the subpages show a trail such as "Home › Services › Heating", visibly and as structured data for Google?

What we check

We choose up to three subpages the home page links to, as deep as possible and from different sections. Legal pages, login, customer areas, cart and search are left out, and so are other language versions such as /fr/ or /int_en/. A language folder such as /en/ does not count as a level. On every page we look for two things:

  • Visible trail: a breadcrumb navigation, recognisable by its markup (such as class="breadcrumb" or aria-label="Breadcrumb"), with at least one link.
  • Structured data: a BreadcrumbList after schema.org as JSON-LD, Microdata or RDFa.

If both are missing on all checked pages, that is a warning on websites with two or more levels and a note on flat websites. If only one of the two is missing, there is a note. Websites without subpages are not checked.

Why it matters

Most visitors do not arrive via the home page. They land on a subpage directly from Google search, from a chat or from a newsletter. The breadcrumb navigation answers in one line: where am I, what belongs here, how do I get one level up?

For Google the trail is just as useful:

  • In the search result Google shows the trail instead of the address, such as "example.ch › Services › Heating". That is more readable and clicked more often. The structured data is the prerequisite.
  • For the structure Google learns how the pages relate and can show subpages as sitelinks.
  • For AI services the BreadcrumbList is one of the few clear statements of which page belongs to which section.

Google requires structured data to describe visible content. A BreadcrumbList without a visible trail violates the guidelines.

How to fix it

HTML

A trail with links to all levels except the current one, embedded in a labelled nav:

<nav aria-label="Breadcrumb">
  <ol class="breadcrumb">
    <li><a href="/">Home</a></li>
    <li><a href="/services/">Services</a></li>
    <li aria-current="page">Heating</li>
  </ol>
</nav>

Structured data

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "BreadcrumbList",
  "itemListElement": [
    { "@type": "ListItem", "position": 1, "name": "Home", "item": "https://www.example.ch/" },
    { "@type": "ListItem", "position": 2, "name": "Services", "item": "https://www.example.ch/services/" },
    { "@type": "ListItem", "position": 3, "name": "Heating" }
  ]
}
</script>

WordPress

Yoast SEO and Rank Math generate both: enable the "Breadcrumbs" feature, then place the block or shortcode in the theme where you want it. Many themes and page builders such as Elementor have a breadcrumb element of their own.

Wix, Jimdo, Squarespace

Wix has a breadcrumb element in the editor. Squarespace and Jimdo offer none; there a manual link "Back to services" at the top of the page helps, and the structured data can be added via code injection.

How to check it yourself

Open a subpage on the second level. Is there a trail at the top, and do its elements lead to the parent pages? Google's "Rich Results Test" (search.google.com/test/rich-results) shows whether the BreadcrumbList is recognised.

Frequently asked questions

My website has only five pages. Do I need breadcrumbs?

Visibly not necessarily, which is why we only give a note on flat websites. The structured data still pays off: Google then shows "example.ch › Contact" in the search result instead of the address.

Why do you check subpages and not the home page?

The home page is the start of every trail and has none itself. We load up to three subpages linked from the home page and look there.

Should the breadcrumb navigation include the home page?

Yes, as the first element, usually "Home" or "Start". The last element is the current page, without a link.

Check a website now

We check "Breadcrumb navigation" and all other points in a few minutes, free and without sign-up.