Skip to content

Duplicate Without User-Selected Canonical: How to Fix It

Duplicate without user-selected canonical means Google found two copies of a page and you never said which one counts. When to leave it, and how to fix it.

Sunny Kumar
Sunny Kumar11 min readHow we test
TL;DR

Duplicate without user-selected canonical means Google found a page that matches another URL on your site, saw no canonical tag on either, and picked one to index itself. It is not an error. Inspect the URL to see which page Google chose. If that choice is right, leave it. If it is wrong, 301 the copy or add a rel="canonical" tag pointing at the page you want.

Almost every site audit I run has the same line sitting in the Page indexing report: Duplicate without user-selected canonical. Site owners see "not indexed" next to it and assume something is broken.

Usually nothing is. I have long held that most indexing problems are canonicalization problems in disguise, and this status is where that shows first. It tells you Google found two versions of the same page and made a choice you never made.

So I went back to Google's own definitions, inspected the URLs of this site after I moved it off WordPress, and tested how five Shopify stores handle their duplicate product URLs. Here is what the status means, when to ignore it, and how to fix it when Google picks wrong.

What does "Duplicate without user-selected canonical" mean?

It means Google found a page that matches another URL on your site, and neither page told Google which one is the main version.

Google's Page indexing report help defines it plainly: "This page is a duplicate of another page, although it doesn't indicate a preferred canonical page." Google has picked another URL as the canonical and indexed that one instead.

A canonical is the one URL Google treats as the real address of a piece of content; every copy passes its signals to it. Picking it is called canonicalization.

Google's own list of how duplicates happen:

  • Protocol variants: the http and https versions of a page.
  • Site functions: sorting and filtering on category pages, which add ?sort= or ?color= to the URL.
  • Device variants: separate mobile and desktop pages.
  • Region variants: a USA and a UK page with the same text.
  • Accidental variants: a staging or demo copy left open to crawlers.

None of this is a penalty. Google says some duplicate content on a site is normal and is not a violation of its spam policies.

Is it an error you need to fix?

No. Google files it under pages that are "not indexed, but not necessarily because of an error." Your content is in the index. It just lives under the URL Google chose.

The status sits in Search Console → Indexing → Pages, in the Why pages aren't indexed table, next to two cousins that confuse people even more. Here is what each one actually asks of you:

StatusWhat Google meansIs it an error?What to do
Duplicate without user-selected canonicalA copy with no canonical declared. Google chose one.NoCheck Google's pick. Fix only if it is wrong.
Duplicate, Google chose different canonical than userYou declared a canonical. Google overruled it.Yes, investigateMake your signals agree, or fix the canonical.
Alternate page with proper canonical tagThe page points to an indexed canonical.NoNothing. This is the setup working.

The question that matters is never "why is this URL not indexed". It is "did Google index the URL I wanted?" Answer that first, then decide.

How do you find which URL Google picked?

The URL Inspection tool shows both sides of the decision. Here is the exact path:

  1. In the Page indexing report, click Duplicate without user-selected canonical to open the list of affected URLs.
  2. Hover over a URL and click the magnifier icon to inspect it. You can also paste it into the "Inspect any URL" bar in Search Console.
  3. Open Page indexing in the result.
  4. Read two fields. User-declared canonical shows the canonical your page asks for, and reads None when you declared nothing. Google-selected canonical shows the URL Google actually indexed.
  5. Paste the Google-selected URL into your browser and compare it with the page you inspected.

If the two pages match and Google chose the version you would have chosen yourself, you are done. Move on to the next URL.

The common mistake is reaching for Test live URL here. The live test cannot show the Google-selected canonical, because Google decides the canonical at indexing time, not during a test fetch. Read the indexed result, not the live one.

Why does Google pick a different page?

Because a canonical is a vote, not a command. Google's documentation says it directly: "indicating a canonical preference is a hint, not a rule."

Google clusters pages that look the same, then picks the one it considers "the most complete and useful for search users." In a 2020 episode of Google's Search Off the Record podcast, Gary Illyes said Google weighs "over twenty signals" to make that pick, and that canonicalization is separate from ranking.

The signals you control, from Google's own guide on consolidating duplicate URLs:

