It means Google found a page that looks like a duplicate of another page, you did not tell it which version to treat as the original, so it picked one for you. The page you are looking at is not the one it picked, which is why it is sitting in the not indexed list.
Sometimes that is a real problem costing you traffic. Quite often it is Google doing exactly the right thing with a URL you never wanted indexed anyway. Telling those two apart is the entire job, and it takes about ten minutes.
Where the message comes from
You will find it in Google Search Console, under Indexing, then Pages, in the section listing reasons pages are not indexed. Clicking the row gives you the affected URLs.
Two things in the wording are doing real work. “Duplicate” is Google’s judgement that this page is substantially the same as another one it has seen. “Without user-selected canonical” means no canonical tag on that page pointed anywhere, so Google chose the canonical itself.
Worth knowing before you start changing things: a canonical tag is a hint, not an instruction. You can declare one and Google can still disagree. When it does, you get the related status “Duplicate, Google chose different canonical than user” instead, which is a different conversation.
Find out which page Google kept
Before diagnosing anything, get the fact you actually need. Take one of the affected URLs, put it into the URL Inspection tool at the top of Search Console, and open the coverage details.
You are looking for two fields. User-declared canonical will be empty or absent, which is what put the page in this bucket. Google-selected canonical is the page it kept instead.
That second field decides everything that follows:
- It chose a page you are happy with. Nothing is broken. The right page is indexed and this row is noise.
- It chose the wrong page. Your preferred version is losing to a variant, and that is worth fixing today.
- It chose a page on another domain. Your content is being credited elsewhere, which is the most serious version of this.
What usually causes it
URL parameters
Filters, sorting, session identifiers and tracking tags all create new URLs serving nearly identical content. A product listing filtered by color is the same listing. Campaign tags appended to a shared link create a second address for a page that already existed.
Address variants of the same page
The classic four: with and without www, http and https, with and without a trailing slash, and upper against lower case. To a person these are obviously one page. To a crawler they are four URLs until something says otherwise.
Archives that repeat the content
In WordPress, tag and category archives, date archives, author archives and paginated comment URLs can all surface the same text as the posts themselves. Attachment pages are a particularly common one: every uploaded image can get a thin page of its own that exists for no reader.
Pages that genuinely are too similar
This is the uncomfortable one. Product variants that differ only by size. Location pages where the town name is the only change. Two articles written a year apart that answer the same question. Google is not confused here. It is telling you that you wrote the same page twice.
Content published in more than one place
Syndicated articles, manufacturer descriptions used verbatim by every retailer, or a staging site that was left crawlable. If the Google-selected canonical is on a domain you do not control, this is where to look first.
Fixing it
- Give every page a self-referencing canonical. Each page declares itself as the original. This is the single change that resolves most of these rows, and Rank Math and Yoast both do it by default. If yours are missing, something is overriding the plugin or the tag is being stripped.
- Point variants at the version you want. Filtered, sorted and tracked URLs should carry a canonical to the clean version of that page rather than to themselves.
- Redirect address variants, do not canonical them. www, http and trailing slash differences should be settled with a permanent redirect to one chosen form. Canonical tags are for pages that must both exist. Redirects are for pages that should not.
- Turn off attachment pages. Most SEO plugins offer a setting to redirect them to the file or to the parent post. There is rarely a reason to keep them.
- Merge pages that duplicate each other. Where two pages compete for the same query, combine them into the stronger URL and redirect the other. You get one better page instead of two weak ones.
- Claim syndicated content. Ask publishers who republish your work to include a canonical pointing back at your original. Many will if you ask before publication.
Mistakes that make it worse
- Blocking the duplicates in robots.txt. This feels like the obvious fix and does the opposite. A blocked URL cannot be crawled, so Google never sees the canonical tag you put on it, and the signal you wanted to send is the one thing you have prevented it from reading.
- Adding noindex and a canonical together. One says ignore this page, the other says credit a different page. Conflicting instructions get resolved in ways you did not choose. Pick one.
- Canonical chains. A pointing at B, B pointing at C. Point everything directly at the final destination.
- Canonicalling to a redirect or a 404. The target must be a live page returning 200.
- Fixing rows that were never a problem. If Google kept the page you wanted, spending a week reorganizing your site to clear a status message is effort with no reader on the other end of it.
When to leave it alone
Search Console reports statuses, not verdicts. Plenty of sites carry thousands of URLs in this bucket permanently and rank perfectly well, because those URLs are parameter variants and archive pages that nobody was ever going to search for.
The test is not whether the number is large. It is whether any URL you actually care about appears in the list. Sort the affected URLs, look for the pages that matter to your business, and ignore the rest. An empty report is not the goal and chasing one is a common way to spend a month achieving nothing.
After you fix it
Use URL Inspection on a corrected page, check the live URL, and confirm the canonical is now visible to Google. Then use Validate Fix on the affected group in the Pages report.
Recrawling takes time, and low value URLs are crawled least often, which means these rows can persist for weeks after the underlying fix is correct. Verify with the inspection tool rather than by watching the chart, because the chart will keep showing the old state long after you have finished.
The short version
Inspect an affected URL and read the Google-selected canonical. If Google kept the page you wanted, do nothing. If it kept the wrong one, add a self-referencing canonical to your preferred version, point the variants at it, redirect the address level duplicates, and merge anything that is genuinely the same page written twice.
If your report is large enough that you cannot tell which rows matter, that is one of the first things a technical SEO audit untangles, and knowing which of those URLs are costing you something is worth more than clearing the list.