// guides / duplicate content and canonicals

Duplicate, Google chose different canonical than user: why Google overrules your tag, and the fix

Duplicate, Google chose different canonical than user means you declared a canonical URL and Google indexed a different one. The tag is a hint, and something else on the site disagreed with it: a redirect, internal links, the sitemap, a translation or the content itself. The fix is finding that signal, or accepting Google was right.

By Muhammad Younus Updated

Two identical glass page tiles, one faded, joined by an arc of light pointing to the original
the short answer
$ duplicate google chose different canonical than user ✓ You declared a canonical, Google thought another URL made a better one, and it indexed that URL instead of yours.✓ Google treats a canonical as a hint. Redirects, internal links, the sitemap, HTTPS, hreflang and similar content all feed its choice, and they often point elsewhere.✓ Read both canonical fields in URL Inspection, make every signal agree, or change your canonical when Google's pick serves searchers better.
// 01 - the definition

What does Duplicate, Google chose different canonical than user mean?

Google's Page indexing help puts it in one line: "This page is marked as canonical for a set of pages, but Google thinks another URL makes a better canonical." So Google indexed the URL it chose, not yours. You told Google which URL to index, and it disagreed.

The help then explains what the disagreement means. Google thinks the page you tested isn't a duplicate of the canonical you declared; it thinks it's a duplicate of the one Google selected. And there's a rule that settles a lot of cases on its own: "If the user-declared canonical is not similar to the current page, then Google won't ever choose that URL as canonical." A canonical tag pointing at a different page, like every post pointing at the home page, can't win.

It's the sibling of Duplicate without user-selected canonical, where no canonical was declared at all. Here one was, so the job isn't adding a tag. It's finding out why the tag lost.

// 02 - the causes

Why does Google override your canonical?

Because Google's canonicalization page calls your preference "a hint, not a rule", and lists what else it weighs: HTTP or HTTPS, redirects, sitemap inclusion and rel="canonical". Its troubleshooting page adds the quality of the content and technical signals. Each card is one of those signals pointing somewhere other than your tag.

i.

Redirects

Google ranks a redirect as a strong signal that its target should be canonical. A canonical naming http:// or a non-www address that 301s elsewhere is two strong signals arguing.

ii.

Internal links

Google asks you to link to the canonical URL within your site. Menus, breadcrumbs or old body links pointing at another version tell a different story from the tag.

iii.

The sitemap

A sitemap entry is a weak signal, but Google says not to put one URL in the sitemap and a different one in the canonical for the same page.

iv.

HTTP and HTTPS

Protocol is one of the factors Google names. A canonical to the http version of an https page is working against the site's own redirect.

v.

Translations

Google treats language versions as duplicates when only the header, footer and navigation are translated and the body isn't. A translated template around the same text gets grouped.

vi.

Similar content

Service or location pages that differ by a place name, or near-identical products, look like one page to Google, whatever each tag says.

vii.

JavaScript and plugins

Google says JavaScript shouldn't change the canonical in the HTML source, and that some CMSs and plugins print incorrect canonicals. Two tags from theme and plugin is a WordPress classic.

// 03 - diagnosis

How do you see which canonical Google chose in URL Inspection?

Google's help gives the steps, and they're worth doing in order on a few example URLs, not just one.

  1. i.

    Inspect the URL and read Google-selected canonical

    It's under Page indexing in the indexed result. The live test can't show it, because canonical selection happens at indexing time.

  2. ii.

    Read User-declared canonical next to it

    That's the URL your tag, header or sitemap declared. Now you've got both sides of the argument.

  3. iii.

    Open all three pages in a browser

    The page you tested, your declared canonical and Google's pick. Google's help suggests exactly this comparison.

  4. iv.

    Ask which of them the content really matches

    If your declared canonical isn't similar to the tested page, Google won't choose it, so the tag's aimed at the wrong page.

  5. v.

    Check the signals on Google's pick

    Does something redirect to it? Do your menus link to it? Is it the URL in your sitemap? Whatever points at it is what Google trusted.

// 04 - the fix

How do you fix Duplicate, Google chose different canonical than user on WordPress?

