Pick one canonical category path per product and mark that path up in a single BreadcrumbList. Google's breadcrumb documentation describes the trail as the page's position in the site hierarchy, so parallel paths are not all expressible. Validate the chosen trail with the Rich Results Test, then confirm the rendered page and URL Inspection output agree before asking Google to recrawl.
What does Google actually say a breadcrumb represents?
Google's Breadcrumb (BreadcrumbList) structured data documentation states that a breadcrumb trail indicates the page's position in the site hierarchy and may help users understand and explore a site. The same page lists the required properties as the BreadcrumbList container plus itemListElement entries carrying item, name and position.
That wording matters for catalogue sites. A hierarchy is a single ordered chain, not a set of alternatives. If a product is reachable through /outdoor/tents/ and /sale/camping/, both are real navigational paths, but the breadcrumb markup can only describe one chain without becoming ambiguous. Google does not publish a rule that says "use the shortest path" or "use the path with the most traffic", so any choice you make is an editorial decision you must be able to defend and keep stable.
Why multiple category paths break naive breadcrumb markup
The common failure is not a syntax error. It is a mismatch between three things that should agree:
- the visible breadcrumb trail rendered on the page;
- the
BreadcrumbListJSON-LD in the HTML; - the URL the page is actually served from.
When a product lives in several categories, templates often inherit the breadcrumb from whichever category the visitor arrived through, or from the first category assigned in the CMS. The markup then changes depending on session state, referrer or template order. Google's guidance is to deploy a few pages, use the URL Inspection tool to test how Google sees the page, and allow time for recrawling. A trail that flips between requests makes that verification unreliable.
A diagnostic method for multi-path products
Use this sequence on a sample of affected product URLs rather than the whole catalogue.
- List the real paths. For each sampled product, record every category URL that links to it. This is your evidence base, not an assumption about the template.
- Choose the canonical path. Pick the category that best describes what the product is, not where it is promoted. Keep a written reason per product family.
- Compare visible and marked-up trails. The rendered breadcrumb and the
itemListElementsequence should name the same categories in the same order. - Check
positionvalues. They should start at 1 and increase without gaps or duplicates. - Confirm the final
item. The last element should point at the product URL that is actually served, matching the canonical URL. - Run the Rich Results Test. Fix critical errors first; non-critical issues are optional for eligibility but can improve quality.
- Inspect the live URL. Use URL Inspection to see the crawled version, then request recrawling once the page is stable.
Example (hypothetical)
A retailer sells a camping stove reachable through /kitchen/camping-stoves/ and /clearance/outdoor/. The team decides the product's identity is a camping stove, so the canonical trail is Home > Kitchen > Camping Stoves > Product. The clearance path stays live for shoppers but is excluded from the markup. The JSON-LD contains four ListItem entries with position 1 to 4, and the visible trail matches. This is an illustration of a decision process, not a measured outcome.
Decision table: which path becomes the breadcrumb?
| Situation | Reasonable choice | Watch out for |
|---|---|---|
| Product belongs to one obvious family | That family path | Seasonal or promotional paths overriding it in the template |
| Product genuinely spans two families | The family a shopper would name first | Internal debate stalling the fix; document the tie-break |
| Product is only in a promotional path | The nearest stable category | Promotions expiring and leaving a dead trail |
| Product is discontinued | Keep a stable category trail | Redirecting the product to a category page changes the trail's meaning |
| Same product, regional storefronts | Per-market canonical path | Copying one market's trail into another market's template |
What the evidence supports, and what it does not
The documentation supports the mechanics: required properties, JSON-LD, RDFa or Microdata formats, validation with the Rich Results Test, and checking rendered output with URL Inspection. It also notes that recrawling and reindexing can take time.
It does not promise that a valid breadcrumb produces a particular search appearance. Breadcrumb rich results are described as available on desktop in all regions and languages where Google Search is available, but eligibility is not a guarantee of display. Treat markup as a correctness and clarity exercise, not a lever with a predictable visual payoff.
Common validation errors and how to read them
- Missing
itemon a middle element. Usually a template that renders a category name without a URL. Either supply the URL or reconsider whether that level belongs in the trail. - Duplicate or skipped
position. Often caused by concatenating two category arrays. Rebuild the sequence from the chosen path. - Trail that does not match the URL. Frequently a caching or personalisation artefact. Test with caching disabled and without session state.
- Breadcrumb present in markup but absent on the page. Google's guidance centres on the page's position in the hierarchy; a trail users cannot see is hard to justify and hard to verify.
For catalogue hygiene more broadly, the same discipline of one canonical identity per entity appears in our notes on multiple barcodes per Shopify variant, where a single primary code is used when a system expects one value.
Where this fits alongside category page design
Breadcrumb decisions are downstream of category architecture. If category pages are built to help shoppers choose, the breadcrumb simply reflects the structure shoppers already experience, as discussed in our guide to ecommerce category pages that help shoppers choose. Fix the architecture first, then encode it.
Follow-up questions
Can I mark up more than one breadcrumb trail for the same product?
There is no documented mechanism for declaring parallel hierarchies in one BreadcrumbList. Multiple BreadcrumbList blocks on a single page create ambiguity about which trail describes the page. Choose one path, keep it stable, and let secondary paths exist as ordinary internal links.
Does a valid breadcrumb guarantee a breadcrumb in search results?
No. Validation confirms your markup meets the documented requirements. Whether a breadcrumb appears in a given result depends on Google's systems and is not something the documentation promises. Validate for correctness, and judge outcomes separately.