You open Search Console, check the Page indexing report, and there it is: Duplicate without user-selected canonical. It sounds like an error, it sits under “Why pages aren’t indexed”, and it often includes a page you care about.
Here is what it actually means. Google found two or more URLs with the same content, the page in question did not tell Google which one is the main version, so Google made the call itself and picked the other URL. This page is left out of the results, and the chosen one is shown instead.
That is not a penalty, and sometimes it is exactly what you want. The trouble starts when Google picks the wrong URL. The good news: the fix is almost always the same, and it takes far less time than reading the forum threads about it.
Contents
- The status in plain English
- Three statuses that look alike but are not
- Should you fix it at all?
- Find out which URL Google picked
- Seven reasons it happens
- The fix, step by step
- How long until it clears
- Frequently asked questions
The status in plain English
Think of a group of identical pages as a shortlist. Google shows only one of them in search, and that one is called the canonical. You get a vote: a rel="canonical" tag, a permanent redirect or your sitemap can all tell Google which URL you prefer. Google treats redirects and canonical tags as strong hints and the sitemap as a weaker one.
Read the status word by word and it explains itself:
- Duplicate: Google sees this page as a copy of another URL.
- Without user-selected canonical: you did not cast a vote on this page, or you did and Google could not read it.
- So: Google chose the other URL as canonical, and this one does not appear in search.

Three statuses that look alike but are not
Search Console has three statuses with almost the same wording. Confusing them is the fastest way to fix the wrong thing, so it is worth a minute.
| Status | What happened | Do you need to act? |
|---|---|---|
| Duplicate without user-selected canonical | The page declares no canonical that Google could read. Google chose another URL. | Yes, if this is the page you want in search. |
| Duplicate, Google chose different canonical than user | The page declares a canonical, but other signals convinced Google to pick a different URL. | Yes. Your signals contradict each other. |
| Alternate page with proper canonical tag | The page is an alternate version, such as AMP or mobile, that correctly points to its canonical, and that canonical is indexed. | No. Everything works as intended. |
Should you fix it at all?
Click into the status and look at the example URLs. They usually fall into one of two piles.
The harmless pile. URLs with tracking parameters such as ?utm_source=, sorting and filter parameters, print versions, or the http:// and www copies of pages that already redirect. Nobody should land on these anyway, so Google ignoring them is fine.
The pile that matters. A service page, a product, a category, a blog post or a language version. If one of these shows up, Google is putting a different URL in front of searchers than the one you built, and that URL may be outdated, may redirect somewhere, or may be in the wrong language. Fix these.
Find out which URL Google picked
Copy one of the affected URLs into the URL Inspection bar at the top of Search Console. Under Page indexing you will find two lines that solve most of the mystery:
- User-declared canonical: the canonical Google found on your page the last time it crawled it.
- Google-selected canonical: the URL Google went with.
Pay attention if User-declared canonical says None while you know the page has a canonical tag. That means Google never read your tag, and it almost always points to the second cause below. Click View crawled page and open the HTML tab to see the exact HTML Google stored. Look for your canonical and, just as important, look at where it sits. The same panel shows when Google last crawled the page, which tells you whether it has even seen your latest version.
Seven reasons it happens
1. There is no canonical tag
Without a canonical, every copy competes on equal terms and Google decides from links, redirects and whatever else it can find. The simplest insurance is a self-referencing canonical on every page you want indexed: the page at https://example.com/pricing carries a canonical pointing to https://example.com/pricing. Always use the full absolute URL, with the right protocol and host.
2. The canonical sits outside the head
This is the sneaky one. Google only accepts rel="canonical" when it appears in the <head> of the page. If the tag ends up in the <body>, Google ignores it, and Search Console reports the page as if it had no canonical at all.

