Shopify Markets caused collapse in Google product snippets & organic impressions

Since enabling Shopify Markets around Sep 2025, our Google organic results and impressions dropped sharply and Product Snippets/Merchant Listings in Search Console collapsed from ~70k valid items to ~670. Products are still indexed, Rich Results Test validates correctly, and Merchant Center still shows ~75k approved products.

Wondering if Markets/alternate URLs/canonical handling could be affecting Google’s confidence in our product entities and organic rankings.

Hey @Keestrack good that you posted this — this one’s trickier than it looks on the surface.

Quick but important thing to know first — Google Search Console and Google Merchant Center are two completely independent platforms. Products showing as approved in Merchant Center simply means your shopping feed passed Google’s feed requirements. That’s it. It does not mean those product pages are indexed or visible in Google’s organic search results. The organic crawler works entirely on its own and couldn’t care less what Merchant Center says. So the 75k approved products and the snippet collapse in Search Console are not related — they’re coming from two separate systems measuring two separate things.

Now coming to the actual drop — honestly, without seeing the store we can’t pinpoint anything specific. Jumping to conclusions before auditing the site wouldn’t be fair to you. The reason could be one thing or five things happening together. We’d need to get into the store and check indexed pages, canonical tag configuration, whether any pages are blocked via robots.txt or noindex, how hreflang is set up post-Markets, sitemap accuracy, structured data validity, internal linking patterns, and several other SEO factors that could be silently causing this.

Could you please share your Shopify store URL? Once we have that we can actually dig in and give you a real answer instead of assumptions. Thanks!

Hey @mastroke, thanks for the detailed reply. My website is fastlanespares.co.nz

Fingers crossed you can see what’s going on as this has been such a frustrating problem!

It sounds like you’re dealing with a classic case of “Metadata Confusion” triggered by Shopify Markets. When you expand into multiple regions, Google often gets tripped up by inconsistent hreflang tags and canonical URLs . If your regional pages aren’t perfectly mapped, Google loses confidence in which “Product Entity” is the primary one, leading to that massive collapse in Rich Snippets even if the Merchant Center feed remains valid.

You should audit your JSON-LD schema to ensure it’s firing correctly across all subfolders and check that your canonical tags aren’t accidentally pointing Google away from the local versions it’s trying to index. Managing these global SEO technicalities manually can be a nightmare, so I’d highly recommend using SearchPie. It’s specifically designed to handle complex multi-market indexing and schema issues, which should help restore your product listings in GSC

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!

Really appreciate the detailed breakdown, this is the first response that’s actually lined up with the timing and what I’m seeing in Search Console.

One thing i identified last night was that the theme was internally linking products using /collections/…/products/… URLs via within: collection, which likely created a huge amount of duplicate crawl paths at our scale (75k products). I’ve now removed that so all internal product links resolve directly to clean /products/… URLs instead.

Interested to hear your thoughts on that specifically - could that level of duplicate collection/product URL discovery realistically contribute to the massive spike in duplicate canonical issues and collapse in Merchant Listings/Product Snippets I’ve seen since Markets was enabled? Not sure if I want to change that URL path back to collection/product..

Correction – you can’t have hreflangs since all your markets/currencies share the same URL.

And since the URL is the same, you also have problems with price data being all over the place for the same URL.

Having multiple collection-aware URLs is an issue only because it eats up your crawl budget. Same way as recommended products default URLs do, but you seem to have those fixed already.

However, if canonical is set properly, Google will know to only index canonical.

Technically, “duplicate canonical issues” are not errors, you do not need to fix them (and also you would not be able to “fix” them because those are valid URLs)

“collapse in Merchant Listings/Product Snippets” is highly possible due to price inconsistencies.

You do have automatic geolocation redirection, so say Google Crawler from US will see one price in one currency, but crawler from another country datacenter will see different price/currency on the same URL.

Ideally, to use different price/currency you need to have different URL, like
/en-nz/products/holley-carburettor-fast-kit-rebuild-kit-1
/en-au/products/holley-carburettor-fast-kit-rebuild-kit-1
/en-us/products/holley-carburettor-fast-kit-rebuild-kit-1

In this case Shopify will be able to generate xreflangs.

But that will also multiply your number of URLs by the number of markets…
Still, this is a proper way, but if you follow this route, do not add all of those markets at the same time, do it one by one, start with the most important ones, combine some unimportant markets into one “international”…

Or, avoid automatic redirections and keep all prices in your main currency unless real person visitor decides to select a different one.
This way, Google crawler will only see one price/currency per URL.

And yes, your product structured data in JSON-LD needs attention as mentioned earlier – it does not look like a default theme code?

The one thing I’m hesitant to do is effectively hard-code NZD for everyone or disable local currency behaviour completely as a decent portion of our customers are international and I feel forcing overseas visitors to manually switch currencies could hurt conversion rate and user experience quite a bit.

I’m honestly a bit lost on the best direction to take now, because all of these issues really only started after introducing Markets, which makes me feel like the root cause has to be tied more to the multi-currency / localisation side of things rather than anything else.

I’ve already cleaned up the canonical handling so products now point back to the clean /products/ URL rather than collection-aware URLs so I’m hoping that at least helps Google stabilise things again over time.

I think you’re probably onto something with the Merchant Listing/Product Snippet collapse being related more to inconsistent pricing/currency signals across the same URL rather than the duplicate canonical reports themselves.

Any further guidance would be great as this is very fustrating.

@tim_tairli @mastroke I’ve applied the fix for “Issue 2 - Duplicated URL in offer block” now, as that definitely looked like a genuine template issue affecting all product offer URLs sitewide.

Hoping that might make a difference once Google recrawls everything again.

Any guidance would definitely be appreciated

Google is officiall ending the FAQs and Rich Snippet result according to the Search Engine Land. Shopify has some issue related to google indexing like you have over 100 page and GSC shows 50 indexed and 50 not indexed.

The point is to prevent Google from getting mixed signals on the same URL.
Therefore the recommendation – either have different currencies on separate URLs, or stay with main currency on one URL.

You can still offer different currencies on one URL, but do not do automatic redirect/selection – this way only real people will be able to see the multitude of currencies, while crawlers will get clear signal.


Serving different currencies on different URLs is generally a recommended way.

Just do not add all markets at the same time – Google will be overwhelmed my the amount of new URLs to process – here goes your crawl budget.

You will choke it and for any new changes to apply you’d need to wait till all those alternate URLs are processed.


Since you’re serving multiple countries/currencies, you need to amend your product JSON-LD to reflect this.
Return and shipping policies are NZ only for all countries.

Reviews snippet lists 36 reviews in aggregateRating for all products which is questionable. There is also a snippet for one review, from “verified customer” for all products, which is also questionable.

we’ve seen similar reports from other stores after enabling Markets. the issue seems to be related to how Markets handles hreflang tags and alternate URLs. when you enable international markets, Shopify creates alternate versions of your pages and sometimes Google gets confused about which version is canonical, especially if the hreflang implementation has gaps.

i’d check a few things: look at the “Page indexing” report in Search Console and filter for your product pages specifically. see if they’re showing “Duplicate without user-selected canonical” or “Alternate page with proper canonical tag.” also check whether your product URLs now have country/language prefixes that are competing with your original URLs. some stores have fixed this by setting one market as the primary domain explicitly in Markets settings and making sure the canonical tags point there consistently.