ShipworkSite inspection
Canonicals

Crawlability

PaginationAre paginated pages set up right?Internal searchIs site search eating crawl budget?URL parametersAre parameters creating duplicates?Log analyserWhat does Googlebot actually crawl?Robots builderNeed a robots.txt file?Soft 404sAre pages “not found” but returning 200?JavaScriptCan crawlers see it without running JS?FreshnessIs my site quietly going stale?Robots.txtDoes robots.txt say what I think?

Indexing

Sitemap lastmodAre my sitemap dates valid?SitemapIs my sitemap actually fetchable?IndexingIs Google allowed to index my pages?CanonicalsIs Google indexing the wrong URL?Index signalsDo sitemap and index signals agree?Sitemap generatorNeed a sitemap.xml for my site?Bulk URL statusWhere does each of these URLs really land?Redirect builderNeed the redirect rules?RedirectsAre my URLs answering directly, over HTTPS?

On-page

Keyword ideasWhat are people searching for?SERP previewHow does my page look in Google?Content qualityAre your pages too thin or too alike?Image weightAre images slowing the page?CannibalizationAre pages competing with each other?On-page checkDoes the page use its target phrase?ImagesAre my images accessible and loading?Meta tag builderWhat should my title and share tags say?DuplicatesDo my pages compete for one query?

Links

Orphan pagesWhich pages can no link reach?Link graphHow deep do your pages sit?Anchor textDo links say what they point at?Outbound linksAre external links still alive?Broken linksAre internal links sending visitors nowhere?

Structured data

Rich resultsIs my markup eligible for a rich result?Structured dataIs my product schema valid?Schema coverageDo my key pages carry structured data?Social previewHow does my page look when shared?Schema vs pageDoes markup match the page price?Schema builderNeed valid JSON-LD?

International

Hreflang sitemapDo page and sitemap hreflang agree?HreflangDo my language versions link back?Hreflang builderNeed the hreflang tags?Redirect planMy site has dead links — what redirects do I write?Sitemap diffIs anything missing from my sitemap?Robots simulatorWhat does my robots.txt actually block?Can Googlebot?Can Googlebot fetch this URL?
Every error, explainedGuides
Pricing Learn Error guides Run free audit
Sign in

Sign in free and get one more free check this month. Your account keeps your reports, watches and connections on any device.

Sign in with GoogleOpens your account, or creates a free one Sign in with work emailWe email you a 6-digit code PricingPlans and credit packs for the paid jobs

All errorsDuplicate without user-selected canonical

Why Google treats a page as a duplicate when you never chose a canonical

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.

Same contentNo canonicalGoogle picks
No canonical declared, so Google chose one for you.

How to fix it

  1. In URL Inspection, compare the inspected URL with the Google-selected canonical to see which page Google preferred.
  2. If the duplicate should not exist (parameters, trailing slash, http, www variants), redirect it to the preferred URL with a 301.
  3. If it needs to exist, add <link rel="canonical" href="https://example.com/preferred-url"> pointing at the preferred version.
  4. Give every indexable page a self-referencing canonical so Google does not have to guess.
  5. 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

  1. 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.
  2. 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.
  3. Review apps that create landing pages or filters; keep only distinct pages intended for indexing and avoid putting alternate parameter URLs in the sitemap.
  4. Test host and protocol redirects so all public links resolve consistently to the primary domain.

On WooCommerce

  1. 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.
  2. Set one HTTPS host in WordPress and hosting redirects. Update site URL settings and internal links after a www or domain migration.
  3. Review filter, sort, and tracking parameters. Keep the preferred category or product URL canonical and ensure the sitemap contains that version.
  4. For genuinely distinct pages, make the content distinct; a self-canonical does not resolve duplication by itself.

On other platforms

  1. Use platform SEO controls or templates to emit one absolute canonical URL for each indexable page.
  2. Pick one primary protocol and host, redirect alternate host versions, and update internal navigation to the final URL.
  3. Check parameter and filtered pages. Canonicalize duplicates only when their content substantially represents the same page.
  4. Remove alternate URLs from sitemap generation and structured data when they are not preferred.

How to confirm it is fixed

  1. Inspect the duplicate and its Google-selected canonical in URL Inspection. Check the canonical in raw page source as well as rendered output.
  2. Compare redirects, internal links, sitemap entries, and canonical tags; all should support the same preferred URL.
  3. Run the canonical check on representative pages to find missing or inconsistent canonical signals.
  4. 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?
Google found substantially duplicate URLs but did not find a clear canonical preference on the inspected page. It selected one URL to represent the group. Check the Google-selected canonical in URL Inspection, then align your canonical tag, internal links, redirects, and sitemap with the URL you want indexed.
Do I need a self-referencing canonical on every page?
A self-canonical can clarify the preferred URL for an indexable page, but it is a hint rather than an absolute command. It should be consistent with redirects, internal links, and sitemap entries. Do not add self-canonicals to pages that should instead redirect or remain noindexed.
Should I canonicalize filtered pages to the main category?
Only when filtered URLs substantially duplicate the main category and should not be separate search results. If a filter creates a distinct useful landing page, decide intentionally whether it merits indexing. Ensure the canonical points to a representative page with equivalent content, not merely a convenient URL.
Find out if this is happening to you

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 canonical

Other errors like this