Duplicate Without User-Selected Canonical
What the Google Search Console status "Duplicate without user-selected canonical" means — you didn't declare a canonical, Google picked one for you, and this URL isn't indexed — how it differs from its two canonical siblings, and how to fix it.
"Duplicate without user-selected canonical" is a Google Search Console Page Indexing status meaning three things at once: this page is a duplicate, you never declared a canonical, and Google chose a different page as the canonical — so this URL isn't indexed. The defining trait is the missing signal: you didn't tell Google which URL you preferred, so it picked for you. It's distinct from "Duplicate, Google chose different canonical than user" (you declared one and Google overrode it) and "Alternate page with proper canonical tag" (you declared one and Google agreed — nothing to do). For parameter, filter, and faceted URLs this is often working as intended. When it's not, declare the canonical you want with rel=canonical and align your other signals — internal links, sitemap, redirects, HTTPS — so Google's choice matches yours. Confirm what Google picked with URL Inspection (User-declared vs Google-selected canonical). Remember: a canonical is a hint, not a directive.
TL;DR — This Search ConsoleA free Google service that reports how a site performs in Google Search and surfaces problems with how Google crawls, indexes, and serves it. It's first-party data straight from Google — but you don't need it to appear in results. status means Google foundA 302 (\"Found\") is a temporary redirect: it forwards users to a new URL while telling search engines the original URL should stay in the index. It's a weak canonicalization signal, not the zero-equity dead end of SEO folklore. this page to be a duplicate of another page, you never told Google which URL you preferred (no canonical), so Google picked one for you — and it wasn’t this one. That’s why this URL isn’t indexedStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed.. Often it’s fine (especially for filter and parameter URLs). If it’s the wrong page, declare the canonical you actually want.
What this status means
Open the Page IndexingThe Google Search Console report (formerly Index Coverage) showing how many of your URLs are indexed vs. not indexed, and grouping the not-indexed ones by reason. report in Google Search ConsoleA free Google service that reports how a site performs in Google Search and surfaces problems with how Google crawls, indexes, and serves it. It's first-party data straight from Google — but you don't need it to appear in results., look under the “Not indexed” reasons, and you may see “Duplicate without user-selected canonicalA Google Search Console Page Indexing status: Google found this page to be a duplicate, you didn't declare a canonical, so Google chose a different page as the canonical — and this URL isn't indexed..” Evidence for this claim Google defines this status as a duplicate without a user-selected canonical for which Google selected another canonical. Scope: Google Search Console report terminology and documented Search behavior; the label alone may not prove the underlying root cause. Confidence: high · Verified: Google: Page indexing report It’s telling you three things at the same time:
- Google thinks this page is a duplicate (or near-duplicateThe same or very similar primary content reachable at more than one URL. There's no general duplicate content penalty — the real costs are possible signal dilution, the wrong URL getting chosen, and less-efficient crawling.) of another page.
- This page never declared a canonical — there was no signal saying “this is the version I prefer.”
- So Google chose a different page as the canonical, and this URL isn’t indexed.
The key word is without: you never picked a preferred URL, so Google had to pick one on its own. Evidence for this claim Google may choose a canonical when a site owner does not specify one and recommends consistent canonical signals. Scope: Google Search Console report terminology and documented Search behavior; the label alone may not prove the underlying root cause. Confidence: high · Verified: Google: Canonicalization
Google’s own Page Indexing reportThe Google Search Console report (formerly Index Coverage) showing how many of your URLs are indexed vs. not indexed, and grouping the not-indexed ones by reason. treats this as an expected outcome, not an error, whenever its pick is the page you’d have chosen anyway — seeing the label isn’t proof something is broken.
Is it a problem?
Often, no. Lots of sites have the same content reachable at several addresses —
a product page that shows up under different category paths, a page with a tracking
parameter on the end, the http:// and https:// versions. Google rolling those
duplicates up onto one URL is usually exactly what you want.
It’s only a problem when the wrong page got chosen, or when a page Google treats as a duplicate is actually unique and you wanted it indexed on its own.
How to fix it (when it needs fixing)
The fix is to stop leaving the choice to Google:
- Tell Google which URL you prefer by adding a canonical tagA rel=\"canonical\" annotation — in the HTML <head> or an HTTP Link header — that tells search engines which URL is the preferred version of duplicate or near-duplicate content.
(
<link rel="canonical" href="...">) pointing at the version you want indexed. - Make everything agree — your internal linksAn internal link is a hyperlink from one page on a website to another page on the same website. Internal links help search engines discover your pages and pass ranking signals (PageRank and anchor-text context) between them., your sitemapA sitemap is a file that lists the pages, images, videos, and other files on your site so search engines can discover them. It helps discovery, but submitting a sitemap doesn't guarantee crawling or indexing., and any redirectsA redirect sends browsers and crawlers from a requested URL to a different one. An HTTP redirect specifically is a 3xx status code paired with a Location header; meta refresh and JavaScript redirects achieve a similar navigation without being a 3xx response themselves. Permanent redirects (301/308) are Google's signal the target should be canonical; temporary ones (302/303/307) aren't. should all point at that same preferred URL.
- Check what Google actually chose using the URL Inspection toolA Google Search Console feature that reports how Google sees one specific URL on a property you own. By default it shows the last-indexed snapshot; a separate \"Test live URL\" mode fetches the current version.: it shows you the “Google-selected canonical” so you can see which page won.
One thing to keep in mind: a canonical tagA rel=\"canonical\" annotation — in the HTML <head> or an HTTP Link header — that tells search engines which URL is the preferred version of duplicate or near-duplicate content. is a hint, not a command. Google usually follows it, but it can still pick a different page — so the trick is making all your signals point the same way.
Don’t confuse it with the other two
There are three similar-sounding canonical statuses in this report, and people mix them up constantly. The short version:
- This one — you set no canonical, Google picked for you.
- “Duplicate, Google chose different canonical than userA Google Search Console Page Indexing status: you declared a canonical for this URL, but Google overrode your choice, picked a different page as the canonical, and indexed that one instead.” — you did set a canonical, and Google overrode it.
- “Alternate page with proper canonical tagA Google Search Console Page Indexing status meaning a page is a duplicate or alternate version that correctly points its canonical at another, indexed page. It's normal, healthy behavior — Google says there is nothing you need to do.” — you set a canonical, Google agreed, and there’s nothing to do.
Want the implementation detail — the signals to align, the URL Inspection walkthrough, and the side-by-side table — switch to the Advanced tab.
TL;DR — “Duplicate without user-selected canonicalA Google Search Console Page Indexing status: Google found this page to be a duplicate, you didn't declare a canonical, so Google chose a different page as the canonical — and this URL isn't indexed.” fires when three things are true at once: the page is a duplicate, no canonical was declared, and Google chose another URL as canonical — so this one isn’t served. The defining feature is the absence of a signal: you never expressed a preference, so Google picked for you. It’s distinct from “Duplicate, Google chose different canonicalA Google Search Console Page Indexing status: you declared a canonical for this URL, but Google overrode your choice, picked a different page as the canonical, and indexed that one instead. than user” (you declared one, Google overrode it) and “Alternate page with proper canonical tagA rel=\"canonical\" annotation — in the HTML <head> or an HTTP Link header — that tells search engines which URL is the preferred version of duplicate or near-duplicate content.” (you declared one, Google agreed — nothing to do). It’s frequently working as intended for parameter/faceted/sorted URLs. When it isn’t, declare the canonical you want and make every other signal agree — internal linksAn internal link is a hyperlink from one page on a website to another page on the same website. Internal links help search engines discover your pages and pass ranking signals (PageRank and anchor-text context) between them., sitemapA sitemap is a file that lists the pages, images, videos, and other files on your site so search engines can discover them. It helps discovery, but submitting a sitemap doesn't guarantee crawling or indexing., redirectsA redirect sends browsers and crawlers from a requested URL to a different one. An HTTP redirect specifically is a 3xx status code paired with a Location header; meta refresh and JavaScript redirects achieve a similar navigation without being a 3xx response themselves. Permanent redirects (301/308) are Google's signal the target should be canonical; temporary ones (302/303/307) aren't., HTTPSHTTPS is the encrypted version of HTTP — it uses TLS to authenticate the server and protect data in transit between a browser and a website. Google announced it as a lightweight ranking signal in 2014 and today conditionally prefers HTTPS pages as canonical; Chrome marks plain HTTP pages 'Not Secure.'. A canonical is a hint, not a directive. Diagnose with URL Inspection: User-declared vs Google-selected canonical.
The three conditions, all at once
This status is precise. Google’s own definition is that the page Evidence for this claim Google defines this status as a duplicate without a user-selected canonical for which Google selected another canonical. Scope: Google Search Console report terminology and documented Search behavior; the label alone may not prove the underlying root cause. Confidence: high · Verified: Google: Page indexing report “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, and so will not serve this page in Search.” Three things have to be true together:
- Duplicate — Google grouped this URL with one or more near-identical pages.
- No declared canonical — there was no
rel="canonical", no other canonical signal pointing anywhere. - Google chose another URL — so this one is not indexedStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed..
The whole identity of this status is that second point: you didn’t tell Google which URL you preferred. It’s an absence of a signal, not a broken signal. That’s the lever for the fix, and it’s what separates this status from its siblings.
Google is also explicit that this state isn’t inherently an error: when Google’s selected canonical is the page you’d have picked anyway, there’s nothing to remediate just to change the report reason — Google doesn’t serve the duplicate either way, and the report is simply describing the outcome, not flagging a mistake.
It’s about the missing signal, not a penalty
Let me kill the most common worry first: this is not a duplicate-content penalty. There isn’t one. In the duplicate content guide I wrote for Ahrefs we quote John Mueller directly — “It’s not that we would demote a site for having a lot of duplicate contentThe same or very similar primary content reachable at more than one URL. There's no general duplicate content penalty — the real costs are possible signal dilution, the wrong URL getting chosen, and less-efficient crawling..” What you’re looking at is routine canonical consolidation, which is search engines doing their job, not punishing you.
So the question isn’t “how do I avoid a penalty,” it’s “did Google consolidate onto the URL I actually wanted?” If yes, you’re done. If no, you fix it by declaring the canonical that’s currently missing.
The three canonical statuses, side by side
This is the distinction people get wrong most. All three statuses involve canonicalizationHow search engines pick one canonical URL among duplicates and consolidate signals onto it., but they mean different things — and the difference comes down to whether you declared a canonical and whether Google agreed. The full table is in the Frameworks tab; the one-line mental model:
- No canonical specified + Google picked one → Duplicate without user-selected canonical (this page).
- You specified a canonical + Google agreed → Alternate page with proper canonical tagA rel=\"canonical\" annotation — in the HTML <head> or an HTTP Link header — that tells search engines which URL is the preferred version of duplicate or near-duplicate content. (the success case — nothing to do).
- You specified a canonical + Google disagreed → Duplicate, Google chose different canonical than user.
If you remember only one thing: “without user-selected” means there was no canonical signal at all — not that your canonical tag is broken. Evidence for this claim Google may choose a canonical when a site owner does not specify one and recommends consistent canonical signals. Scope: Google Search Console report terminology and documented Search behavior; the label alone may not prove the underlying root cause. Confidence: high · Verified: Google: Canonicalization The “Google chose different canonical than user” status is the one where you did set a canonical and Google overrode it. They are not the same problem and they don’t have the same fix.
Why pages land here
The duplicates that generate this status are almost always mechanical, not editorial:
- URL parametersThe `?key=value` data tacked onto the end of a URL after a question mark — used for tracking, sessions, filtering, sorting, and search — and one of the biggest sources of duplicate URLs and wasted crawling in SEO. — tracking tags (
?utm_…,?ref=…), session IDs, sort and filter parameters. - Faceted / filtered navigation — the same product set reachable through many filter combinations (this is where the status concentrates for ecommerce).
- Protocol and host variants —
http://vshttps://,wwwvs non-www. - Trailing-slash and case variants —
/pagevs/page/,/Pagevs/page. - The same content via multiple paths — a product reachable under several category URLs.
- Near-duplicate or syndicated contentSyndicated content is the deliberate, usually licensed republishing of the same article on other sites — wire pickups, partner reprints, or cross-posting. Because both parties know it's a copy, the SEO job is deciding which URL search engines should show, not eliminating a duplicate. — thin variations Google folds together.
Two patterns deserve their own treatment because a generic “canonicalize to one URL” answer breaks them:
- Paginated series. Google’s guidance is that each page in a paginated sequence keeps its own URL and should generally self-canonicalize — page 2 canonicalizing to page 1 is not the recommended pattern, and doing that is itself a way pages end up here. Treat paginationPagination splits a large set of content — product listings, blog archives, search results — across multiple sequentially numbered URLs. For SEO, each paginated page should be crawlable, indexable, and self-canonical; Google no longer uses rel=prev/next, but Bing still does. as its own case, not a generic duplicate.
- Regional or translated variants. A fully translated page isn’t a duplicate just because the layout matches — different-language content isn’t what this status is about. Same-language regional variants (e.g., two English pages for different countries) are the case that can land here; Google’s guidance is to keep canonical selection within that language and make sure hreflangHreflang is an annotation (in HTML, HTTP headers, or XML sitemaps) that tells search engines which language and optional region a page targets, and which alternate versions exist. It only works when every page in the cluster references all the others. alternates are reciprocal, or Google can disregard them.
Notice none of the mechanical variants above are about thin or “bad” content — they’re normal artifactsClaude's feature for generating and publishing interactive mini-apps from chat. of how sites get built. For most of them, consolidation is the desired outcome.
Is it a problem? When to care and when not to
Often it’s working as intended. For parameter, filter, sorted, and faceted URLs, you want Google to pick one representative and consolidate signals onto it. Forcing every variant into the index would be the mistake. Don’t try to “force-index” pages that are supposed to be deduped.
When to actually care:
- The wrong page got chosen. Google consolidated onto a variant you didn’t want
(a parameterized version, an
http://URL, a thinner duplicate) instead of your clean preferred URL. - A unique page got misjudged as a duplicate. Two pages that should be distinct look the same to Google — common on JavaScript-rendered sites where the unique content only appears after JS runs, so the static HTML looks identical.
In both cases the fix is the same shape: give Google a clear preference and make your signals consistent enough that it agrees.
How to diagnose it with URL Inspection
The URL Inspection toolA Google Search Console feature that reports how Google sees one specific URL on a property you own. By default it shows the last-indexed snapshot; a separate \"Test live URL\" mode fetches the current version. is how you see what actually happened. Run the affected URL through it and read two fields:
- User-declared canonical — what you told Google (often “None,” which is the whole point of this status).
- Google-selected canonical — the URL Google actually chose as authoritative.
Google’s own description of the Google-selected canonical: “The page that Google selected as the canonical (authoritative) URL when it found similar pages on your site. Google might select the user-declared canonical, but sometimes Google might choose another URL that it considers a better canonical example.” That’s this status in one sentence — similar pages, and Google chose another.
If “User-declared canonical” reads None, that confirms this specific page never declared a canonical preference — it’s not proof that no consolidation signal exists anywhere for the group. Redirects, sitemapA sitemap is a file that lists the pages, images, videos, and other files on your site so search engines can discover them. It helps discovery, but submitting a sitemap doesn't guarantee crawling or indexing. entries, internal linksAn internal link is a hyperlink from one page on a website to another page on the same website. Internal links help search engines discover your pages and pass ranking signals (PageRank and anchor-text context) between them., HTTPSHTTPS is the encrypted version of HTTP — it uses TLS to authenticate the server and protect data in transit between a browser and a website. Google announced it as a lightweight ranking signal in 2014 and today conditionally prefers HTTPS pages as canonical; Chrome marks plain HTTP pages 'Not Secure.', and hreflang are all separate signals Google can weigh, and canonical detail can be limited when the URL Google selected sits on a property you don’t own or verify. Compare the Google-selected canonical against the URL you wish it had chosen. If they match, leave it alone. If they don’t, move to the fix.
One more limit worth knowing before you lean on this tool: canonical selection is decided when Google indexes a page, not during URL Inspection’s live test. Running “Test Live URL” checks today’s HTML and headers, but it can’t test duplicate/alternate status and can’t tell you what Google would select as canonical — it also doesn’t see sitemap or referring-page context. Both canonical fields only update after Google actually recrawls and reprocesses the URL.
Confirm that the missing preference is visible in the delivered page before adding a canonical with my free On-Page SEO Checker Free
- Check the affected duplicate and confirm whether HTML or the HTTP Link header declares a canonical.
- If Google already selected the URL you want, decide whether adding a declaration is worth the change.
- If Google selected the wrong URL, add one absolute canonical and align internal links, redirects, and the sitemap with it.
A focused On-Page SEO Checker finding says: Canonical presence — No canonical signal was found in HTML or the HTTP Link header. The finding confirms an absent declaration; URL Inspection remains the source for Google's selected canonical.
How to fix it
1. Declare the canonical you want
Add a rel="canonical" to the duplicate pointing at your preferred URL — and
self-reference the preferred URL (have it name itself as canonical). The HTML
method is the <link rel="canonical"> in the <head>; for non-HTML files like
PDFs you send the same instruction in an HTTP Link header. The implementation
detail — <head>-only placement, absolute URLs, exactly one per page — lives in the
canonical-tag guide; the point here is simply to stop leaving the choice blank.
2. Make all your signals agree
This is the part people skip, and it’s the part that actually moves Google. A canonical tag is one signal among many — in my canonicalization guide, I describe it as “considered a strong signal,” but Google “ignores it if other signals are stronger.” So line everything up behind the same URL:
- Internal links point to the preferred URL (not the parameterized or variant version).
- Sitemap lists only the canonical, indexable URLs.
- Redirects — use a
301when you’re deprecating a variant: retiring it and sending users to its replacement. A redirect is a stronger consolidation signal thanrel=canonical, but it’s for a URL you’re getting rid of — don’t redirect two live URLs you still want reachable in parallel; canonicalize those instead. - HTTPS and host — serve and link the
https://canonical host consistently.
When canonical, internal links, sitemap, redirects, and HTTPS all point the same way, Google has no reason to disagree. When they contradict each other, Google has to guess — and that’s how pages end up in this bucket (or in the “Google chose different canonical than user” bucket).
3. Consolidate or differentiate near-duplicates
If two pages are genuinely the same, consolidate them onto one canonical. If they’re supposed to be different but look the same to Google (the JS-renderingTurning HTML, CSS, and JavaScript into the final visual page and DOM. trap above, or thin variants), make the difference real — distinct content that’s visible in the rendered HTML — so Google stops treating them as one.
4. Handle parameters and faceted nav deliberately
For filter/sort/session parameters, decide what you want indexed and canonicalize
the rest onto it. Often the right move is to let Google consolidate — not to chase
every variant into the index. Don’t reach for robots.txt to “fix” this: a blocked
URL can’t be crawled, so Google never reads the canonical on it and can’t pass
consolidation. And don’t pair noindex with a canonical — they’re
contradictory instructions; in my canonicalization guide I put it bluntly:
“Never mix noindexNoindex is a directive that tells search engines to keep a page out of their index, so it won't appear in search results. It works only on pages a crawler can actually fetch — a page blocked in robots.txt can never be noindexed. and rel=canonical.”
5. Remember the canonical is a hint
Even after you declare a canonical, Google can still pick a different URL — that’s the “Duplicate, Google chose different canonical than userA Google Search Console Page Indexing status: you declared a canonical for this URL, but Google overrode your choice, picked a different page as the canonical, and indexed that one instead.” sibling. Google is explicit that “indicating a canonical preference is a hint, not a rule.” The goal isn’t to “command” Google; it’s to make your signals so consistent that Google agrees with you. If it still disagrees after you’ve aligned everything, the usual culprit is that the two URLs aren’t actually equivalent content.
None of this comes with a guarantee of when, or even whether, Google’s selection changes. Aligning your signals raises the odds Google agrees with you; it doesn’t force a specific reprocessing time, a page getting indexed, or a ranking outcome.
What not to do
- Don’t “Request IndexingStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed.” and walk away. Re-requesting an unchanged duplicate won’t change Google’s canonical choice — change the signals first.
- Don’t
noindexthe duplicates as a reflex. Usually you want to consolidate (so ranking signals flow to the chosen URL), not drop the page. Google itself prefersrel=canonicalovernoindexfor in-site duplicates. - Don’t block the duplicate in
robots.txt. That stops Google reading the canonical, which defeats the consolidation.
For the broader picture — how Google chooses a canonical from its full pile of signals — see the canonicalizationHow search engines pick one canonical URL among duplicates and consolidate signals onto it. hub. The sibling statuses (“Duplicate, Google chose different canonical than user” and “Alternate page with proper canonical tag”) cover the cases where you did declare a canonical.
AI summary
A condensed take on the Advanced version:
- The status = three conditions at once: the page is a duplicate, no canonical was declared, and Google chose another URL as canonical — so this URL isn’t served. The defining trait is the missing signal, not a broken one. Google itself treats this as an expected outcome, not an error, when its pick matches what you’d have chosen.
- It’s not a penalty. There’s no duplicate-content penalty; this is routine canonical consolidation.
- Distinct from its two siblings: no canonical + Google picked = this status; you declared one + Google agreed = “Alternate page with proper canonical tagA Google Search Console Page Indexing status meaning a page is a duplicate or alternate version that correctly points its canonical at another, indexed page. It's normal, healthy behavior — Google says there is nothing you need to do.” (nothing to do); you declared one + Google disagreed = “Duplicate, Google chose different canonical than user.”
- Why pages land here: URL parametersThe `?key=value` data tacked onto the end of a URL after a question mark — used for tracking, sessions, filtering, sorting, and search — and one of the biggest sources of duplicate URLs and wasted crawling in SEO., faceted/sorted nav, HTTP/HTTPSHTTPS is the encrypted version of HTTP — it uses TLS to authenticate the server and protect data in transit between a browser and a website. Google announced it as a lightweight ranking signal in 2014 and today conditionally prefers HTTPS pages as canonical; Chrome marks plain HTTP pages 'Not Secure.' and www/non-www variants, trailing-slash/case, multiple paths to the same content, near-duplicateThe same or very similar primary content reachable at more than one URL. There's no general duplicate content penalty — the real costs are possible signal dilution, the wrong URL getting chosen, and less-efficient crawling./syndicated contentSyndicated content is the deliberate, usually licensed republishing of the same article on other sites — wire pickups, partner reprints, or cross-posting. Because both parties know it's a copy, the SEO job is deciding which URL search engines should show, not eliminating a duplicate.. Two edge cases need their own treatment: paginated series should self-canonicalize (not canonicalize to page one), and same-language regional duplicates need same-language canonical handling plus reciprocal hreflangHreflang is an annotation (in HTML, HTTP headers, or XML sitemaps) that tells search engines which language and optional region a page targets, and which alternate versions exist. It only works when every page in the cluster references all the others. — a full translation isn’t a duplicate at all.
- Often working as intended for parameter/filter/faceted URLs — consolidation is the goal. Care only when the wrong page was chosen or a unique page was misjudged as a duplicate (common on JS-rendered sites).
- Diagnose with URL InspectionA Google Search Console feature that reports how Google sees one specific URL on a property you own. By default it shows the last-indexed snapshot; a separate \"Test live URL\" mode fetches the current version.: read User-declared canonical (often “None”) vs Google-selected canonicalA Google Search Console Page Indexing status: you declared a canonical for this URL, but Google overrode your choice, picked a different page as the canonical, and indexed that one instead. to see what Google picked — but “None” only means this page didn’t declare one, not that no consolidation signal exists anywhere, and the live URL test can’t determine duplicate/alternate status or the selected canonical (that’s decided at indexingStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed., not live testing).
- Fix: declare the canonical you want (
rel=canonical, self-reference your preferred page), then make internal linksAn internal link is a hyperlink from one page on a website to another page on the same website. Internal links help search engines discover your pages and pass ranking signals (PageRank and anchor-text context) between them., sitemapA sitemap is a file that lists the pages, images, videos, and other files on your site so search engines can discover them. It helps discovery, but submitting a sitemap doesn't guarantee crawling or indexing., and HTTPSHTTPS is the encrypted version of HTTP — it uses TLS to authenticate the server and protect data in transit between a browser and a website. Google announced it as a lightweight ranking signal in 2014 and today conditionally prefers HTTPS pages as canonical; Chrome marks plain HTTP pages 'Not Secure.' agree, and use a redirectA redirect sends browsers and crawlers from a requested URL to a different one. An HTTP redirect specifically is a 3xx status code paired with a Location header; meta refresh and JavaScript redirects achieve a similar navigation without being a 3xx response themselves. Permanent redirects (301/308) are Google's signal the target should be canonical; temporary ones (302/303/307) aren't. only when you’re deprecating a variant outright. Consolidate or differentiate near-duplicates; handle parameters deliberately. - A canonical is a hint, not a directive — Google can still override it; the
aim is consistent signals, not a command, and none of it guarantees a specific
timeline or ranking outcome. Don’t
noindex+ canonical, don’trobots.txt-block the duplicate, and don’t expect “Request Indexing” to fix an unchanged page.
Official documentation
Primary-source documentation from the search engines.
- Page Indexing report (status definitions) — the source for all three canonical statuses, including “Duplicate without user-selected canonicalA Google Search Console Page Indexing status: Google found this page to be a duplicate, you didn't declare a canonical, so Google chose a different page as the canonical — and this URL isn't indexed..”
- URL Inspection Tool — read the User-declared canonical vs Google-selected canonicalA Google Search Console Page Indexing status: you declared a canonical for this URL, but Google overrode your choice, picked a different page as the canonical, and indexed that one instead. fields to see what Google chose and why.
- What is URL canonicalization — the concept doc, including the load-bearing “a hint, not a rule” line and why duplicate URLs occur.
- How to specify a canonical URL with rel=canonical and other methods — the supported methods and their relative strength (redirectA redirect sends browsers and crawlers from a requested URL to a different one. An HTTP redirect specifically is a 3xx status code paired with a Location header; meta refresh and JavaScript redirects achieve a similar navigation without being a 3xx response themselves. Permanent redirects (301/308) are Google's signal the target should be canonical; temporary ones (302/303/307) aren't. > rel=canonicalA rel=\"canonical\" annotation — in the HTML <head> or an HTTP Link header — that tells search engines which URL is the preferred version of duplicate or near-duplicate content. > sitemapA sitemap is a file that lists the pages, images, videos, and other files on your site so search engines can discover them. It helps discovery, but submitting a sitemap doesn't guarantee crawling or indexing.), and the “none of them are required” framing.
- Fix canonicalization issues (troubleshooting) — decoding the Search ConsoleA free Google service that reports how a site performs in Google Search and surfaces problems with how Google crawls, indexes, and serves it. It's first-party data straight from Google — but you don't need it to appear in results. canonical states.
Bing / Microsoft
- Bing doesn’t use the “Duplicate without user-selected canonical” label — it’s Google Search ConsoleA free Google service that reports how a site performs in Google Search and surfaces problems with how Google crawls, indexes, and serves it. It's first-party data straight from Google — but you don't need it to appear in results. terminology. Bing surfaces duplicate/canonical issues through its own indexingStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed. reports and supports
rel="canonical"; its guidance emphasizes one canonical URLHow search engines pick one canonical URL among duplicates and consolidate signals onto it. per page and consistent internal linkingAn internal link is a hyperlink from one page on a website to another page on the same website. Internal links help search engines discover your pages and pass ranking signals (PageRank and anchor-text context) between them.. See Bing Webmaster Guidelines.
Quotes from the source
On-the-record statements from Google. Each link is a deep link that jumps to the quoted passage on the source page.
Google — the status itself (Page Indexing reportThe Google Search Console report (formerly Index Coverage) showing how many of your URLs are indexed vs. not indexed, and grouping the not-indexed ones by reason.)
- “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, and so will not serve this page in Search.” — Google Search ConsoleA free Google service that reports how a site performs in Google Search and surfaces problems with how Google crawls, indexes, and serves it. It's first-party data straight from Google — but you don't need it to appear in results. Help. Jump to quote
Google — how it differs from its siblings (same report)
- “This page is marked as canonical for a set of pages, but Google thinks another URL makes a better canonical. Google has indexedStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed. the page that we consider canonical rather than this one.” (Duplicate, Google chose different canonicalA Google Search Console Page Indexing status: you declared a canonical for this URL, but Google overrode your choice, picked a different page as the canonical, and indexed that one instead. than user) Jump to quote
- “This page is marked as an alternate of another page… This page correctly points to the canonical page, which is indexed, so there is nothing you need to do.” (Alternate page with proper canonical tagA Google Search Console Page Indexing status meaning a page is a duplicate or alternate version that correctly points its canonical at another, indexed page. It's normal, healthy behavior — Google says there is nothing you need to do.) Jump to quote
Google — diagnosing with URL InspectionA Google Search Console feature that reports how Google sees one specific URL on a property you own. By default it shows the last-indexed snapshot; a separate \"Test live URL\" mode fetches the current version.
- “The page that Google selected as the canonical (authoritative) URL when it foundA 302 (\"Found\") is a temporary redirect: it forwards users to a new URL while telling search engines the original URL should stay in the index. It's a weak canonicalization signal, not the zero-equity dead end of SEO folklore. similar pages on your site. Google might select the user-declared canonical, but sometimes Google might choose another URL that it considers a better canonical example.” — Google Search ConsoleA free Google service that reports how a site performs in Google Search and surfaces problems with how Google crawls, indexes, and serves it. It's first-party data straight from Google — but you don't need it to appear in results. Help (Google-selected canonical). Jump to quote
- “There is no guarantee that Google will choose your preferred canonical, but we will take this into consideration.” — Google Search ConsoleGoogle's free tool for monitoring crawling, indexing, and search performance. Help (User-declared canonical). Jump to quote
Gary Illyes, Google — how Google chooses a canonical
- “So we employ, I think, over twenty signals, we use over twenty signals, to decide which page to pick as canonical from a dupe cluster.” (From the Search Off the Record podcast; relayed via Search Engine Journal, 2020.) Jump to quote
- “So, canonicalizationHow search engines pick one canonical URL among duplicates and consolidate signals onto it. is completely independent of ranking.” (Same podcast/source.) Jump to quote
The three canonical statuses, side by side
The single most useful thing to get straight. All three live in the Page IndexingThe Google Search Console report (formerly Index Coverage) showing how many of your URLs are indexed vs. not indexed, and grouping the not-indexed ones by reason. report, all three involve canonicalizationHow search engines pick one canonical URL among duplicates and consolidate signals onto it., and they’re constantly confused. The difference is two questions: did you declare a canonical? and did Google agree?
| Status | Did you declare a canonical? | Whose canonical wins? | This URL indexedStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed.? | What to do |
|---|---|---|---|---|
| Duplicate without user-selected canonicalA Google Search Console Page Indexing status: Google found this page to be a duplicate, you didn't declare a canonical, so Google chose a different page as the canonical — and this URL isn't indexed. | No — none specified | Google picks one on its own | No | Declare the canonical you want; align signals — if the wrong page was chosen |
| Duplicate, Google chose different canonicalA Google Search Console Page Indexing status: you declared a canonical for this URL, but Google overrode your choice, picked a different page as the canonical, and indexed that one instead. than user | Yes — you set one | Google overrode your choice | No (Google’s pick is) | Strengthen signals behind your URL, or accept Google’s pick if it’s reasonable |
| Alternate page with proper canonical tagA Google Search Console Page Indexing status meaning a page is a duplicate or alternate version that correctly points its canonical at another, indexed page. It's normal, healthy behavior — Google says there is nothing you need to do. | Yes — you set one | You and Google agree | Intentionally no (the target is) | Nothing — this is the success case |
The one-line mental model
- No canonical + Google picked → Duplicate without user-selected canonical.
- You picked + Google agreed → Alternate page with proper canonical tagA rel=\"canonical\" annotation — in the HTML <head> or an HTTP Link header — that tells search engines which URL is the preferred version of duplicate or near-duplicate content..
- You picked + Google disagreed → Duplicate, Google chose different canonical than user.
The mental models
1. It’s an absence, not a break. The defining feature of this status is that no canonical was declared — Google had to choose. So the fix starts with declaring one, not debugging an existing tag. (Debugging an existing tag is the other status.)
2. Declare, then make everything agree. The canonical tagA rel=\"canonical\" annotation — in the HTML <head> or an HTTP Link header — that tells search engines which URL is the preferred version of duplicate or near-duplicate content. is one signal. Google weighs it against internal linksAn internal link is a hyperlink from one page on a website to another page on the same website. Internal links help search engines discover your pages and pass ranking signals (PageRank and anchor-text context) between them., sitemapA sitemap is a file that lists the pages, images, videos, and other files on your site so search engines can discover them. It helps discovery, but submitting a sitemap doesn't guarantee crawling or indexing., redirectsA redirect sends browsers and crawlers from a requested URL to a different one. An HTTP redirect specifically is a 3xx status code paired with a Location header; meta refresh and JavaScript redirects achieve a similar navigation without being a 3xx response themselves. Permanent redirects (301/308) are Google's signal the target should be canonical; temporary ones (302/303/307) aren't., HTTPSHTTPS is the encrypted version of HTTP — it uses TLS to authenticate the server and protect data in transit between a browser and a website. Google announced it as a lightweight ranking signal in 2014 and today conditionally prefers HTTPS pages as canonical; Chrome marks plain HTTP pages 'Not Secure.', and more. A declared canonical that contradicts your other signals can still lose. Consolidate signals; don’t fight them.
3. Consolidation is often the goal. For parameter/faceted/sorted URLs, having Google roll duplicates onto one canonical is desired. Not every URL in this bucket is a problem — check whether the right page was chosen before doing anything.
4. Hint, not directive. Even a correct canonical is a hint. If you declare one and Google still disagrees, the page moves to “Google chose different canonical than user” — and the real issue is usually that the URLs aren’t truly equivalent.
Fix-it checklist
Work top to bottom — diagnose before you change anything.
- Confirm it’s the wrong page first. Run the URL through GSCA free Google service that reports how a site performs in Google Search and surfaces problems with how Google crawls, indexes, and serves it. It's first-party data straight from Google — but you don't need it to appear in results. URL Inspection and read Google-selected canonicalA Google Search Console Page Indexing status: you declared a canonical for this URL, but Google overrode your choice, picked a different page as the canonical, and indexed that one instead.. If Google consolidated onto the URL you actually wanted, this status is working as intended — stop here.
- Confirm no canonical was declared. User-declared canonical in URL Inspection should read “None” — that’s what makes this status (not its siblings) the right diagnosis.
- Decide what you want indexedStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed.. Pick the single preferred URL for the duplicate group.
- Declare it. Add a
<link rel="canonical">on the duplicates pointing at the preferred URL, and self-reference the preferred URL. (One per page, in the<head>, absolute URL — see the canonical-tag guide.) - Align internal linksAn internal link is a hyperlink from one page on a website to another page on the same website. Internal links help search engines discover your pages and pass ranking signals (PageRank and anchor-text context) between them.. Link to the preferred URL, not parameterized or variant versions.
- Align the sitemapA sitemap is a file that lists the pages, images, videos, and other files on your site so search engines can discover them. It helps discovery, but submitting a sitemap doesn't guarantee crawling or indexing.. List only canonical, indexable URLs.
- Align redirectsA redirect sends browsers and crawlers from a requested URL to a different one. An HTTP redirect specifically is a 3xx status code paired with a Location header; meta refresh and JavaScript redirects achieve a similar navigation without being a 3xx response themselves. Permanent redirects (301/308) are Google's signal the target should be canonical; temporary ones (302/303/307) aren't.. If you’re deprecating a variant — retiring it and
sending users to its replacement —
301it to the preferred URL (a stronger signal thanrel=canonical). Don’t redirect a URL you still want reachable in parallel; canonicalize it instead. - Align HTTPSHTTPS is the encrypted version of HTTP — it uses TLS to authenticate the server and protect data in transit between a browser and a website. Google announced it as a lightweight ranking signal in 2014 and today conditionally prefers HTTPS pages as canonical; Chrome marks plain HTTP pages 'Not Secure.'/host. Serve and link the
https://canonical host consistently. - Don’t defeat your own canonical. The duplicate must be crawlable —
not blocked in
robots.txt, notnoindex, not returning a 4XX. Never mixnoindexandrel=canonical. - For unique pages misjudged as duplicates, make the difference real and visible in the rendered HTML (watch the JS-renderingTurning HTML, CSS, and JavaScript into the final visual page and DOM. trap).
- Re-inspect later. After signals are consistent, re-run URL InspectionA Google Search Console feature that reports how Google sees one specific URL on a property you own. By default it shows the last-indexed snapshot; a separate \"Test live URL\" mode fetches the current version. to confirm Google-selected canonical matches your intent. Don’t lean on “Request IndexingStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed.” to force an unchanged page.
Common issues
Real problems readers hit when this status shows up — what you’ll see, why it happens, and how to confirm the fix.
”User-declared canonical” already reads a URL, not “None”
- Symptom: You open URL InspectionA Google Search Console feature that reports how Google sees one specific URL on a property you own. By default it shows the last-indexed snapshot; a separate \"Test live URL\" mode fetches the current version. expecting “None” (to match this status), but User-declared canonical shows an actual URL.
- Likely cause: The status you’re actually looking at is the sibling — “Duplicate, Google chose different canonicalA Google Search Console Page Indexing status: you declared a canonical for this URL, but Google overrode your choice, picked a different page as the canonical, and indexed that one instead. than user” — not this one. GSCA free Google service that reports how a site performs in Google Search and surfaces problems with how Google crawls, indexes, and serves it. It's first-party data straight from Google — but you don't need it to appear in results.’s Page Indexing reportThe Google Search Console report (formerly Index Coverage) showing how many of your URLs are indexed vs. not indexed, and grouping the not-indexed ones by reason. can be mis-scanned when several canonical statuses sit near each other in the list.
- Fix / check: Re-read the exact status label in the Page IndexingStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed. report for this URL. If a canonical was declared, treat it as the “Google overrode your choice” case, not the “no signal” case — the fix differs (strengthen signals behind your existing tag, not add a new one).
Google-selected canonical matches what you wanted
- Symptom: This status is showing, but Google-selected canonical in URL Inspection is the exact URL you’d have picked anyway.
- Likely cause: This is routine consolidation on a parameter, filter, or session-ID variant — nothing broken.
- Fix / check: Nothing to fix. Optionally add an explicit
rel=canonicalso the choice stops depending on Google’s inference, but it’s not required.
You declare a canonical and the status doesn’t clear
- Symptom: You added
rel="canonical"days ago, but Page IndexingStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed. still lists this URL under “Duplicate without user-selected canonicalA Google Search Console Page Indexing status: Google found this page to be a duplicate, you didn't declare a canonical, so Google chose a different page as the canonical — and this URL isn't indexed..” - Likely cause: GSC hasn’t recrawled and reprocessed the URL yet, or the tag
isn’t actually reaching Google — wrong
<head>placement, a relative instead of absolute URL, or the tag is stripped by JavaScript renderingTurning HTML, CSS, and JavaScript into the final visual page and DOM.. - Fix / check: Re-run URL Inspection → Test Live URL to confirm the live page now serves the tag — but the live test can’t itself test duplicate/ alternate status or tell you what canonical Google will select; that decision is made during indexing, not live testing. So watch the indexed User-declared canonical field for it to update first, and expect the report category itself to lag further behind. Reprocessing can take days to weeks.
The duplicate and the canonical target look identical to you but not to Google
- Symptom: You’re confident two pages are the same content, but Google keeps choosing a page you didn’t expect, or a page you think is unique keeps landing in this bucket.
- Likely cause: On JavaScript-rendered pages, the unique content only appears after JS executes — the static HTML Google may be comparing looks identical across pages even though the rendered page isn’t.
- Fix / check: Compare the rendered HTML (not view-source) for both URLs — the /tools/render-gap tool or Search ConsoleGoogle's free tool for monitoring crawling, indexing, and search performance.’s rendered screenshot in URL Inspection will show what Google actually sees. Make the differentiating content present in the rendered DOM, not just added by client-side script.
The canonical is declared correctly but the duplicate is blocked from crawling
- Symptom: You’ve set
rel=canonical, but the status persists and the page doesn’t seem to be getting recrawled at all. - Likely cause: The duplicate URL is disallowed in
robots.txt, or it 4XX/5XXs — Google can’t fetch the page to read the canonical tagA rel=\"canonical\" annotation — in the HTML <head> or an HTTP Link header — that tells search engines which URL is the preferred version of duplicate or near-duplicate content. on it, so the tag never gets a chance to work. - Fix / check: Confirm the duplicate returns a 200 and is crawlable — /tools/robots-txt-tester and /tools/http-status-checker — before assuming the canonical tagA rel=\"canonical\" annotation — in the HTML <head> or an HTTP Link header — that tells search engines which URL is the preferred version of duplicate or near-duplicate content. itself is the problem.
When you see this status, do this
A linear walkthrough for the moment you spot “Duplicate without user-selected canonical” in the Page Indexing reportThe Google Search Console report (formerly Index Coverage) showing how many of your URLs are indexed vs. not indexed, and grouping the not-indexed ones by reason..
-
Open URL InspectionA Google Search Console feature that reports how Google sees one specific URL on a property you own. By default it shows the last-indexed snapshot; a separate \"Test live URL\" mode fetches the current version. for the affected URL. Read User-declared canonical (should read “None” — confirms you’re looking at the right status, not a sibling) and Google-selected canonicalA Google Search Console Page Indexing status: you declared a canonical for this URL, but Google overrode your choice, picked a different page as the canonical, and indexed that one instead. (the URL Google actually picked).
-
Compare Google’s pick against the URL you’d have wanted.
- If they match → this is working as intended. Stop here — no fix needed. Optionally add an explicit canonical later so the outcome doesn’t depend on inference, but there’s no urgency.
- If they don’t match, or you’re not sure which URL should win → continue to step 3.
-
Identify why the pages look like duplicates. Check whether it’s a URL parameter, a faceted/filtered path, a protocol/host variant (
http/https,www/non-www), a trailing-slash/case variant, or two pages reachable at different paths.- If it’s a mechanical variant (parameter, host, slash/case) → continue to step 4.
- If the two pages are supposed to be genuinely different content but look identical to Google → this is likely the JS-renderingTurning HTML, CSS, and JavaScript into the final visual page and DOM. trap. Check the rendered HTML with /tools/render-gap or the URL Inspection screenshot. Make the distinguishing content visible in the rendered DOM, then re-crawl. Skip to step 6.
-
Decide the single preferred URL for the duplicate group — the one you want indexedStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed. and ranking.
-
Declare it and align every other signal:
- Add
rel="canonical"on the duplicates, self-referencing on the preferred URL. - Point internal linksAn internal link is a hyperlink from one page on a website to another page on the same website. Internal links help search engines discover your pages and pass ranking signals (PageRank and anchor-text context) between them. at the preferred URL — check with /tools/site-audit-lite.
- List only the preferred URL in the sitemapA sitemap is a file that lists the pages, images, videos, and other files on your site so search engines can discover them. It helps discovery, but submitting a sitemap doesn't guarantee crawling or indexing. — validate with /tools/sitemapA sitemap is a file that lists the pages, images, videos, and other files on your site so search engines can discover them. It helps discovery, but submitting a sitemap doesn't guarantee crawling or indexing.-validator.
301redirectA redirect sends browsers and crawlers from a requested URL to a different one. An HTTP redirect specifically is a 3xx status code paired with a Location header; meta refresh and JavaScript redirects achieve a similar navigation without being a 3xx response themselves. Permanent redirects (301/308) are Google's signal the target should be canonical; temporary ones (302/303/307) aren't. any variant that shouldn’t be reachable at all — a redirect is a stronger consolidation signal thanrel=canonical. Verify with /tools/redirect-checker.- Make sure the duplicate isn’t blocked in
robots.txtand isn’tnoindex’d — check with /tools/robots-txt-tester. A blocked or noindexed page can’t pass consolidation.
- Add
-
Wait for recrawlCrawl frequency is how often a search engine comes back to re-fetch a page it already knows about. Popular pages that change often get refreshed many times a day; stable pages can go weeks or months between crawls — and you influence it indirectly, not by setting a dial., then re-inspect. Run /tools/canonical-checker or URL Inspection again after Google has had time to reprocess (days to a couple of weeks for a low-priority URL). Confirm Google-selected canonical now matches your declared preference.
- If it matches → done.
- If Google still disagrees → you’ve moved into the “Duplicate, Google chose different canonical than user” sibling. The likely culprit is that the two URLs aren’t actually equivalent content, or a competing signal (internal linksAn internal link is a hyperlink from one page on a website to another page on the same website. Internal links help search engines discover your pages and pass ranking signals (PageRank and anchor-text context) between them., sitemap) still points elsewhere — revisit step 5.
What not to do
Mistakes that either don’t fix this status or actively make it worse.
-
Clicking “Request Indexing” and walking away. Re-requesting an unchanged duplicate doesn’t change Google’s canonical choice — the page still has no declared preference and nothing about the signals changed. Fix the signals first; requesting indexingStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed. after is fine, but it’s not the fix itself.
-
noindex-ing the duplicates as a reflex. This drops the page instead of consolidating it — any links, authority, or ranking signals the duplicate had don’t flow to your preferred URL. Google prefersrel=canonicalovernoindexfor in-site duplicates precisely because canonicalizationHow search engines pick one canonical URL among duplicates and consolidate signals onto it. consolidates rather than discards. -
Mixing
noindexandrel=canonicalon the same page. These are contradictory instructions. If you’re canonicalizing a page to another URL, don’t alsonoindexit. -
Blocking the duplicate in
robots.txtto “fix” it. A blocked URL can’t be crawled, so Google never reads the canonical tagA rel=\"canonical\" annotation — in the HTML <head> or an HTTP Link header — that tells search engines which URL is the preferred version of duplicate or near-duplicate content. on it and the consolidation signal never reaches Google. This often makes the status worse, not better. -
Force-indexingStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed. every parameter or faceted variant. For filter, sort, and session-parameter URLs, consolidation onto one representative is usually the desired outcome — chasing every variant into the index fights the system instead of using it.
-
Declaring a canonical without checking your other signals agree. A
rel=canonicalthat contradicts your internal linksAn internal link is a hyperlink from one page on a website to another page on the same website. Internal links help search engines discover your pages and pass ranking signals (PageRank and anchor-text context) between them., sitemapA sitemap is a file that lists the pages, images, videos, and other files on your site so search engines can discover them. It helps discovery, but submitting a sitemap doesn't guarantee crawling or indexing., or redirectsA redirect sends browsers and crawlers from a requested URL to a different one. An HTTP redirect specifically is a 3xx status code paired with a Location header; meta refresh and JavaScript redirects achieve a similar navigation without being a 3xx response themselves. Permanent redirects (301/308) are Google's signal the target should be canonical; temporary ones (302/303/307) aren't. is a weak signal fighting stronger ones. Google can still ignore it and pick something else. -
Assuming this status means a duplicate-content penalty. There isn’t one. This is routine consolidation, not punishment — treating it as an emergency before checking Google-selected canonicalA Google Search Console Page Indexing status: you declared a canonical for this URL, but Google overrode your choice, picked a different page as the canonical, and indexed that one instead. wastes effort on pages that are already fine.
Quick reference
The status in one line: no canonical declared + Google picked another URL + this URL isn’t indexedStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed..
URL InspectionA Google Search Console feature that reports how Google sees one specific URL on a property you own. By default it shows the last-indexed snapshot; a separate \"Test live URL\" mode fetches the current version. fields to read
| Field | What “confirms this status” looks like |
|---|---|
| User-declared canonical | ”None” |
| Google-selected canonicalA Google Search Console Page Indexing status: you declared a canonical for this URL, but Google overrode your choice, picked a different page as the canonical, and indexed that one instead. | A different URL than this one |
Three canonical statuses at a glance
| You declared a canonical? | Google agreed? | Status |
|---|---|---|
| No | — | Duplicate without user-selected canonicalA Google Search Console Page Indexing status: Google found this page to be a duplicate, you didn't declare a canonical, so Google chose a different page as the canonical — and this URL isn't indexed. |
| Yes | No | Duplicate, Google chose different canonical than userA Google Search Console Page Indexing status: you declared a canonical for this URL, but Google overrode your choice, picked a different page as the canonical, and indexed that one instead. |
| Yes | Yes | Alternate page with proper canonical tagA Google Search Console Page Indexing status meaning a page is a duplicate or alternate version that correctly points its canonical at another, indexed page. It's normal, healthy behavior — Google says there is nothing you need to do. (nothing to do) |
Common causes
- URL parametersThe `?key=value` data tacked onto the end of a URL after a question mark — used for tracking, sessions, filtering, sorting, and search — and one of the biggest sources of duplicate URLs and wasted crawling in SEO. (
?utm_…,?ref=…, session IDs) - Faceted/filtered/sorted navigation
- Protocol/host variants (
httpvshttps,wwwvs non-www) - Trailing-slash/case variants
- Same content reachable via multiple paths
- Near-duplicateThe same or very similar primary content reachable at more than one URL. There's no general duplicate content penalty — the real costs are possible signal dilution, the wrong URL getting chosen, and less-efficient crawling. or syndicated contentSyndicated content is the deliberate, usually licensed republishing of the same article on other sites — wire pickups, partner reprints, or cross-posting. Because both parties know it's a copy, the SEO job is deciding which URL search engines should show, not eliminating a duplicate.
- Paginated pagesPagination splits a large set of content — product listings, blog archives, search results — across multiple sequentially numbered URLs. For SEO, each paginated page should be crawlable, indexable, and self-canonical; Google no longer uses rel=prev/next, but Bing still does. canonicalized to page one instead of self-referencing
- Same-language regional variants with missing or non-reciprocal hreflangIf page A lists page B as an alternate, B must list A back — or Google ignores the pair.
Signal strength (strongest to weakest consolidation signal)
- 301 redirectA 301 redirect is the HTTP status code for a permanent move: it tells browsers and search engines a URL has moved for good, and it's the strongest signal for consolidating a page's ranking signals onto the new URL. Google says permanent redirects don't cause a loss in PageRank.
rel="canonical"- SitemapA sitemap is a file that lists the pages, images, videos, and other files on your site so search engines can discover them. It helps discovery, but submitting a sitemap doesn't guarantee crawling or indexing. inclusion (weak hint only)
Rules of thumb
- Self-reference the preferred URL’s own canonical to itself.
- One canonical per page, absolute URL, in the
<head>(or HTTPLinkheader for non-HTML files). - Never pair
noindexwithrel="canonical". - Never
robots.txt-block a page you want canonicalized — it can’t be crawled, so the canonical is never read. - A canonical is a hint, not a directive — Google can still override it.
Scripts and snippets
Ways to check what canonical signal a page is actually sending.
Check the canonical tagA rel=\"canonical\" annotation — in the HTML <head> or an HTTP Link header — that tells search engines which URL is the preferred version of duplicate or near-duplicate content. from the command line (macOS/Linux)
curl -s "https://example.com/page-url/" | grep -o '<link[^>]*rel=["'\'']canonical["'\''][^>]*>'Fetches the raw (unrendered) HTML and pulls out the canonical <link> tag, if
any. If nothing prints, no canonical tagA rel=\"canonical\" annotation — in the HTML <head> or an HTTP Link header — that tells search engines which URL is the preferred version of duplicate or near-duplicate content. exists in the static HTML.
Check the canonical tag (PowerShell)
(Invoke-WebRequest -Uri "https://example.com/page-url/").Content -match '<link[^>]*rel="canonical"[^>]*>' | Out-Null; $matches[0]Same check, for Windows. Returns the matched canonical tag string.
DevTools Console — read the canonical on the current page
Run this in the browser’s DevTools Console (not a bookmarklet — paste directly into the Console panel) while viewing the page:
document.querySelector('link[rel="canonical"]')?.href || 'No canonical tag found'Useful for checking the rendered DOM (after JavaScript runs), which can
differ from what curl sees in the raw HTML — the gap that causes the
JS-renderingTurning HTML, CSS, and JavaScript into the final visual page and DOM. trap described in the Advanced tab.
Bookmarklet — show the canonical URLHow search engines pick one canonical URL among duplicates and consolidate signals onto it. for any page you’re browsing
Save this as a browser bookmark (paste the whole thing as the bookmark’s URL); click it while viewing any page to see that page’s declared canonical:
javascript:(function(){var c=document.querySelector('link[rel="canonical"]');alert(c?c.href:'No canonical tag on this page');})();Regex — pull all canonical tags out of a crawl export
If you’ve exported raw HTML or a Screaming Frog “Custom Extraction” column:
<link[^>]*rel=["']canonical["'][^>]*href=["']([^"']+)["']The single capture group ([^"']+) isolates the canonical URL itself, so you
can diff it against each page’s own URL to spot pages that fail to
self-reference or point somewhere unexpected.
Patrick's relevant free tools
- Canonicalization Checker — Audit HTML and HTTP canonical signals, test the canonical target, and identify observable conflicts that can cause Google to choose a different URL.
- SEO Incident Simulator — Practice thirty deterministic technical SEO incident investigations — indexability, crawl controls, redirects, sitemaps, markup, caching, DNS, bot verification, rendering, hreflang, and faceted navigation — with clearly labeled fixture evidence and Find → Fix → Verify handoffs.
- Google Index Checker — Check one URL’s observable indexability blockers, or reconcile sitemap, crawl, and supplied Search Console evidence across a URL set before verifying Google’s actual state in URL Inspection.
Tools for diagnosing and fixing this
This site’s tools
- /tools/canonical-checker — check a URL’s declared canonical directly, including whether it self-references correctly.
- /tools/redirectA redirect sends browsers and crawlers from a requested URL to a different one. An HTTP redirect specifically is a 3xx status code paired with a Location header; meta refresh and JavaScript redirects achieve a similar navigation without being a 3xx response themselves. Permanent redirects (301/308) are Google's signal the target should be canonical; temporary ones (302/303/307) aren't.-checker — verify a 301 lands where you expect when you redirect a variant instead of canonicalizing it.
- /tools/robots-txt-tester — confirm the duplicate isn’t blocked from crawlingCrawling is how search engines use automated bots (like Googlebot and Bingbot) to discover URLs and download pages. A page has to be crawlable to be indexed, but crawling on its own isn't a ranking factor., which would stop Google from ever reading its canonical tagA rel=\"canonical\" annotation — in the HTML <head> or an HTTP Link header — that tells search engines which URL is the preferred version of duplicate or near-duplicate content..
- /tools/http-status-checker — confirm the duplicate returns a clean 200 and isn’t a broken URL masquerading as a canonicalizationHow search engines pick one canonical URL among duplicates and consolidate signals onto it. issue.
- /tools/sitemapA sitemap is a file that lists the pages, images, videos, and other files on your site so search engines can discover them. It helps discovery, but submitting a sitemap doesn't guarantee crawling or indexing.-validator and /tools/xml-sitemapA sitemap is a file that lists the pages, images, videos, and other files on your site so search engines can discover them. It helps discovery, but submitting a sitemap doesn't guarantee crawling or indexing.-generator — make sure your sitemap lists only the preferred, canonical URLs.
- /tools/render-gap — compare raw vs. rendered HTML when a JavaScript-heavy page might be losing its canonical tagA rel=\"canonical\" annotation — in the HTML <head> or an HTTP Link header — that tells search engines which URL is the preferred version of duplicate or near-duplicate content., or when two pages you believe are unique look identical to Google because their differentiating content only appears after JS runs.
- /tools/site-audit-lite — spot internal linksAn internal link is a hyperlink from one page on a website to another page on the same website. Internal links help search engines discover your pages and pass ranking signals (PageRank and anchor-text context) between them. still pointing at variant URLs instead of your preferred canonical.
- /tools/log-file-analyzer — see whether GooglebotGooglebot is Google's web crawler — the software that fetches pages so Google can index and rank them. It comes in two variants, Googlebot Smartphone (primary, under mobile-first indexing) and Googlebot Desktop, and runs an evergreen Chromium renderer. is actually crawlingCrawling is how search engines use automated bots (like Googlebot and Bingbot) to discover URLs and download pages. A page has to be crawlable to be indexed, but crawling on its own isn't a ranking factor. the duplicate at all (needed for it to read the canonical tag in the first place).
- /tools/gscA free Google service that reports how a site performs in Google Search and surfaces problems with how Google crawls, indexes, and serves it. It's first-party data straight from Google — but you don't need it to appear in results.-workbench — work with your real Search ConsoleGoogle's free tool for monitoring crawling, indexing, and search performance. data alongside these checks.
Third-party tools
- Google Search ConsoleA free Google service that reports how a site performs in Google Search and surfaces problems with how Google crawls, indexes, and serves it. It's first-party data straight from Google — but you don't need it to appear in results. — the Page Indexing reportThe Google Search Console report (formerly Index Coverage) showing how many of your URLs are indexed vs. not indexed, and grouping the not-indexed ones by reason. (where this status appears) and URL Inspection (User-declared canonical vs Google-selected canonical) are the primary diagnostic tools for this exact issue.
- Screaming Frog — bulk-crawl a site to list every page’s declared canonical, useful for finding self-reference errors or contradictory canonicals across a large duplicate cluster.
- Bing Webmaster ToolsMicrosoft's free portal for monitoring and improving how a site appears in Bing search — the peer to Google Search Console, plus IndexNow instant indexing, richer backlink data, and keyword volumes. Because Bing's index also feeds Microsoft Copilot, it doubles as a window into AI-search visibility. — Bing’s own indexingStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed. reports for the same class of duplicate/canonical issue, though Bing doesn’t use this exact status label.
Quiz
Five questions to check what actually separates this status from its two canonical-status siblings.
Duplicate without user-selected canonical
A Google Search Console Page Indexing status: Google found this page to be a duplicate, you didn't declare a canonical, so Google chose a different page as the canonical — and this URL isn't indexed.
Parent concept: Canonicalization · Related: Canonicalization, Duplicate Content, Canonical Tag
Duplicate without user-selected canonical
“Duplicate without user-selected canonical” is a status in Google Search ConsoleA free Google service that reports how a site performs in Google Search and surfaces problems with how Google crawls, indexes, and serves it. It's first-party data straight from Google — but you don't need it to appear in results.’s Page Indexing reportThe Google Search Console report (formerly Index Coverage) showing how many of your URLs are indexed vs. not indexed, and grouping the not-indexed ones by reason., listed under the “Not indexedStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed.” reasons. It means three things at once: Google considers this URL a duplicate of another page, the page never declared a canonical preference, and Google picked a different page as the canonical for the group — so this URL won’t be served in Search.
The defining trait is the absence of a signal: you never told Google which URL you preferred. Google foundA 302 (\"Found\") is a temporary redirect: it forwards users to a new URL while telling search engines the original URL should stay in the index. It's a weak canonicalization signal, not the zero-equity dead end of SEO folklore. duplicates, no canonical was specified, so it chose one on its own and dropped the rest into this bucket. That’s what separates it from its two siblings — “Duplicate, Google chose different canonicalA Google Search Console Page Indexing status: you declared a canonical for this URL, but Google overrode your choice, picked a different page as the canonical, and indexed that one instead. than user” (you did declare a canonical and Google overrode it) and “Alternate page with proper canonical tagA Google Search Console Page Indexing status meaning a page is a duplicate or alternate version that correctly points its canonical at another, indexed page. It's normal, healthy behavior — Google says there is nothing you need to do.” (you declared one and Google agreed, so there’s nothing to fix).
The usual fix is to explicitly declare the canonical you actually want — with rel="canonical" — and make your other signals (internal linksAn internal link is a hyperlink from one page on a website to another page on the same website. Internal links help search engines discover your pages and pass ranking signals (PageRank and anchor-text context) between them., sitemapA sitemap is a file that lists the pages, images, videos, and other files on your site so search engines can discover them. It helps discovery, but submitting a sitemap doesn't guarantee crawling or indexing., redirectsA redirect sends browsers and crawlers from a requested URL to a different one. An HTTP redirect specifically is a 3xx status code paired with a Location header; meta refresh and JavaScript redirects achieve a similar navigation without being a 3xx response themselves. Permanent redirects (301/308) are Google's signal the target should be canonical; temporary ones (302/303/307) aren't., HTTPSHTTPS is the encrypted version of HTTP — it uses TLS to authenticate the server and protect data in transit between a browser and a website. Google announced it as a lightweight ranking signal in 2014 and today conditionally prefers HTTPS pages as canonical; Chrome marks plain HTTP pages 'Not Secure.') all point at the same URL. A canonical is a hint, not a directive, so the goal is consistent signals that make Google’s choice match yours. For parameter, filter, and faceted URLs, though, having Google consolidate duplicates onto one canonical is often the desired outcome, not a problem to chase.
Parent concept: Canonicalization · Related: Canonicalization, Duplicate Content, Canonical Tag
Build-time retrieval analysis plus live signals for this exact article. The automatic chunk report includes a deterministic readiness score and is ready without a model download.
Search Console
sampleGA4 traffic (28d)
sampleCloudflare traffic (7d)
sampledCrUX field data (28d, phone)
sampleGoogle NLP entities
localChangelog
Updated Jul 26, 2026.
Editorial summary and recorded change details.Summary
Removed the retired duplicate-content checker from the diagnostic tool list.
Change details
-
The workflow retains maintained canonical, redirect, robots, and status checks.
Full comparison unavailable — no prior snapshot was archived for this revision.
Updated Jul 17, 2026.
Editorial summary and recorded change details.Summary
Corrected overclaims about what "User-declared canonical: None" and the live URL test can prove, added the not-an-error framing, and gave pagination and same-language regional duplicates their own edge-case treatment instead of folding them into the generic fix list.
Change details
-
Corrected the URL Inspection section: "None" for User-declared canonical only means this page didn't declare a preference — it isn't proof no consolidation signal (redirects, sitemap, internal links, HTTPS, hreflang) exists anywhere for the group — and added that canonical selection happens at indexing time, so the live URL test can't test duplicate/alternate status or determine the Google-selected canonical.
-
Added pagination (self-canonicalize, don't canonicalize to page one) and same-language regional/hreflang duplicates as their own edge cases in "Why pages land here," instead of lumping them into the generic parameter/faceted-nav list.
-
Reframed redirects as a deprecation signal (retiring a variant and sending users to its replacement), not a catch-all for any live duplicate, in the fix steps and checklist.
-
Added that Google treats this status as an expected outcome rather than an error when its pick matches the site's intent, and that aligning signals doesn't guarantee a specific reprocessing timeline or ranking outcome.
Full comparison unavailable — no prior snapshot was archived for this revision.