What it means
Google's full text: "This page is a duplicate of another page, although it doesn't indicate a preferred canonical page. Google has chosen the other page as the canonical for this page."
Two parts matter:
- "Duplicate": Google thinks this URL shows the same content as another URL.
- "Without user-selected canonical": neither page has a canonical tag saying which one is the main version, so Google chose.
Often Google chooses well and you can leave the row alone. It becomes a problem when Google keeps the URL you did not want, such as a version with a tracking parameter or the http version.
Is the right page indexed? The 1-minute check
- Open the row in Indexing > Pages and copy one example URL.
- Paste it into URL Inspection and open Page indexing.
- Read Google-selected canonical.
| Google-selected canonical is... | Call |
|---|---|
| The clean URL you want people to land on | Ignore. Google chose well |
| A URL with parameters, http, a different slash, or a print version | Fix: tell Google which URL is the main one |
| A different page that is not a real duplicate | Fix: make the pages more different, or merge them |
Common causes
- URL parameters.
?utm_source=,?ref=,?sort=,?replytocom=all create copies of the same page. - http and https, or www and non-www, both loading without a redirect.
- Trailing slash.
/servicesand/services/both return the page. - Uppercase and lowercase paths that both load.
- Print, AMP or share versions without a canonical.
- Near-duplicate pages, for example location pages where only the city name changes. These are not technical duplicates. They need different content, or one stronger page.
How to fix it
Google lists three main ways to tell it which URL is the main one, and they work best together (Google, consolidate duplicate URLs, updated July 2026):
| Method | Google's words | Use it for |
|---|---|---|
| 301 redirect | "a strong signal" | http to https, www to non-www, trailing slash, old URLs |
| rel="canonical" tag | "a strong signal" | Parameters, filters, print versions that must stay live |
| Sitemap inclusion | "a weak signal" | List only the main URLs |
Then make your internal links point only at the main URL. Google warns against two shortcuts: do not use robots.txt for canonicalization, and do not use noindex to pick a canonical within one site, because noindex "will completely block the page from Search."
How to set a canonical tag on each CMS
- WordPress with Yoast SEO: Yoast prints a self-referencing canonical on every post and page by default. To point elsewhere, edit the post > Yoast panel > Advanced > Canonical URL.
- WordPress with Rank Math: also self-referencing by default. Edit the post > Rank Math panel > Advanced tab > Canonical URL.
- Shopify: themes print a canonical from
canonical_urlin theme.liquid. If it is missing, add<link rel="canonical" href="{{ canonical_url }}">inside the head. - Webflow: set a Global canonical tag URL in Site settings > SEO (your main domain), and a Page canonical URL in a static page's SEO settings when needed (Webflow Help Center).
- Wix: Wix adds a self-referencing canonical to every page. To change it, open the page's SEO settings > Advanced SEO > Additional tags > canonical (Wix Help Center).
Check the result with our free canonical tag checker.
When Google ignores your canonical
If you set a canonical and Google still picks another URL, the row changes to "Duplicate, Google chose different canonical than user". Your signals disagree: maybe the sitemap lists one URL, internal links point to another, and the canonical tag names a third. Make all three point to the same URL. If the pages are truly the same, a 301 redirect settles it.
If your canonical works and Google agrees, the alternate URLs move to Alternate page with proper canonical tag, which needs no action. The free 13-page Page indexing fix guide covers all 17 reasons.
How to use this with an AI assistant
Connect SEOmatic at https://seomatic.ai/mcp and ask: "Sign me in with connect_seomatic, inspect these duplicate URLs with gsc_indexing (action: batch_inspect) and show the Google-selected canonical for each. Where Google kept the wrong URL, stage a canonical fix for my approval with task_manage (action: create)." Fixes need the trial, and nothing goes live until you approve.
More from the page indexing fix guide
- The checklistPage indexing: why pages aren't indexed, and how to fix each reason
- GuideCrawled - currently not indexed: what it means and how to fix it
- GuideDiscovered - currently not indexed: why it happens and how to fix it
- GuideSoft 404: what it is and how to fix it
- Guide"Page with redirect" in Search Console: is it a problem?
- GuideAlternate page with proper canonical tag: what it means


