Hey @Keestrack — glad you shared the store URL, had a look around and found a few concrete issues worth addressing. Here’s what’s likely behind the drop:
Issue 1 — Schema outputting localised pricing (PRIMARY CAUSE)
Your Shopify Markets is dynamically setting a localised currency per session:
Shopify.currency = {“active”:“INR”,“rate”:“57.48363”};
But your Product JSON-LD hardcodes NZD:
“priceCurrency”: “NZD”,
“price”: “3800.00”
While your OG tag reflects the localised currency — and your visible page price renders in that same localised format. Three different signals on one page. Google requires schema to match visible content. At 70k products, this mismatch is invalidating rich results at scale.
Even your Afterpay app caught it — there’s literally this comment in your source code:
Afterpay disabled: currency != NZD
Fix: In your product schema template, force base currency:
“priceCurrency”: {{ shop.currency | json }},
“price”: {{ variant.price | divided_by: 100.0 | json }},
Issue 2 — Duplicated URL in offer block
Your offer url field has the product path doubled:
“url”: “https://fastlanespares.co.nz/products/product-handle/products/product-handle?variant=43295633342691”
Google drops the entire offer block on a malformed and Error 404 URL. This is template-level so every product is affected.
Fix:
“url”: {{ shop.url | append: product.url | append: “?variant=” | append: variant.id | json }},
Issue 3 — Zero hreflang tags sitewide
Checked all three pages — not a single hreflang tag anywhere. With Markets active this is non-negotiable. Your country selector also shows only one localised market option, which suggests your Markets configuration isn’t publishing alternate locales correctly. Check Shopify Admin → Settings → Markets and confirm your primary market is properly published.
Issue 4 — Breadcrumb skips collection level
Your breadcrumb schema jumps Home → Product with no collection in between:
“itemListElement”: [
{“position”: 1, “name”: “Home”},
{“position”: 2, “name”: “Product Title”}
]
Add the collection as position 2 in your breadcrumb template:
{% if collection %}
{
“@type”: “ListItem”,
“position”: 2,
“name”: {{ collection.title | json }},
“item”: {{ shop.url | append: collection.url | json }}
},
{% endif %}
These are all fixable with targeted theme edits — nothing needs a rebuild. Get the schema currency and broken offer URL sorted first and you should see valid product counts recover within a few crawl cycles. Good luck!