GRP Digital

Canonical tags: how to tell Google which URL is the real one

Technical SEO

Two parameter URLs struck through and a canonical pointing to the clean product URL

The same page, three URLs: /product, /product?color=blue en /product?utm_source=mail. To you that’s one page. To Google it’s three, and your ranking signals get spread across those three instead of added up. The canonical tag solves that: you point to one as the real one, and the rest refer to it.

Two parameter URLs struck through and a canonical pointing to the clean product URL

What a canonical is, and what it isn’t

A canonical tag points to the preferred version of a page. Two things to remember. It consolidates your signals (links, relevance) to one URL, and it saves crawl budget because Google doesn’t have to keep looking at variants. But note: according to Google itself a canonical is a hint, not a directive. Google weighs all your signals and ultimately decides for itself. Your job is to make those signals so clear that the choice is obvious.

URL-inspectie in Search Console waarin de door de gebruiker opgegeven canonical gelijk is aan de door Google geselecteerde canonical
In Search Console’s URL inspection you see which canonical you declare and which one Google ultimately picks. Here they match, and that’s exactly what you want to see.

When do you need a canonical?

  • URLs with parameters: filters, sorting, tracking (utm) or session IDs.
  • Variants on http/https and with or without www.
  • Print or mobile variants of the same page.
  • Content that’s also published elsewhere (syndication).

How do you provide the canonical?

In most cases it’s one line in the <head>:

<link rel="canonical" href="https://example.com/product" />

For non-HTML files (like a PDF) it can go via an HTTP header. And remember that Google weighs multiple signals: a 301 redirect is the strongest signal, the rel="canonical"tag a strong signal, and a mention in your sitemap a weak signal. Above all, don’t let those signals contradict each other.

Best practices

  • Use absolute https URLs, not relative ones.
  • At most one canonical per page, and only in the <head>.
  • Let the real page point to itself (self-referencing canonical).
  • Link internally to the canonical version, not to the parameter variant.
  • Make sure JavaScript doesn’t change the canonical afterwards; put it in the HTML source.
  • Multilingual? Combine with hreflang.

The mistakes Google explicitly warns against

Google names a few classics by name: relative instead of absolute URLs, http URLs in your sitemap while your site runs on https, multiple canonicals on one page, a canonical pointing to a redirect, noindex or 404, using robots.txt or noindex to canonicalize (that doesn’t work), and giving a URL fragment (#) as the canonical.

How we got our own canonicals in order

On our own site we ran into a classic: our translation tool lowered the URLs to http, so canonicals, og tags and hreflang pointed to http while the site runs on https. Mixed signals. We fixed it with a small piece of our own code: everything canonical on https, every page self-referencing, and 301 redirects from the old URLs to the new ones. The result: one clear real URL per page, no noise.

You want the search engine to take you seriously. Give it mixed signals and it drops off.

Giacomo Perticara, founder and SEO strategist at GRP Digital

Canonical and hreflang belong together: both tell the search engine which URL is meant for what. Get that tight and you add up your signals instead of fragmenting them. And that, just like with JavaScript rendering, is where technology makes the difference between being found or not.

Author :

More to explorer

Ready to get started?

Want monthly updates on digital growth, SEO trends, and strategic marketing insights?