Canonicalization Issue with Regional Domains

Topic summary

A Shopify store managing multiple regional domains is experiencing a persistent canonicalization problem specifically with their Netherlands domain since October. While all other regional domains (French for France, etc.) are indexed correctly with proper canonical and hreflang tags, Google Search Console shows that Google is selecting a different regional URL as canonical for the Netherlands instead of the user-declared one.

Troubleshooting completed:

  • Canonical and hreflang tags verified as properly implemented using browser extensions
  • Shopify Markets configured for regional targeting
  • Region-specific backlinks built
  • Multiple reindexing requests submitted
  • Shopify support contacted without resolution

Key context: The store successfully ranked well across all domains and countries for 4 years prior to this issue, indicating the setup previously worked correctly.

One community member suggested a custom canonical tag implementation for multi-domain, multi-language stores that properly handles blog pagination and prevents default ?page= parameters from being canonicalized. The issue remains unresolved, with the incorrect canonicalization continuing to negatively impact SEO performance in the Netherlands market.

Summarized with AI on November 2. AI used: claude-sonnet-4-5-20250929.

Hi everyone,

We’ve been facing a frustrating SEO issue for months and hope someone with experience can help. Since October, we’ve been trying to resolve it, but without success—even after multiple attempts and contacting Shopify support.

Background

We manage multiple regional domains, each targeting specific countries with the correct language versions (e.g., Dutch for the Netherlands, French for France, etc.). All domains are indexed correctly, except for the domain targeting the Netherlands.

The Problem

In Google Search Console, we see the following issue:

User-declared Canonical URL: [correct URL]

Google-selected Canonical URL: [another regional URL]

We’ve ensured that canonical and hreflang tags are properly implemented, set up Shopify Markets for regional targeting, built region-specific backlinks, and requested reindexing multiple times. However, Google consistently selects a different regional URL as canonical for the Netherlands, despite our configurations.

Current Status

The Netherlands-specific domain remains the only one experiencing this issue. The incorrect canonicalization is negatively impacting our SEO performance in that region.

We’d greatly appreciate advice from anyone who has encountered a similar issue or knows how to resolve this effectively. We’re looking for a clear path to ensure that the correct URL is indexed and ranked without delays.

Also good to know, we did in fact rank on every domain in every country for 4 years quite well. So it is not that it did never rank.

Thanks so much for your time and insights!

Sounds like you have a good implementation.

But sanity checking the basics first:

  1. When using the Hreflang Tag Checker extension in Chrome
  2. Checking a few page types (product, collection, home, blog)
  3. Checking a handful of the domains across a few of these template types

Do you see consistent green Yes being output in all cases? Everything (languages and domains) linked up as expected?

Hello @KieranR

Yes, on every page this says the same thing that it is correct. Only the X default I am not sure, but the rest should be good.

Also the Canonical tag is also setup correctly.

Kind regards,
Jurgen

I am late to the party with this one but I find a one-stop canonical is:

{% if template contains 'blog' %}
<link rel="canonical" href="https://{{ request.host }}{% if article.url %}{{ article.url }}{% else %}{{ blog.url }}{% endif %}" >
{%  else %}
<link rel="canonical" href="{{ canonical_url | split: '?' | first}}">
{%  endif %}

As implemented on https://1936original.com

This is a multi-domain, multi-language store. Each domain has the proper canonical to it, not the .com, eg. .de or .es and blogs/collections that span multiple pages are all canonicalised to the first page correctly and not canonicalised with ?page= which is the default.