🔒 SEO Vault

Shopify Breadcrumb Schema Not Showing in Google: Fix the Missing Breadcrumb Trail in Search Results

Google is showing the bare URL path under your product and collection results — yourstore.com › collections › shirts — instead of a clean Home › Shirts › Product trail. That happens when Google can't read valid BreadcrumbList structured data on the page: it's either missing entirely (plenty of Shopify themes draw visual breadcrumbs but ship no JSON-LD, or skip breadcrumbs altogether), broken (relative URLs, out-of-order positions, a missing name), or duplicated because a theme snippet and an SEO/schema app both inject it and Google discards the conflicting pair. None of this is kept with version history, so when a theme update or a schema app changes it, the trail just quietly drops out of search.

Step by step

  1. See it the way Google does. Run a live product or collection URL through Google's Rich Results Test (use Test Live URL, not pasted HTML) and open Search Console > Enhancements > Breadcrumbs. The Rich Results Test tells you whether a BreadcrumbList is detected at all and lists any errors ("Missing field 'name'", invalid 'item' URL); the Breadcrumbs report shows how many pages are valid vs. invalid sitewide. Nothing detected means the schema is missing; detected-but-invalid means it's a format break.
  2. Find out if the JSON-LD is even there, and who owns it. Open an affected page, view source (Ctrl+U / Cmd+Opt+U), and search for "BreadcrumbList". No match = your theme shows breadcrumbs visually (or not at all) but outputs no structured data, common on Dawn-based and many free themes, so Google has nothing to read. Two matches = a theme snippet and an app are both injecting it. Note where it lives, theme code (Online Store > Themes > Edit code, usually theme.liquid or the product/collection templates) or an app, because that's what you'll fix and what tends to break it.
  3. Repair or add the BreadcrumbList. The usual breaks: 'item' must be a full absolute URL (https://yourstore.com/...) not a relative path, 'position' must run 1, 2, 3 in order, every list item needs a 'name', and the URLs must match your real canonical page URLs. If a theme snippet and an app both add breadcrumbs, remove one source so there's a single block per page. If there's no schema at all, add a BreadcrumbList block to the right template (or enable breadcrumb schema in your SEO app), then re-test the live URL. Once it's clean, use URL Inspection > Request Indexing on the fixed pages, valid markup can still take days to a couple of weeks to surface as a trail, and display is never 100% guaranteed.
  4. Catch the next time it breaks, because it will. Breadcrumb schema lives in theme code or an injected app block, and the things that wipe or duplicate it (a theme update, a theme swap, installing or removing an SEO/schema app) do it silently. Shopify keeps no history of your structured data, so you usually only notice weeks later when the trail is gone and traffic has already slipped. Keep a daily snapshot of your SEO fields including structured data, so you're alerted the moment the BreadcrumbList changes, with the app that most likely touched it named, and can restore the working markup in one click instead of rebuilding it and waiting on another recrawl.

Source: Google Search Central: Breadcrumb (BreadcrumbList) structured data documentation

Related fixes

Never lose your SEO to an app again

SEO Vault keeps a daily snapshot of every SEO field on your store — meta titles, descriptions, alt-text, tags, handles (products AND collections) — and emails you the moment something changes in bulk, with the likely app responsible. One click restores yesterday's state, just the SEO fields. Free to monitor and get alerted; $14/mo for 1-click restore.

Protect my SEO — free →