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

Updated 2026-09-14 · Source: https://porteur.ai/guides/duplicate-without-user-selected-canonical

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

```html
<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.

```html
<!-- 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.

> One rule: your canonical URL must load a 200 page, not redirect, not 404, not be blocked, and not carry noindex.

## 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

### How do I solve Duplicate without user-selected canonical on my site?

Pick the preferred URL for each page, add a rel=canonical to it and to every duplicate, then redirect variants that do not need to exist. Update internal links and your XML sitemap to use the canonicals only. Validate the fix in Search Console and spot check with URL Inspection.

### How do I fix a non-canonical URL that gets traffic?

Keep it live for now and add a canonical to the preferred URL. Update your links and run a 301 when you are ready. If the URL has strong external links, keep the redirect long term. Make sure the new canonical page carries any unique content users expect.

### Should I use noindex or canonical for duplicates?

Use canonical when the content is the same and you want to consolidate signals. Use noindex when the page should be accessible to users but not appear in search. Do not combine noindex with a canonical to a different URL on the same page, it sends mixed signals.

### How long until the status clears after I add canonicals?

There is no fixed time. Validate fix in the report, which can take about two weeks. Use Request indexing sparingly for key pages. Google needs to recrawl both the duplicates and the canonical before it updates the index.

### Why did Google choose a different canonical than my tag says?

Google weighs more than the tag. If most internal links, the sitemap and external links point to another URL, it may prefer that one. Make your canonical the strongest by fixing links, ensuring a 200 response and removing near-duplicates or redirecting them.

### Do I list only canonical URLs in my XML sitemap?

Yes. Keep the sitemap to the exact URLs you want indexed. Do not include parameters or alternates. This reinforces your canonical choices and keeps the crawl focused.

## Read next

- [Canonical tags: what they do and the mistakes that cost rankings](https://porteur.ai/guides/canonical-tag): What a canonical tag does, when to use one, the mistakes that cost rankings, and how to check and fix canonicals on a small site.
- [Alternate page with proper canonical tag: what Search Console means](https://porteur.ai/guides/alternate-page-with-proper-canonical-tag): What this Search Console status means, when to ignore it, when it hides the wrong page, and the exact checks and fixes to set the right canonical.
- [How to use the URL Inspection tool in Search Console](https://porteur.ai/guides/url-inspection-tool): Read each panel, run Test live URL, and know when to request indexing. Fix new pages, dropped pages, and canonicals Google ignores.
- [How to use Google Search Console in ten minutes a week](https://porteur.ai/guides/how-to-use-google-search-console): A quick weekly routine: set four filters, compare 28 days, check pages then queries, and fix three findings, without getting lost in noise.
- [Canonical URL](https://porteur.ai/glossary/canonical-url): A canonical URL names the original version of a page. Use it to handle parameters and duplicates, avoid split signals and keep the right page indexed.
- [The Sitemaps report: what Success, Has errors and Couldn’t fetch mean](https://porteur.ai/guides/search-console-sitemaps-report): How to submit your sitemap URL, read Success, Has errors and Couldn’t fetch, and fix invalid XML, 404s, cross‑host URLs and missing child sitemaps.
- [The Crawl stats report: how much Google fetches and where it struggles](https://porteur.ai/guides/search-console-crawl-stats-report): Find Crawl stats in Search Console Settings. Read the four charts, host status and breakdowns. Spot 5xx spikes and wasted crawls. Know what is normal.
- [Thin content](https://porteur.ai/glossary/thin-content): Thin content is a page with little value of its own. See why it drags a small site, how to spot it, and how to expand, merge or remove.

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: https://porteur.ai/