SignalStrengthNote
301 redirectStrongThe redirect target should become canonical
rel="canonical" tagStrongOnly read inside the <head>
Sitemap inclusionWeakEvery URL in a sitemap is suggested as canonical
HTTPS over HTTPPreferenceGoogle prefers the https version
Internal linksSupportingLink to the canonical, never the copy

The signals stack. One redirect plus a matching canonical tag plus a clean sitemap beats any single signal. When they contradict each other, Google falls back on its own judgement.

How do you fix Duplicate without user-selected canonical?

Only fix the URLs where Google picked wrong, or where a page should never have been treated as a copy. Then match the fix to the cause. There are four.

Should the duplicate exist at all? If not, 301 it

The http version, the www version, an old URL from before a redesign: none of these need to exist as pages. Send each one to the canonical with a permanent 301 redirect.

Google calls a redirect a strong signal and recommends it "when you want to get rid of existing duplicate pages." A server-side redirect takes effect fastest. On WordPress you can do it without code; I walk through the options in how to redirect a WordPress page.

Use one hop only. A redirect chain (A to B to C) slows crawling and weakens the signal at every step.

Do both URLs need to stay? Add a rel="canonical" tag

Some duplicates have to stay live because people use them: sorted and filtered category pages, print versions, tracking-parameter URLs. For these, put a canonical tag in the <head> of the copy, pointing at the main page:

html
<link rel="canonical" href="https://example.com/shoes/running/" />

Two rules from Google's documentation that people break all the time. Use an absolute URL with the full https:// address, not a relative path. And place the tag in the <head>; a canonical tag in the body is ignored.

Give the main page a self-referencing canonical too, so it votes for itself. If filters are the cause, my guide to faceted navigation SEO covers which filter pages to index and which to fold into the parent.

Is the page not really a duplicate? Make it different

Sometimes Google is right and the page genuinely adds nothing. Location pages built from one template with only the city name swapped are the classic case. So are tag archives that list the same five posts.

Google's help says it plainly: if the page is not a duplicate, make its content differ substantially. That means real, page-specific information, not a reworded intro. If you cannot add anything unique, the page probably should not exist. Merge it into the stronger page and redirect, as I describe in content pruning for SEO.

Do your other signals agree? Clean them up

A canonical tag that every other signal contradicts loses. Check three things:

  • Sitemap: list only the canonical URLs. A sitemap full of parameter URLs votes for the copies.
  • Internal links: menus, breadcrumbs and in-content links should point at the canonical, never at a ?ref= or trailing-slash variant.
  • hreflang: on a multilingual site, each language version needs a canonical in the same language. My guide to international SEO covers the setup.

What about "Duplicate, Google chose different canonical than user"?

This one is the real problem. Here you did declare a canonical, and Google overruled you. Google's help calls it an error worth investigating.

Inspect the URL and compare the User-declared canonical with the Google-selected canonical. Then look for the cause. These are the ones I find most often:

  • The canonical points at a different page. Google only picks a canonical that is similar to the duplicate. A product page canonicalised to its category page gets ignored.
  • The canonical target is broken. It redirects, returns a 404, is blocked in robots.txt, or carries noindex. Google will not pick a URL it cannot index.
  • Your signals vote against you. The sitemap and internal links all point at the URL you canonicalised away.
  • The canonical points at http while the site runs on https.
  • A plugin and the theme each print a canonical, with different URLs. Google sees two votes and trusts neither.

Fix the cause, then click Validate fix in the report. Google rechecks the affected URLs; its help says validation typically takes up to about two weeks.

Is "Alternate page with proper canonical tag" a problem?

No. Google's wording is unusually direct: "This page correctly points to the canonical page, which is indexed, so there is nothing you need to do."

Seeing hundreds of these is normal on sites with filters, AMP pages, or language versions. Each one is a copy doing its job, pointing its signals at the main page.

I wanted to see how often stores rely on this tag at all. Shopify lets you reach every product through a collection path such as /collections/all/products/product-name, which duplicates the main /products/product-name URL. So I opened that collection path for one product on five well-known Shopify stores: Colourpop, Allbirds, Death Wish Coffee, Tentree and Brooklinen.

