How to Fix “Duplicate Without User-Selected Canonical” in GSC
On this page
This status means three things happened together: Google found a page it considers a duplicate of another URL, the page didn’t declare a preferred canonical, and Google picked the canonical itself. Google’s help for the Page indexing report says: “This is not an error, but is working as intended,” because Google doesn’t serve duplicate pages. It becomes a problem when Google’s pick differs from the URL you want indexed, or when the page isn’t a duplicate at all. So the work is to group the duplicates by what creates them, compare Google’s choice with yours, and fix the cases where they disagree. A twelve-thousand-row report can shrink to a short list once you check which pages Google chose.
What the status tells you
Google treated the page as a duplicate, found no rel="canonical" naming a preferred version, and chose one itself. The same help page gives two ways forward. If you think Google chose the wrong URL as canonical, you can explicitly mark the canonical. If you think the page isn’t a duplicate of the URL Google chose, you should make sure the content differs substantially between the two.
That second branch matters. Certain pages land here not because a URL is repeated, but because two distinct pages look alike to Google: product variants that differ only in color, category pages that share a template and list near-identical items, articles that share the bulk of their layout and little of their text. A canonical tag doesn’t fix that. Only making the pages different does.
Group the duplicates by source
Split the flagged URLs by what generates them, because the fix differs:
- Tracking parameters.
utmand similar query strings create extra addresses for one page. These should resolve to a clean canonical. - Session IDs in URLs. A session identifier in the path or query can mint a new URL on each visit. Check your server logs for Googlebot requesting session-parameter URLs; if it is, that source alone can flood the report.
- Pagination. Paginated pages can land here when they look near-identical. Each page should carry its own canonical rather than point at page one, as Google’s pagination guide advises.
- Multi-path content. The same article reachable through two URLs, such as a category path and a flat path, duplicates itself.
Grouping turns one undifferentiated report into a handful of concrete problems. When one generator, such as a tracking scheme or a session-ID setting, accounts for thousands of rows from hundreds of real pages, fix the mechanism that mints the duplicates first. That clears far more of the report than handling URLs one at a time, and it stops new duplicates from appearing after the cleanup.
The canonical-tag bug to check first
One root cause to rule out early is a template that echoes the request URL, parameters included, as the canonical, instead of emitting the stored clean URL. The template thinks it is adding a self-referencing canonical, but on a parameter URL it names the parameter version as canonical, which defeats the purpose. Load a parameter URL, view the source and read the rel="canonical" value. If it repeats the parameter version rather than the clean URL, that template behavior is the bug.
Test it across the variants your site produces: a URL with a utm string, a trailing slash, a mixed-case path and an index.html suffix. Each should name the identical clean address as canonical. One fix at the template layer can remove whole classes of duplication at once. If your CMS has a canonical field per page, make the template prefer that stored value over anything rebuilt from the live request.
Use URL Inspection to separate signal from problem
For a sample of flagged URLs, URL Inspection shows the canonical you declared (the user-declared canonical) and the one Google chose (the Google-selected canonical):
- If Google’s choice is the URL you would have picked, the entry is working as intended. Monitor it and move on.
- If Google’s choice is a different URL, Google is serving a version you didn’t intend. That is the subset to fix.
You aren’t fixing twelve thousand rows; you are fixing the ones where Google’s pick and yours disagree.
Canonical or redirect
Google’s guide to consolidating duplicate URLs lists redirects first among the methods, in order of how strongly they can influence canonicalization, with rel="canonical" next. Choose by whether people need the duplicate URL to work:
- Keep the URL reachable, declare a canonical: print views, legitimate alternate paths, and tracking-parameter URLs. A tracking parameter has to reach the page for your analytics to read it. A server-side redirect to the clean URL happens before any page loads, so the parameter is gone by the time the analytics tag runs on the destination.
- Redirect: duplicate URLs nobody needs to land on, such as an old path, sent permanently to the clean URL. Session IDs are different: redirecting a live session can break it, so stop putting session IDs in URLs and keep session state elsewhere, such as in a cookie.
Make the preferred URL point its canonical at itself, and keep every signal you control naming the same version. The same guide calls sitemap inclusion a weak signal, so list only canonical URLs in your sitemap, and point internal links, navigation and related-content modules at the clean URL. Links to parameter or alternate-path versions can keep reintroducing the duplicates.
What not to do
- Don’t block the duplicates in robots.txt. The consolidation guide says not to use robots.txt for canonicalization. A blocked page can’t be crawled, so Google never sees its canonical, and the guide notes that Google may still index disallowed URLs without their content.
- Don’t look for the URL Parameters tool. Google announced its deprecation in March 2022. Parameter duplicates are handled with canonicals, redirects and clean internal links.
Changes take effect as Google recrawls. Google’s guide to asking Google to recrawl says “Crawling can take anywhere from a few days to a few weeks.” Fix the mechanism, keep the sitemap canonical-only, and judge progress by inspecting the pages you fixed rather than by the total count.
Frequently asked questions
Is this status always a problem I need to fix?
No. Google’s help calls it working as intended. Compare the Google-selected canonical with the URL you want; only the cases where they differ, or where the page isn’t a duplicate, need action.
Why shouldn’t I block the duplicates in robots.txt?
Because Google can’t read a canonical on a page it isn’t allowed to crawl, and its consolidation guide says not to use robots.txt for canonicalization.
Should I redirect UTM-tagged URLs to the clean URL?
No. A server-side redirect removes the parameter before your analytics tag loads, so the campaign data is lost. Keep tracking URLs reachable, give them a canonical pointing at the clean URL, and keep campaign parameters off your own internal links.