GuideIndexing
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.

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 |
rel="canonical" | "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 -sIand confirm a single200. 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
noindexin a meta tag or anX-Robots-Tagheader, 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"withouthttps://is a relative URL that resolves tohttps://example.com/example.com/page. - Placement. The tag counts only in the
<head>or as an HTTPLinkheader. - JavaScript. Google advises setting the canonical in the HTML source and making sure "JavaScript doesn't change the canonical link element."
A quick way to run the first three checks:
curl -sI https://example.com/declared-canonical | head -1
curl -s https://example.com/declared-canonical | grep -io '<meta[^>]*noindex[^>]*>'
curl -s https://example.com/listed-page | grep -io '<link[^>]*rel="canonical"[^>]*>'
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
hreflangannotation 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.
For the related statuses, see duplicate without user-selected canonical, where no canonical was declared at all, and alternate page with proper canonical tag, where Google agreed with you. The canonical tag mistakes guide collects the template errors behind all three.
How do you confirm Google now agrees?
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.
Questions, answered
What people ask about this
01What 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.
02Why does Google ignore my canonical tag?
- 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.
03How 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.
04Can 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.
05How 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.
Sources
- Search Console Help: Page indexing reportsupport.google.com
- Search Console Help: URL Inspection toolsupport.google.com
- Google Search Central: What is URL canonicalizationdevelopers.google.com
- Google Search Central: How to specify a canonical URLdevelopers.google.com
- Google Search Central: Fix canonicalization issuesdevelopers.google.com
- Google Search Central Blog: 5 common mistakes with rel=canonicaldevelopers.google.com
- Google Search Central: Ask Google to recrawl your URLsdevelopers.google.com


