SEO · Checked on every page
Breadcrumb navigation and structured dataWhat it checks and how to fix it
What it checks
Looks for breadcrumb navigation in the HTML (a nav labelled breadcrumb, a .breadcrumb or .breadcrumbs list, or BreadcrumbList microdata) and for a BreadcrumbList in JSON-LD. Passes when the JSON-LD is there; warns when a visible trail has no JSON-LD counterpart, or when the BreadcrumbList has no items or items without a name. Pages with no breadcrumbs at all are skipped.
Why it matters
Google shows a breadcrumb trail instead of the raw URL in search results when it finds BreadcrumbList markup, which makes the result easier to read and more likely to be clicked. The trail also tells crawlers and AI assistants how a page fits in the site's hierarchy, and a list with missing names is ignored altogether.
How to fix it
Keep the visible trail and describe the same trail in JSON-LD. Every item needs a position and a name, and every
item except the last one needs a URL.
<nav aria-label="Breadcrumb">
<ol>
<li><a href="/">Home</a></li>
<li><a href="/guides">Guides</a></li>
<li aria-current="page">DMARC setup</li>
</ol>
</nav>
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "BreadcrumbList",
"itemListElement": [
{ "@type": "ListItem", "position": 1, "name": "Home", "item": "https://example.com/" },
{ "@type": "ListItem", "position": 2, "name": "Guides", "item": "https://example.com/guides" },
{ "@type": "ListItem", "position": 3, "name": "DMARC setup" }
]
}
</script>