What the error means
The page declares a canonical URL, but Google decided a different URL is the better canonical and indexed that one instead. Your canonical tag was read and overruled.
Why Google rejects it
A canonical tag is a strong hint, not a command. Google weighs it against other signals: redirects, internal links, sitemap entries, hreflang and how similar the pages really are. When those signals point elsewhere, Google follows them.
How to fix it
- In URL Inspection, note both the user-declared canonical and the Google-selected canonical for the affected page.
- Make every signal agree: internal links, the sitemap and hreflang should all use the URL you declared as canonical.
- Check that the declared canonical URL returns 200, is indexable and is not itself redirected or canonicalised elsewhere.
- If the pages are not true duplicates (different products or languages), make the difference visible in the content and give each a self-referencing canonical.
- If Google's choice is actually fine, point your canonical at it instead of fighting the signals.
Common causes
Conflicting canonical hints
The page's rel=canonical can point to one URL while sitemap entries, redirects, internal links, or hreflang point to another. Google weighs multiple signals and may select the version that appears most consistently preferred. Compare all signals for the URL pair, not just the HTML tag.
Canonical target is not equivalent
A canonical should identify a duplicate or near-duplicate representative. If it points to a broad category, a different product, a redirect, or a page with different content, Google may ignore it and select another URL.
Host or protocol migration is incomplete
Some links may still use HTTP, www, a prior domain, or a path with a different slash convention. Google can select that version if stronger signals continue to reference it. Check redirects and canonical tags on both the submitted and chosen URL.
Alternate URLs have stronger signals
A URL included in more internal links, external links, or the sitemap can appear more canonical than the tag's target. Check which URL is used throughout navigation and structured data, and whether other sites link to the alternate.
Fix it on your platform
On Shopify
- Compare the user-declared and Google-selected canonical for an affected product. Check the published theme's canonical output and confirm it points to the clean primary product URL.
- Update theme sections, menus, and app links that use collection-context product URLs or secondary domains. Prefer the primary domain and canonical product path consistently.
- If international domains or markets are involved, verify each URL is a real localized equivalent and that hreflang and canonicals do not cross to the wrong market.
- Avoid canonicalizing distinct products or variants to an unrelated parent page merely to reduce duplicate URLs.
On WooCommerce
- Check canonical settings in the active SEO plugin and look for overrides in the theme, custom fields, or another plugin.
- Verify HTTPS and www redirects at the server, and update WordPress's site URL and internal links to the chosen host.
- Review sitemap and navigation output for URLs inconsistent with the declared canonical, including category paths and query parameters.
- Confirm the target page returns 200 and represents the same content; fix redirecting or irrelevant targets.
On other platforms
- Use the platform's SEO settings to choose the correct canonical on both the alternate URL and its intended representative.
- Make redirects, internal links, sitemaps, and structured data consistently use the same final URL.
- Check domain migrations for old host references in templates, localization, or external integrations.
- Keep canonical targets content-equivalent; use a redirect when the alternate should no longer be served.
How to confirm it is fixed
- In URL Inspection, record the user-declared and Google-selected canonicals and inspect both URLs, including their final response and content.
- Crawl the affected URL family and compare canonical tags, redirects, sitemap links, internal links, and hreflang targets.
- Run the canonical check to surface conflicting or cross-domain canonical targets.
- After making signals consistent, monitor the indexed report. Google's live test cannot confirm which canonical it will select.
A worked example
Hypothetical case: a WooCommerce merchant moves to HTTPS and changes from www to the bare domain. The new product pages declare bare-domain HTTPS canonicals, but old navigation blocks and the sitemap plugin still emit www URLs. URL Inspection shows Google's selected canonical on the old host. The owner updates WordPress site URLs, fixes internal links and sitemap generation, and confirms the old host redirects directly to the new page. They wait for Google to recrawl both versions before judging the canonical selection; they do not submit repeated inspection requests as proof of completion.
Questions
Why did Google choose a different canonical than my canonical tag?
Can I force Google to use my canonical URL?
Should I change the canonical or redirect the duplicate URL?
Shipwork reads each page's canonical and checks the target, reporting canonicals that point at redirects, errors, other hosts or noindex pages. Free, no account, no signup. Paste your store address.
Check my store for Duplicate, Google chose different canonical than userOther errors like this