Modern JavaScript sites make this easier to get wrong than you would expect. Some add metadata late, after the page has loaded; others stream it after the main content, so for some crawlers the title, canonical and hreflang tags end up at the very end of the body. If your setup has an option that controls where metadata is rendered, make sure search engine crawlers get it inside the head.
Whatever you build with, check the raw HTML your server sends, not the browser’s element inspector, which shows the page after JavaScript has already rearranged it. The canonical has to appear before </head>.
3. Old URLs use temporary redirects
A permanent redirect (301 or 308) tells Google the target should become the canonical. A temporary redirect (302 or 307) does not send that signal, so Google may happily keep the old URL as the main version. If you moved pages and the redirects are temporary, the old addresses can keep winning for months. Switch them to 301 or 308.
4. The same page lives at several addresses
One page, many doors: with and without www, over http and https, with and without a trailing slash, with tracking parameters, or behind an old language prefix. Pick one front door, send every other door to it with a permanent redirect, and point all internal links straight at it.
5. The pages really are near-identical
City pages that differ only in the city name, product variants that share a description, tag archives that list the same posts as a category: to Google these are duplicates, whatever you call them. Merge them into one strong page, or give each one something that genuinely belongs only there, such as local details, specs or examples.
6. Your signals disagree
Google weighs your hints together. If the canonical tag names one URL, the sitemap lists another and your menu links to a third, you have handed Google a puzzle. Line them up: the canonical URL is the one in the sitemap, the one your navigation and articles link to, and the one every other version redirects to.

7. Hreflang and canonical pull in different directions
On multilingual sites, each language version needs its own self-referencing canonical, plus hreflang tags listing every language version including itself. A common mistake is pointing a translation’s canonical to the original language. That tells Google the translation is just a copy, and out it goes. Also make sure every URL in your hreflang set is a final URL, not one that redirects.
The fix, step by step
- Decide which URL is the main version of the page.
- Give that URL a self-referencing canonical with the full absolute address.
- Open the raw HTML and confirm the canonical is inside the
<head>. - Redirect every other version to the main URL with a 301 or 308.
- Update internal links, menus and the sitemap so they only use the main URL.
- On multilingual sites, check that hreflang lists the final URL of each language version.
- In URL Inspection, run a live test on the main URL and request indexing.
- Inspect the old duplicate URL too and request indexing for it, so Google crawls it and notices the redirect.
Step 8 is the one almost everyone skips. Google only learns that an old URL now redirects when it crawls that old URL again. Until it does, it may keep treating the old address as the main one, even though your new page is perfect.
How long until it clears
The status changes once Google recrawls the affected URLs and reprocesses the group of duplicates. For an important page with a clean fix, that can happen within days, sometimes on the same day as the recrawl. For pages Google rarely visits, or when the old duplicate has not been recrawled yet, it can take a few weeks.
If nothing has changed after a month, go back to URL Inspection and check both URLs again. Confirm the redirect returns 301 or 308, the canonical is in the head, and nothing else, such as a sitemap entry or an old internal link, still points to the URL you are trying to retire.
Looking at a wider indexing problem? Our guide Website not showing up on Google: 8 causes walks through the full checklist.
Frequently asked questions
Is “Duplicate without user-selected canonical” bad for SEO?
Not by itself. It only means one URL from a group of duplicates is shown and the rest are not. It hurts when Google picked the wrong one, for example an outdated, redirecting or wrong-language page instead of the page you want to rank.
Should every page have a canonical tag?
Yes. A self-referencing canonical on every indexable page takes the guesswork away from Google and protects you against parameter and protocol copies.
Why is Google ignoring my canonical tag?
Either Google cannot read it, most often because it is outside the head or added in a way the crawler never sees, or Google trusts other signals more, such as redirects, internal links and the sitemap pointing elsewhere. URL Inspection tells you which: User-declared canonical: None means the tag was never read.
Can I use noindex on duplicate pages instead?
Google advises against it. Using noindex to choose a canonical within one site blocks the page from search completely. Use a canonical tag or a permanent redirect.
How is this different from “Duplicate, Google chose different canonical than user”?
Here, the page declares no canonical that Google could read. In the other status, the page does declare one, but Google disagrees and picks a different URL because your other signals point elsewhere.
How long does it take for Google to update the canonical?
It depends on when Google recrawls the URLs involved. Requesting indexing for both the main URL and the old duplicate speeds things up. Important pages can update within days; others can take several weeks.
Do I need to fix this for URLs with tracking parameters?
Usually not. If those URLs carry a canonical pointing to the clean URL, or Google already chose the clean URL, the status is simply the expected result.
Sources
- Google Search Central: How to specify a canonical URL
- Google Search Central: Redirects and Google Search
- Search Console Help: Page indexing report
- Search Console Help: URL Inspection tool
Next steps
Once your pages are indexed under the right URLs, the next lever is authority. You can find our link packages and prices on the Hacklink service page. If you get stuck anywhere, write to us.
