Skip to main content

Canonical tags and Google Shopping: one URL per product

Give every product page one canonical URL, the same address you submit in Merchant Center, and point every duplicate at it. Google calls a canonical a hint, not a rule, so your tag, internal links, sitemap and product data should all say the same thing.

Major4 min read

Why this matters

Google Search Central's page on canonicalization is honest about how much a canonical tag can do: “indicating a canonical preference is a hint, not a rule”, and “Google may choose a different page as canonical than you do, for various reasons.” Duplicates themselves are normal for a store, where filters, sort orders, variant parameters and collection paths all create them: “Some duplicate content on a site is normal and it's not a violation of Google's spam policies.” The job is to make your preference easy to follow.

Its page on how to specify a canonical lists the habits that make the hint stick. “When linking within your site, link to the canonical URL rather than a duplicate URL.” “Don't specify different URLs as canonical for the same page using different canonicalization techniques”. “Don't use the robots.txt file for canonicalization purposes.” And put the tag on the canonical page itself as well, pointing at its own address; Google calls that a self-referential canonical.

The Merchant Center side asks for the same discipline. The “About landing page requirements” page says “The link should direct to a specific product detail page, not a category, search, or other generic page.” The “Link [link]” attribute page asks you to “Use your verified domain name.” and to “Use a stable URL.” If you add tracking parameters to product links, it recommends the Google Search index [canonical_link] attribute, which exists “to ensure that products are associated with the correct URL in the Google Search index”.

The free scan does not flag a page for having no canonical tag, so check your product template for one yourself. Whether a tag names the right URL, and whether that URL matches your product data, is a manual check too: the scan does not see your Merchant Center data. The misrepresentation checker lists the page checks it runs, and redirect chains covers the other half of keeping one clean address per product.

Typical evidence

Three URLs, three different 'authoritative' answers

A canonical tag identifies a preferred URL when several show the same product. Keep the page URL, canonical URL and submitted product URL consistent, then test the published markup rather than predicting another system’s interpretation.

Page URL/products/blue-shirt
Canonical tag/products/blue-shirt?color=blue
Feed URL/products/blue-shirt
Fixed: page, self-referencing canonical and feed all name /products/blue-shirt. Verify the Google-selected canonical in URL Inspection.
It is seldom a standalone issue, but alongside a price or availability mismatch it creates another visible contradiction. Keep the page, canonical and feed aligned.

The public signals this check looks for:

  1. Product pages carry no canonical tag, so the choice between /products/mug, /collections/ki…

    Product pages carry no canonical tag, so the choice between /products/mug, /collections/kitchen/products/mug and a ?variant= link is left to search engines.

  2. The canonical points at a filtered or variant address, such as ?color=blue, instead of the…

    The canonical points at a filtered or variant address, such as ?color=blue, instead of the clean product URL.

  3. The canonical names one URL, the sitemap another, and the site’s own menus link to a third…

    The canonical names one URL, the sitemap another, and the site’s own menus link to a third.

  4. The canonical still names the old domain or http

    The canonical still names the old domain or http:// after a migration.

  5. The product data submits a URL with tracking parameters, and the page’s canonical names a …

    The product data submits a URL with tracking parameters, and the page’s canonical names a different address with no [canonical_link] to tie them together.

  6. The theme sets one canonical in the HTML and a script rewrites it after the page loads

    The theme sets one canonical in the HTML and a script rewrites it after the page loads.

What it looks like once it is right

Every version of the page names https://www.example.com/products/blue-shirt as canonical, the menus and sitemap use that address, and the product data submits it too, with tracking kept in the ads redirect attribute.

Common mistakes

Common mistake

The product lives at /products/blue-shirt. Its canonical names /products/blue-shirt?color=blue, the sitemap lists /collections/shirts/products/blue-shirt, and the product data submits a third URL with a campaign parameter.

Fix checklist

Compare the canonical URL Inspection reports

URL Inspection can show the canonical you declared and the canonical it selected. When they differ, investigate the implementation and align the public URLs; do not infer a Merchant Center outcome from that difference.

URL Inspection · /products/blue-shirt
User-declared/products/blue-shirt
Google-selected/products/blue-shirt?color=blue
This example reports a filtered variant. Self-reference the canonical, send filtered or tracked URLs back to the base where appropriate, then verify the change in your own tools.

Copy this, and change the parts in your own words

<link rel='canonical' href='https://www.example.com/products/blue-shirt'>

Questions merchants ask

Does the canonical URL have to match my Merchant Center product link?

They should lead to the same product page on the same verified domain. If your product link carries tracking parameters, Google's [link] attribute page recommends the [canonical_link] attribute to give the clean URL. Simplest of all: submit the clean URL and let the page's canonical name itself.

Is duplicate content a policy problem for my store?

Not by itself. Google's canonicalization page says some duplicate content on a site is normal and not a violation of its spam policies. The cost is confusion: search results may show the wrong version, and signals are split. A consistent canonical tag fixes that.

Can I use robots.txt to hide duplicate product URLs?

No. Google's page on specifying canonicals says not to use robots.txt for canonicalization, and its robots.txt guide notes that a blocked page can still be indexed if other sites link to it. Put a canonical tag on the duplicates instead, pointing at the clean URL.

Remediation

Risk signal

A canonical tag is a suggestion, and a suggestion contradicted by your own links, sitemap and product data is easy to ignore. Pick one URL per product and make every signal agree with it.
PriorityAddress and document this finding as part of the store’s remediation work.
EvidenceRecord the current state before each change, apply the fix, then capture the corrected state so every change is evidenced.

Similar cases

Sources

  1. Canonicalization & consolidating duplicate URLsGoogle Search Central — developers.google.com
  2. How to specify a canonical URL (rel=canonical and other methods)Google Search Central — developers.google.com
  3. Link [link]: the product landing page URL you submitGoogle Merchant Center Help — support.google.com

Last reviewed 29 Sep 2026.

That is one issue. The library documents 134.

The free scan lists what it finds on your store. The paid report adds the affected pages, captured evidence and step-by-step fixes. Start free, with no account needed.