What the error means
Google found this page to be a duplicate of another URL, and the page does not declare a canonical. Google picked a different URL as the canonical and left this one out of the index.
Why Google rejects it
When several URLs show the same content, Google indexes one. Without a rel="canonical" telling it which one you prefer, it chooses on its own using links, redirects and sitemaps. The choice may or may not be the URL you want to rank.
How to fix it
- In URL Inspection, compare the inspected URL with the Google-selected canonical to see which page Google preferred.
- If the duplicate should not exist (parameters, trailing slash, http, www variants), redirect it to the preferred URL with a 301.
- If it needs to exist, add
<link rel="canonical" href="https://example.com/preferred-url">pointing at the preferred version. - Give every indexable page a self-referencing canonical so Google does not have to guess.
- Link internally and list in the sitemap only the preferred URL.
Common causes
Several URL forms return the same page
Protocol, hostname, slash, case, or parameter variants can all return 200 with nearly identical content. Without a canonical hint, Google clusters the copies and chooses one. Inspect the exact duplicate and the URL Google selected, then decide whether the alternate should redirect or remain accessible with a canonical.
The template omits canonical markup
A custom theme or page builder may render the page without a rel=canonical element. Check raw HTML on affected page types; a tag visible only in an admin preview does not help the live page.
Internal links and sitemap disagree
A canonical tag is only one signal. If navigation and sitemap repeatedly point to an alternate URL while the page canonical points elsewhere, Google receives mixed preferences. Audit the final URL used in internal links, sitemap, and structured data.
Content is near-duplicate across landing pages
Pages with only a parameter or minimal text change may be grouped as duplicates even when each has a self-canonical. Canonical tags do not force Google to index genuinely distinct URLs. Compare page content and decide whether they should be consolidated or made materially useful.
Fix it on your platform
On Shopify
- Inspect the rendered source of product, collection, and page templates for a canonical tag. Shopify themes commonly use the canonical_url Liquid variable; avoid inserting a second conflicting tag.
- Use clean /products/ links in navigation and product cards. Check collection-path product URLs and tracking parameters against the canonical URL that the page emits.
- Review apps that create landing pages or filters; keep only distinct pages intended for indexing and avoid putting alternate parameter URLs in the sitemap.
- Test host and protocol redirects so all public links resolve consistently to the primary domain.
On WooCommerce
- Check the active SEO plugin's canonical output on posts, products, taxonomies, and custom post types. Disable duplicate canonical output from a theme or second SEO plugin.
- Set one HTTPS host in WordPress and hosting redirects. Update site URL settings and internal links after a www or domain migration.
- Review filter, sort, and tracking parameters. Keep the preferred category or product URL canonical and ensure the sitemap contains that version.
- For genuinely distinct pages, make the content distinct; a self-canonical does not resolve duplication by itself.
On other platforms
- Use platform SEO controls or templates to emit one absolute canonical URL for each indexable page.
- Pick one primary protocol and host, redirect alternate host versions, and update internal navigation to the final URL.
- Check parameter and filtered pages. Canonicalize duplicates only when their content substantially represents the same page.
- Remove alternate URLs from sitemap generation and structured data when they are not preferred.
How to confirm it is fixed
- Inspect the duplicate and its Google-selected canonical in URL Inspection. Check the canonical in raw page source as well as rendered output.
- Compare redirects, internal links, sitemap entries, and canonical tags; all should support the same preferred URL.
- Run the canonical check on representative pages to find missing or inconsistent canonical signals.
- Remember that the live URL test does not assess every duplicate/canonical decision; check the indexed report after recrawling.
A worked example
Hypothetical case: an apparel store links product cards to /collections/summer/products/linen-shirt, while its theme declares /products/linen-shirt as canonical. A second app adds a self-canonical to the collection-path URL. Search Console reports duplicate URLs without a user-selected canonical. The owner removes the app's duplicate tag, updates product cards to use the clean product URL, and confirms the sitemap contains only that URL. The old path still resolves for shoppers, but all major site signals now point to one version. They inspect both URLs after recrawl to confirm which one Google selected.
Questions
What does duplicate without user-selected canonical mean?
Do I need a self-referencing canonical on every page?
Should I canonicalize filtered pages to the main category?
Shipwork reads the canonical tag on each page it checks and reports missing, self-referencing and cross-domain canonicals, along with duplicate host versions. Free, no account, no signup. Paste your store address.
Check my store for Duplicate without user-selected canonicalOther errors like this