Duplicate without user-selected canonical medium
Duplicate without user-selected canonical
Several near-identical URLs exist with no rel=canonical declared, so Google chooses its own canonical and excludes the rest.
What you see
Page indexing > Why pages aren't indexed Duplicate without user-selected canonical Google chose a different canonical than the user
What’s actually happening
In Search Console's Page indexing report, a batch of URLs sits under "Duplicate without user-selected canonical." The page isn't penalized, but the version you care about may not be the one Google shows in results. Open the URL Inspection tool and you'll see "Google-selected canonical" pointing at a different address than the one you submitted. Traffic and link signals get consolidated onto Google's pick, not yours.
Common causes
- No rel=canonical tag in the <head>, so Google has nothing to follow and guesses from content similarity.
- URL parameters (?utm_source=, ?ref=, ?sort=) generate dozens of crawlable variants of one page.
- Both http:// and https:// or both www and non-www resolve with 200 instead of one redirecting to the other.
- Trailing-slash and case variants (/about vs /about/ vs /About) all return the same page.
- Faceted navigation or pagination produces overlapping content with no canonical pointing back to the main view.
How to fix it
- Add a self-referencing canonical to every pagePut <link rel="canonical" href="https://example.com/page"/> in the <head> with the absolute, https, final-destination URL. Every page should declare itself canonical unless it genuinely duplicates another.
- Pick one host and protocol, 301 the restDecide on https + non-www (or whatever you prefer), then 301-redirect every other variant to it at the server or CDN. Don't rely on the canonical tag alone to fix protocol/host duplication — redirect it.
- Strip or canonicalize tracking parametersMake parameterized URLs canonical to their clean version. ?utm_* and ?ref= should still render the page but declare the parameter-free URL as canonical so signals consolidate.
- Re-inspect and validate the fixRun the URL through Inspection, confirm "User-declared canonical" and "Google-selected canonical" now match, then click Validate Fix on the report. Reprocessing the batch takes days to weeks.
Stop it recurring
Ship a self-referencing absolute-https canonical tag in your page template so every new URL declares its own canonical from day one.
Related errors