Duplicate without user-selected canonical: the fix in three steps

Google found copies of a page and you did not say which is the original. On a small product site this costs crawl, weakens ranking signals and splits links. Here is how to find the chosen URL and fix it in three steps.

By , founder of Porteur · Updated 14 September 2026 · Markdown

What this status means and why it hurts

Search Console shows Duplicate without user-selected canonical when Google found multiple pages with the same or very similar content, and none declares a canonical. Google will still pick one to index. You lose control over which URL ranks.

On a small site this wastes crawl, splits internal and external links across copies and dilutes signals. One clean URL will rank better than five near-copies that compete with each other.

You clear it by picking a canonical URL and declaring it on every duplicate. Where a duplicate has no reason to exist, redirect it to the canonical. Then update links and sitemaps so visitors and Google reach the right URL directly.

Where duplicates come from on product sites

  • Trailing slashes: /pricing and /pricing/ return the same page
  • HTTP and www variants: http://yourproduct.com, https://yourproduct.com, https://www.yourproduct.com
  • Parameters for tracking and sorting: /guides/getting-started?utm_source=twitter, /listings?sort=price, /search?q=notes&page=1
  • Print or AMP versions that mirror the main page
  • Filtered and faceted grids that can combine to infinite URLs: /shoes?colour=blue&size=9
  • Pagination that duplicates page 1: /blog and /blog?page=1
  • Staging and preview environments that are crawlable: https://staging.yourproduct.com/pricing
  • Case and trailing question marks: /Pricing, /pricing?
  • Session IDs and IDs in the path that do not change content meaningfully

Pick one URL pattern per page. Make everything else point to it. If /pricing is canonical, link to /pricing everywhere, not /pricing/ or /pricing?ref=home.

See which URL Google chose

Use the URL Inspection tool for one URL at a time. Paste a duplicate, for example https://yourproduct.com/pricing?utm_source=twitter. Check the Page indexing section. Compare User-declared canonical and Google-selected canonical.

  • If there is no User-declared canonical, add one on each copy
  • If Google-selected canonical is not your preferred URL, fix internal links and sitemaps, strengthen the canonical signals, and remove or redirect weak copies

Click Test live URL to fetch now. Use View tested page to see rendered HTML, the HTTP response and any blocked resources. Request indexing after you fix the page. The queue has a small daily quota and no guarantee of indexing.

The fix in three steps

  1. Choose the canonical URL for each cluster

    Pick the URL you want to index, link and show. Example: choose https://yourproduct.com/pricing over /pricing/, /pricing?ref=nav or http://yourproduct.com/pricing.

  2. Declare the canonical on every duplicate

    Add a rel=canonical on the canonical to itself and on every copy to the canonical. Keep it absolute, one tag per page, in the <head>. See examples below.

  3. Redirect copies that should not exist

    301 redirect variants that add no value: HTTP to HTTPS, www to non-www, trailing slashes to your chosen form, UTM and page=1 to the clean URL. Update internal links and your XML sitemap to the canonical only.

How to set rel=canonical correctly

Use a single canonical per page. Point it to the preferred absolute URL. Place it in the head of the HTML. Do not block the canonical URL in robots.txt. Do not noindex it.

<link rel="canonical" href="https://yourproduct.com/pricing" />

On copies, point to the same canonical. For example, on https://yourproduct.com/pricing/?utm_source=twitter, declare the canonical to https://yourproduct.com/pricing. Keep protocol and host consistent across the site.

<!-- On https://yourproduct.com/pricing/?utm_source=twitter -->
<link rel="canonical" href="https://yourproduct.com/pricing" />

For paginated series, do not point every page to page 1 unless they are truly the same content. Give each page its own canonical. Example: /blog?page=2 canonicalises to itself if it has unique posts and a unique title like Page 2.

When to redirect instead of canonical

Use a 301 when the duplicate has no use case or should never be linked. Canonical is a hint. A redirect is a directive for users and crawlers.

  • HTTP to HTTPS, and www to your chosen host
  • Trailing slash normalisation across the site
  • Query parameters that do not change content meaningfully, like UTM tags, page=1 on lists, ?ref=
  • Old slugs to new slugs after a rename: /pricing-plans to /pricing
  • Print pages that are the same as the main page
  • Staging and preview environments to the live site, or block them from crawl and index entirely

A fixed page looks like this: /pricing loads over HTTPS without www, no trailing slash if that is your pattern, and no parameters. All variants redirect there in one hop. The canonical tag on /pricing points to itself.

Filtered, faceted and paginated pages

Filters and sorts can explode URL count. Most combinations do not deserve index. Keep a small set that you want indexed. Canonicalise or noindex the rest. Make link and sitemap choices explicit.

  • If /shoes?colour=blue is a real landing page, give it unique copy and a self-referencing canonical
  • If /shoes?sort=price is not a landing page, canonicalise it to /shoes and do not list it in the sitemap
  • For pagination, each page should canonicalise to itself if it holds distinct items, and page 1 should not be duplicated by /shoes?page=1
  • Avoid linking to thin combinations from your main nav or footers, link to the core category URL only

If you cannot control the URL output, at least normalise internal links to the canonical forms. That reduces discovery of junk URLs and keeps crawl focused on the pages that matter.

When Google overrides your canonical

Search Console may show Duplicate, Google chose different canonical than user. This means you set a canonical, but Google preferred another URL. It weighs content, internal links, sitemaps and external links.

  • Check that your canonical URL returns 200 and does not redirect
  • Update internal links to point to the canonical only
  • List only canonical URLs in the XML sitemap
  • Remove alternate URLs from major nav and sitemaps, or redirect them
  • Ensure the canonical is consistent across desktop and mobile, and not injected late by JavaScript

If two pages are near-duplicates but not exact, consolidate them. Move any unique copy to the canonical and redirect the weaker page. Example: merge /features and /product-features into /features.

Clean up in Search Console and your codebase

Open the Page indexing report. Filter to Not indexed, reason Duplicate without user-selected canonical. Review the example URLs. You can export up to 1,000 examples per reason. Group them by pattern before you fix code.

  • Fix templates and middleware, not just one-off pages
  • Normalise internal links across header, footer and emails
  • Update the XML sitemap to list canonicals only
  • Remove outdated rewrites and redirect chains, ensure one 301 hop
  • Check robots.txt does not block the canonical URLs

After deploy, use Validate fix in the report. The re-check can take about two weeks. While you wait, spot check with URL Inspection and Test live URL for the main patterns. Request indexing for the canonical URLs you changed.

Questions

Sources

Check my site, free

Paste your URL, and get a free thirty seconds check that lists duplicates, the searches around your page and rival URLs, with three findings shown in full.

  • Free check, no card
  • Read-only, your own accounts
  • Readable by your agent

Read next