Canonical tags

Canonical tags are your way of telling Google "if there are multiple versions of this page, this URL is the one that should count." Used correctly, they consolidate duplicate content and concentrate ranking signals on the right URL. Used incorrectly, they silently de-index pages you wanted to rank. This page walks through what canonicals do, when to use them, and the common conflicts that make them backfire.

The mental model

Websites often end up with multiple URLs that show the same or nearly-identical content. example.com and www.example.com. HTTP and HTTPS. A page with a tracking parameter vs without. Google has to pick one to rank. Without guidance, it picks semi-randomly. With a canonical tag, you pick for it.

The canonical tag is a signal, not a command. Google usually listens. It doesn't always. Especially if your canonical points somewhere that contradicts other signals.

The tag

Self-referential canonical (most common case), in the <head>:

<link rel="canonical" href="https://example.com/current-url" />

Cross-URL canonical (telling Google "this duplicate should be treated as that URL"):

<link rel="canonical" href="https://example.com/primary-url" />

When to use canonicals

When not to use canonicals

Common mistakes

Canonical vs noindex

Never use both on the same page. Google gets conflicting signals and may pick neither.

Canonical vs 301 redirect

301 is stronger. Use it when a URL should truly go away. Use canonical when both URLs need to exist (parameter variations, print versions, syndication partners).

Debugging canonicals

  1. Open Search Console. Use URL Inspection on the page.
  2. Check "User-declared canonical" (what your page says) vs "Google-selected canonical" (what Google actually uses).
  3. If they differ, your signals are conflicting. Audit.
  4. Screaming Frog crawl can show canonical columns for every URL on your site.
  5. View-source on the page to verify the tag is actually present. Some CMSes overwrite it.

What to do with this

Open your site's homepage. View source. Find the canonical tag. Is it self-referential and using the correct protocol and www setting? If yes, you're fine. If no, fix it. Then check 3 or 4 more key pages. Canonical issues often hide in plain sight.

Next: hreflang tags, the international-SEO signal that's universally misunderstood.

The tag

A self-referential canonical (most common) in the <head>:

<link rel="canonical" href="https://example.com/current-url" />

A cross-URL canonical (telling Google "this duplicate should be treated as that URL"):

<link rel="canonical" href="https://example.com/primary-url" />

When to use canonicals

Self-referential on every page

Every indexable page should have a self-referential canonical. This tells Google "this URL is the primary for this content." Doesn't hurt, helps a lot when URL variations sneak in (trailing slashes, case variations, parameters).

Duplicate content across URLs

If the same content lives at multiple URLs (WWW vs non-WWW, HTTP vs HTTPS, parameterized URLs), use canonicals to point duplicates to the primary.

Near-duplicate pages

Location pages that share 90% template text, product pages with trivial variations, canonical the duplicates to a master page if the master is the one you want to rank.

Syndicated content

If you publish your content on other sites (Medium, LinkedIn), those should canonical back to your original.

When NOT to use canonicals

Common mistakes

Canonical vs noindex

Never both on the same page, sends conflicting signals.

Canonical vs 301

301 is stronger. Use it when a URL should truly go away. Use canonical when both URLs need to exist (e.g., parameter variations).

Debugging

  1. GSC → URL Inspection → check "User-declared canonical" vs "Google-selected canonical"
  2. If they differ, Google is overriding your canonical, usually means your signals are conflicting
  3. Screaming Frog → crawl + check canonical column for inconsistencies
  4. View-source on the page to verify the tag is actually there (sometimes CMSes overwrite it)