Google's own advice is to make every method agree, because they stack. On WordPress that means checking five places. When the same conflict runs through a template or a plugin setting across hundreds of URLs, that's the point to have me fix it at the source, rather than chasing it page by page.

  1. i.

    One canonical tag, correct and absolute

    View the source and count the rel="canonical" tags. There should be one, printing the full https URL you want. A theme and an SEO plugin both printing one is a conflict you've built yourself.

  2. ii.

    Redirects that agree with it

    Request the http, https, www and non-www versions of the canonical URL. The one you declared should answer 200, and every other version should 301 to it in one hop.

  3. iii.

    Internal links to the canonical only

    Search menus, breadcrumbs, widgets and old posts for links to the other version, often http:// links hard-coded before a move to https, or links with a missing trailing slash.

  4. iv.

    A sitemap that lists canonicals only

    Your SEO plugin's sitemap should carry the canonical URL and nothing that redirects, is noindexed or canonicalises elsewhere.

  5. v.

    Translations with their own canonicals

    On a multilingual site each language version should declare itself canonical and point to the others with hreflang. Google says to keep the canonical in the same language, and a body left untranslated is what creates the duplicate. The detail's in hreflang canonical conflicts.

// 05 - the honest option

When is Google's choice right, and should you change your canonical instead?

Sometimes Google's the one being sensible. Its troubleshooting page asks you to think about whether the Google-selected canonical "makes more sense than your preferred canonical URL for your users coming from Google Search." If the two pages really are the same and Google picked the cleaner or better-linked URL, the fastest fix is to agree: point your canonical at Google's choice, or 301 the weaker URL into it and move its links over.

Check the performance data before you force the issue. In one of my case studies, Search Console reported both the www and non-www homepages: the non-www one at average position 13.2 and the www one at 5.3, while the site canonicalised to non-www. That doesn't mean the declared host was wrong, but it's why consolidating it had to be measured on both URLs through the change.

The other honest answer is that the pages aren't duplicates and shouldn't be. Two location pages grouped together need content that differs clearly, and Google says pages split out of a cluster faster when the difference is clear and significant. A tag can't do that part.

// 06 - after the fix

How do you get Google to recrawl and confirm the fix?

For a handful of important URLs, inspect each one and press Request Indexing. Google's troubleshooting page says to reserve it for your most important URLs because it's subject to quotas, and that even after a content fix Google might hold pages in a duplicate cluster for up to two weeks. More detail on reading those results is in how I use the URL Inspection tool.

For the whole issue, fix every instance and press Validate fix in the Page indexing report. Google says validation typically takes up to about two weeks and sometimes much longer, and that validating against a sitemap of only your most important URLs can finish faster than validating every affected URL. When it passes, inspect the URLs again: the proof is Google-selected canonical matching your declared one, not a shrinking count.

// 07 - the worry

Is Google choosing a different canonical a penalty?

No, and duplicate content of this kind doesn't draw one. Google's Search Central blog put it bluntly: "There's no such thing as a 'duplicate content penalty.' At least, not in the way most people mean when they say that." Its canonicalization page says some duplicate content on a site is normal and isn't a violation of Google's spam policies. What those policies do target is scraping other sites' content and republishing it to manipulate rankings.

Why is duplicate content bad for SEO, then? Google's reasons for declaring a canonical answer it: links and other signals get split across URLs instead of consolidated, performance is harder to track, crawling time goes on copies, and the URL in results may not be the one you want. This status is a symptom of exactly that split.

Rather have it fixed for you? See the Duplicate content and canonicals service.

Duplicate content and canonicals
// questions

What else do people ask about duplicate, Google chose different canonical than user?

Why is Google ignoring my canonical tag?

Because a canonical is a hint. Google overrules it when redirects, internal links, the sitemap or HTTPS point at another URL, or when the page you named isn't similar to the page carrying the tag.

How do I fix Google chose different canonical than user?

Compare the two canonical fields in URL Inspection, then make the tag, redirects, internal links and sitemap all name one URL. If Google's choice serves searchers better, change your canonical to match it.

How do I force Google to reindex a page?

You can't force it. Request Indexing in URL Inspection asks Google to recrawl one URL, within a quota, and Validate fix rechecks the affected URLs over about two weeks.

Does this status hurt my rankings?

The page Google picked still ranks. The risk is that it's the version you didn't optimise, or that two pages you meant to rank separately are being treated as one.

Can hreflang cause Google to choose a different canonical?

Yes, when the translated pages share untranslated body text, or when each language's canonical points at another language. Each version should canonicalise to itself.

// sources

Where do these rules come from?

Google's own documentation, plus what I see on the WordPress sites I work on. Written by Muhammad Younus, a WordPress technical SEO consultant.

Muhammad Younus laughing, a wide genuine smile
// next step

Want this checked on your own site?

Book a call on Upwork, share the URL and read-only Search Console access, and you'll get back what's actually wrong, ranked by the clicks it's costing.

Book a call on Upwork