Four of the five answered with a 301 redirect to the /products/ URL. Only Tentree served the collection page itself, with a canonical tag pointing at /products/. That is exactly the setup that shows up as Alternate page with proper canonical tag. Both approaches work. The redirect simply leaves no duplicate for Google to sort out.

Which mistakes make canonical problems worse?

Google's guide lists these directly, and I still find each of them on real sites:

  • Blocking duplicates in robots.txt. Google cannot read the canonical tag on a page it is not allowed to crawl.
  • Using noindex to pick a canonical. Google does not recommend noindex for canonical selection within a single site. It drops the page and its signals instead of passing them on.
  • Using the URL removal tool. It hides a URL from results for a while. It does not choose a canonical.
  • Declaring different canonicals in different places. For example, a canonical tag that disagrees with your sitemap or with an HTTP header canonical.
  • Pointing a canonical at a URL fragment such as #section.

For PDFs and other non-HTML files, you can send the canonical as an HTTP header instead. Just do not send both a header and an HTML tag on the same page; Google says that is more error-prone.

What I saw when I moved this site off WordPress

When I rebuilt TheGuideX as a static site, I sent every old WordPress URL to its new address with a 301 instead of leaving copies behind. Then I inspected a handful of the old and new URLs in Search Console.

The old post URL, the www version and the http version all showed Page with redirect. That is the status you want for retired URLs. Not one of them sits in a duplicate status, because none of them still serves a page.

The new post URL showed Submitted and indexed, with a clean Google-selected canonical. Its trailing-slash twin showed URL is unknown to Google: the site only ever links one form, so Google never found a second one to choose between.

The one leftover was the old WordPress /feed/ URL, parked in Crawled - currently not indexed. That is harmless for a feed. The lesson I take from the migration: a duplicate you redirect never needs a canonical decision at all.

Pages stuck in Search Console that you cannot explain?

We read the Page indexing report URL by URL, find the signal Google is following, and fix the cause instead of resubmitting the symptom.

See technical SEO

Final take

"Duplicate without user-selected canonical" is Google doing a job you left open. Do not try to clear the count to zero; on any site with filters or parameters, that is neither possible nor useful.

Inspect a sample of the URLs instead. If Google picked the page you would have picked, leave it. If it picked wrong, redirect the copies that do not need to exist and canonicalise the ones that do. Then make your sitemap and internal links vote the same way.

The status that deserves your time is the other one: Google chose different canonical than user. That is Google telling you your signals disagree.

Common questions

Is "Duplicate without user-selected canonical" bad for SEO?

Not on its own. Google does not count it as an error, and one version of the content is still indexed and ranking. It only hurts when Google picked the wrong URL, or when a page that should rank on its own is treated as a copy.

What is the difference between "Duplicate without user-selected canonical" and "Google chose different canonical than user"?

In the first, you declared no canonical, so Google chose one. In the second, you did declare one and Google overruled it. The second is the one to investigate, because it means your canonical tag and your other signals disagree.

Should I use noindex instead of a canonical tag on duplicate pages?

No. Google advises against using noindex to steer canonical selection within one site. A noindexed page drops out completely, along with any links pointing to it. A canonical tag or a 301 redirect folds those signals into the page you want to rank instead.

Does WordPress add canonical tags automatically?

Partly. WordPress core prints a self-referencing canonical on single posts and pages through rel_canonical(), but not on the home page, archives, or category pages. SEO plugins such as Yoast SEO, Rank Math and Slim SEO fill those gaps and let you override the canonical per post.

How long does Google take to update the canonical after a fix?

Until Google recrawls the affected URLs. Click Validate fix in the Page indexing report to queue the known URLs for a recheck. Google says validation typically takes up to about two weeks, and sometimes much longer. The count also drops on its own as Google recrawls.

Can I force Google to use my canonical URL?

No. Google treats a canonical tag as a hint, not a rule. What you can do is make every signal agree: a 301 from the copy, a self-referencing canonical on the page you want, internal links to it, and only that URL in your sitemap.

Written by
Sunny Kumar
Sunny KumarSEO Specialist & product builder

SEO Specialist and product builder with 10+ years in search. The notes come from the work, not the theory.

Work with TheGuideX

Reading about it is the easy part.

Send us the site and what you are seeing. Your first reply comes from Sunny Kumar, with where he thinks the cause is and whether we are the right fix.