Shopify SEO
Google Search Console for Shopify with several brand domains
Each brand domain is its own property, each needs its own sitemap submitted, and the report most likely to alarm you — “Duplicate, Google chose different canonical” — is usually reporting your store working exactly as configured.
Written . Search Console’s interface changes; the concepts here do not.
Do you need a separate Search Console property per domain?
Yes. Search Console reports per property, and a property is a hostname or a domain — not a Shopify store. Three brand domains on one store is three properties, and there is no view that merges them.
Prefer a domain property where you can. It verifies by DNS record and covers every subdomain and both protocols at once, which matters here because a URL-prefix property for https://www.your-brand.com/ will not report on https://your-brand.com/. On a multi-brand store that is three chances to verify the wrong half of your traffic.
Merchant Center follows the same rule: each brand domain is claimed in the account that advertises it.
Which sitemap do you submit for each domain?
The one that describes that domain, and only that domain.
The practical way to find it is to read the domain’s own robots.txt, since that is where the answer is published:
curl -s https://your-second-brand.com/robots.txt | grep -i ^Sitemap
On a default Shopify store that returns that domain’s own /sitemap.xml — which contains your whole catalogue rather than that brand’s share of it. Submitting it is not wrong, but be clear about what you are submitting: every brand’s products, under this brand’s hostname. Why that happens is its own subject.
Submit one sitemap per property, matching that property’s domain. Submitting the same file to three properties tells each of them to expect the other two brands’ URLs.
Why Shopify’s sitemap lists every brand on every domain, and what can and cannot be changed in it.
Can a sitemap live on a different host?
Yes, and this is the part people assume is a hack. Google’s documentation explicitly describes hosting a site’s sitemap on a separate host and referencing it from that site’s robots.txt. Cross-host references are valid, and a robots.txt may carry several Sitemap: directives.
One condition attaches, and it is the one that catches people out: to submit a sitemap covering URLs on a domain other than the one hosting it, you must have verified both properties in Search Console. Verify the sitemap host as well as each brand domain, once, and cross-host submission behaves like any other.
This is how Umbrella publishes: one sitemap per storefront, served from a host of ours, with each domain’s robots.txt pointing at its own. The files are static objects on a CDN with no application in the path, so a crawler fetching them is not depending on an app being up.
What does “Duplicate, Google chose different canonical” mean?
It means Google indexed a URL, found a canonical tag naming a different URL, and followed it — so the URL you are looking at is not the one credited.
On a multi-brand Shopify store this is usually not a fault to fix in Search Console, because it is describing exactly what the store is configured to say. Every page served on a non-redirecting secondary domain carries a canonical naming the equivalent URL on your primary domain, so a report saying Google chose a different canonical is reporting that instruction being read.
Check what your own pages say before changing anything:
curl -s https://your-second-brand.com/products/some-product | grep canonical
If the tag names your primary domain, the report is accurate and the thing to change is the tag, not the report. Why the canonical says that covers where it comes from and why it is not a setting.
What we do not claim. Nothing on this page — and nothing Umbrella does — promises that a URL will be indexed, or ranked, or that a report will change. Sitemaps and canonical tags are instructions; what a search engine does with them is its own decision. Our terms commit to that in the place it is binding.
What to expect after you change the files
Search Console reports on a lag, and coverage reports in particular update over days rather than minutes. Two things worth knowing so the wait is not mistaken for a failure:
- Submitting a sitemap is a request, not an instruction. The submitted-versus-indexed gap in the sitemaps report is normal and does not close to zero on any site.
- Verify the files rather than the report. Fetching your own robots.txt, sitemap and canonical tag tells you whether the change shipped. The report tells you what a search engine has done since, which is a different question with a different timescale.
If you want the files checked for you before any of this, send us your domains and you will get back what each one is publishing today.