Duplicate, Google chose different canonical than user: why it happens
Google treats rel=canonical as a hint and weighs redirects, sitemaps, links, HTTPS and hreflang. Make every signal name one URL and Google usually follows.
LLaunchScaler·Published ·8 min read
Duplicate, Google chose different canonical than user means you declared a canonical URL for a set of duplicate pages, and Google indexed a different URL from that set. Google does this because rel="canonical" is a hint, not an order: it also weighs redirects, sitemap entries, internal links, HTTPS and hreflang, and when those point elsewhere, they can outvote your tag.
The fix is to make every signal name the same URL, and to make sure that URL is one Google can actually index.
Why did Google override your canonical tag?
Because Google collects several signals and picks the URL it judges "objectively the most complete and useful for search users," with your tag as one input. Its canonicalization guide says so directly: "indicating a canonical preference is a hint, not a rule." When your tag and your other signals disagree, Google resolves the conflict itself, and this status is the result.
Search Console's help describes it from the other side: "This page is marked as canonical for a set of pages, but Google thinks another URL makes a better canonical. Google has indexed the page that we consider canonical rather than this one."
Google lists the factors in its canonicalization guide: "whether the page is served over HTTP or HTTPS, redirects, presence of the URL in a sitemap, and rel="canonical"link annotations." Its duplicate URL guide ranks the explicit methods by strength and adds internal linking and hreflang.
Signal
How strong Google says it is
How it can contradict your tag
Redirects
"A strong signal that the target of the redirect should become canonical"
Your declared canonical redirects somewhere else, or the variant you want dropped redirects to a third URL
Questions, answered
What people ask about this
01
What does duplicate, Google chose different canonical than user mean?
You declared a canonical URL, and Google picked a different URL as the canonical for that set of pages and indexed that one instead. Google's documentation says a canonical preference is a hint, not a rule.
"A strong signal that the specified URL should become canonical"
Two tags on one page, a tag and a Link header that disagree, or a tag on a page that is not a duplicate
Sitemap inclusion
"A weak signal"
The sitemap lists the variant instead of the URL your tag names
Internal links
Google says linking consistently to the canonical "helps Google understand your preference"
Navigation or body links point at the parameter or http:// version
HTTPS
Google "prefers HTTPS pages over equivalent HTTP pages as canonical"
Your tag names an http:// URL, or the HTTPS page has certificate or redirect problems
hreflang
Google "prefers URLs that are part of hreflang clusters"
Your tag names a URL outside the hreflang set, or a page in another language
Google also notes that these methods "can stack and thus become more effective when combined." That is the whole fix in one sentence: stack them on the same URL.
How do you read the canonicals in URL Inspection?
Inspect the listed URL and compare three addresses: the URL you inspected, the User-declared canonical, and the Google-selected canonical. The pattern of what Google picked tells you which signal outvoted your tag, which is faster than auditing every signal blind.
Copy an example URL from the report row and paste it into the URL Inspection bar.
Expand Page indexing and note the User-declared canonical and the Google-selected canonical.
Inspect the Google-selected URL too, and check its Discovery section for the sitemap and referring page Google knows it from.
What Google selected
Likely cause
Where to look
The http:// version of your URL
HTTPS contradicted: bad certificate, an HTTPS page redirecting through HTTP, or a canonical naming HTTP
Certificate, redirect rules, the tag's protocol
A www or non-www variant you did not choose
The variant still answers 200, or links and the sitemap use it
Host redirect, sitemap, absolute links
A parameter URL (?ref=, ?sort=)
Internal links or the sitemap use the parameter URL
Navigation, templates, sitemap generator
A different page on your site
The pages are too similar to keep apart
The two pages' main content
The URL your declared canonical redirects to
Your canonical target redirects
The canonical target in curl
A URL on another domain
Syndication or scraped copies
Syndication agreements, the copying site
For the last row, Google's troubleshooting guide says the canonical element "is not recommended for those who want to avoid duplication by syndication partners," and recommends that partners block indexing of their copy. For unauthorised copies it points to a DMCA takedown request.
The Google-selected value "can be a few hours out of date" relative to the index, so re-check after a day before drawing conclusions from one reading.
When does Google ignore a canonical tag outright?
When the tag points somewhere Google cannot index, or when it is malformed. Google's 2013 post on rel=canonical mistakes lists checks that still hold: the target must exist and not be "an error or 'soft 404'," must not carry a noindex robots tag, and a page may declare only one, because "when more than one is specified, all rel=canonical links will be ignored."
Run through each:
Target status. Request the canonical URL with curl -sI and confirm a single 200. A canonical to a URL that redirects, returns 404 or times out is a signal Google cannot follow.
Target indexability. The canonical URL must not carry noindex in a meta tag or an X-Robots-Tag header, and must not be blocked in robots.txt.
One declaration. View the source and search for rel="canonical". Google's post notes that SEO plugins "often insert a default rel=canonical link," which is how pages end up with two.
Absolute URL. href="example.com/page" without https:// is a relative URL that resolves to https://example.com/example.com/page.
Placement. The tag counts only in the <head> or as an HTTP Link header.
JavaScript. Google advises setting the canonical in the HTML source and making sure "JavaScript doesn't change the canonical link element."
The first line should print a 200, the second should print nothing, and the third should print exactly one tag.
How do you make every signal point at the same URL?
Choose the URL you want indexed, then audit every place that names a URL for that content and change each one to match. Google warns against mixed messages specifically: "Don't specify different URLs as canonical for the same page using different canonicalization techniques," for example one URL in the sitemap and another in rel="canonical".
Canonical tag: one absolute self-referencing tag on the chosen URL, and every duplicate's tag naming it.
Redirects: 301 or 308 any duplicate you do not need live (http://, the host you did not choose, old slugs) straight to the chosen URL in one hop.
Sitemap: list only the chosen URL. The sitemap submission guide covers what belongs in the file.
Internal links: navigation, footer, breadcrumbs and body links all use the chosen URL, with the same protocol, host and trailing-slash form.
hreflang: every hreflang annotation names the chosen URL for its language, and Google asks that the canonical be "in the same language, or the best possible substitute language."
HTTPS: valid certificate for the exact host, no HTTPS page redirecting through HTTP, no canonical naming HTTP.
Things not to use for this: robots.txt, which Google says not to use "for canonicalization purposes," the URL removal tool, which "hides all versions of a URL from Search," and noindex on the duplicates, which Google does not recommend "to prevent selection of a canonical page within a single site."
What if the pages are just too similar?
Then no tag will keep them apart, and you should either differentiate them or consolidate them. Google clusters pages it considers duplicates or near-duplicates and indexes one. Its troubleshooting guide says "pages will generally split out faster if the difference between the new content and the other clustered pages is clear and significant."
Google's 2013 post gives a practical test for when a canonical fits at all: "A large portion of the duplicate page's content should be present on the canonical version." Pages that are "only topically similar but not extremely close in exact words" may have their canonical disregarded, because they are not true duplicates.
So decide per pair:
If both pages deserve to rank for different searches, rewrite them until each covers something the other does not, give each a self-referencing canonical, and link to both.
If they serve the same search, keep the stronger one, move anything useful from the weaker one into it, and 301 the weaker URL.
If a category page features one article and names it as canonical, remove that tag; Google's post warns this would keep the category page out of search entirely.
Wait for the recrawl, then inspect the URL again. The Google-selected canonical can only change after Google fetches the pages involved, and Google says crawling "can take anywhere from a few days to a few weeks." Speed it up for key URLs, and use validation for the rest.
After deploying, run Test live URL on the chosen URL to confirm it returns 200 and allows indexing. The live test does not evaluate canonical selection, so this only confirms the page is fetchable.
Click Request indexing on the chosen URL and on one or two duplicates.
In the Page indexing report, open the row and click Validate fix once.
A week or two later, inspect the same URLs. User-declared and Google-selected canonical should now match.
Check every canonical signal on one page
To see what your page sends before you wait on a recrawl, run the free scan on LaunchScaler. It needs only the URL, no account, and runs 156 checks across 6 of its 7 categories at no cost. Its canonical checks flag a missing or cross-pointing canonical, a canonical whose target redirects, returns 404 or is noindexed, and a canonical or robots directive that contradicts what the URL actually returns. Its other search checks cover sitemap entries that redirect or are non-canonical, hreflang annotations that point at redirecting URLs or lack return tags, and plain HTTP that does not redirect to HTTPS on the same host. Fix what it flags, then compare the two canonicals in URL Inspection after Google's next crawl.
Usually because other signals disagree with it: redirects, sitemap entries, internal links, HTTP versus HTTPS or hreflang point at a different URL. Google also ignores a canonical whose target is a 404, a redirect or a noindexed page, and ignores all of them when a page declares more than one.
03
How do I fix duplicate, Google chose different canonical than user?
Make every signal name the same URL: the canonical tag, the sitemap, internal links and redirects. Check that the canonical target returns 200 and is indexable, then request indexing and compare the user-declared and Google-selected canonical in URL Inspection after the recrawl.
04
Can Google choose a canonical on another website?
Yes. Google's troubleshooting guide says that in rare cases its algorithm may select a URL from an external site hosting your content, and for syndication it recommends that partners block indexing of their copy.
05
How long does it take for Google to accept a canonical change?
Google has to recrawl the pages involved before the Google-selected canonical can change, and crawling can take anywhere from a few days to a few weeks. Pages split out of a cluster faster when the difference between them is clear and significant.
No. Google says the Indexing API only covers pages with JobPosting or BroadcastEvent markup. For other pages, use sitemaps, links and Request indexing.
Google says crawling takes a few days to a few weeks, and most sites wait three days or more per new page. A sitemap and links from indexed pages help.