ShipworkSite inspection
Canonicals

Crawlability

PaginationAre paginated pages set up right?Internal searchIs site search eating crawl budget?URL parametersAre parameters creating duplicates?Log analyserWhat does Googlebot actually crawl?Robots builderNeed a robots.txt file?Soft 404sAre pages “not found” but returning 200?JavaScriptCan crawlers see it without running JS?FreshnessIs my site quietly going stale?Robots.txtDoes robots.txt say what I think?

Indexing

Sitemap lastmodAre my sitemap dates valid?SitemapIs my sitemap actually fetchable?IndexingIs Google allowed to index my pages?CanonicalsIs Google indexing the wrong URL?Index signalsDo sitemap and index signals agree?Sitemap generatorNeed a sitemap.xml for my site?Bulk URL statusWhere does each of these URLs really land?Redirect builderNeed the redirect rules?RedirectsAre my URLs answering directly, over HTTPS?

On-page

Keyword ideasWhat are people searching for?SERP previewHow does my page look in Google?Content qualityAre your pages too thin or too alike?Image weightAre images slowing the page?CannibalizationAre pages competing with each other?On-page checkDoes the page use its target phrase?ImagesAre my images accessible and loading?Meta tag builderWhat should my title and share tags say?DuplicatesDo my pages compete for one query?

Links

Orphan pagesWhich pages can no link reach?Link graphHow deep do your pages sit?Anchor textDo links say what they point at?Outbound linksAre external links still alive?Broken linksAre internal links sending visitors nowhere?

Structured data

Rich resultsIs my markup eligible for a rich result?Structured dataIs my product schema valid?Schema coverageDo my key pages carry structured data?Social previewHow does my page look when shared?Schema vs pageDoes markup match the page price?Schema builderNeed valid JSON-LD?

International

Hreflang sitemapDo page and sitemap hreflang agree?HreflangDo my language versions link back?Hreflang builderNeed the hreflang tags?Redirect planMy site has dead links — what redirects do I write?Sitemap diffIs anything missing from my sitemap?Robots simulatorWhat does my robots.txt actually block?Can Googlebot?Can Googlebot fetch this URL?
Every error, explainedGuides
Pricing Learn Error guides Run free audit
Sign in

Sign in free and get one more free check this month. Your account keeps your reports, watches and connections on any device.

Sign in with GoogleOpens your account, or creates a free one Sign in with work emailWe email you a 6-digit code PricingPlans and credit packs for the paid jobs

All errorsDuplicate, Google chose different canonical than user

Why Google ignored the canonical you declared, and how to make it agree

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.

YOU DECLARED/page-aGOOGLE CHOSE/page-b
A canonical is a hint. Other signals can outvote it.

How to fix it

  1. In URL Inspection, note both the user-declared canonical and the Google-selected canonical for the affected page.
  2. Make every signal agree: internal links, the sitemap and hreflang should all use the URL you declared as canonical.
  3. Check that the declared canonical URL returns 200, is indexable and is not itself redirected or canonicalised elsewhere.
  4. 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.
  5. 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

  1. 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.
  2. 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.
  3. 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.
  4. Avoid canonicalizing distinct products or variants to an unrelated parent page merely to reduce duplicate URLs.

On WooCommerce

  1. Check canonical settings in the active SEO plugin and look for overrides in the theme, custom fields, or another plugin.
  2. Verify HTTPS and www redirects at the server, and update WordPress's site URL and internal links to the chosen host.
  3. Review sitemap and navigation output for URLs inconsistent with the declared canonical, including category paths and query parameters.
  4. Confirm the target page returns 200 and represents the same content; fix redirecting or irrelevant targets.

On other platforms

  1. Use the platform's SEO settings to choose the correct canonical on both the alternate URL and its intended representative.
  2. Make redirects, internal links, sitemaps, and structured data consistently use the same final URL.
  3. Check domain migrations for old host references in templates, localization, or external integrations.
  4. Keep canonical targets content-equivalent; use a redirect when the alternate should no longer be served.

How to confirm it is fixed

  1. In URL Inspection, record the user-declared and Google-selected canonicals and inspect both URLs, including their final response and content.
  2. Crawl the affected URL family and compare canonical tags, redirects, sitemap links, internal links, and hreflang targets.
  3. Run the canonical check to surface conflicting or cross-domain canonical targets.
  4. 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?
Canonical tags are signals, not commands. Google may prefer another URL when redirects, internal links, sitemap entries, content, or external links point elsewhere. Inspect both URLs and make all site signals consistent with the preferred page. The canonical target should be accessible and substantially duplicate the source.
Can I force Google to use my canonical URL?
No single signal guarantees Google's choice. You can make the preference clearer by using a correct canonical, linking internally to that URL, listing it in the sitemap, and redirecting true alternate URLs when appropriate. Google may still choose differently if the pages or signals do not support your selection.
Should I change the canonical or redirect the duplicate URL?
Use a redirect when the alternate URL should no longer serve a separate page. Use a canonical when both URLs need to remain accessible but represent substantially the same content. Make sure the canonical target is a working equivalent page and that internal links favor it.
Find out if this is happening to you

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 user

Other errors like this