July 23, 2026

How to Fix a Broken Canonical Tag (Step-by-Step)

canonical-tagstechnical-seo
How to Fix a Broken Canonical Tag (Step-by-Step)

What a canonical tag actually does

A canonical tag is a small line in a page's <head> that tells search engines "if there are multiple versions of this content, this URL is the one to treat as authoritative":

<link rel="canonical" href="https://example.com/the-real-page/">

It's how you handle situations where the same content is legitimately reachable at more than one URL — with and without a tracking parameter, a printer-friendly version, /page versus /page/, and so on. Instead of those being treated as separate, competing pages, the canonical tag tells search engines to consolidate them into one.

What "broken" actually means here

A canonical tag is broken when it points somewhere that doesn't correctly resolve to real, indexable content. In practice, that's usually one of:

  • It points to a URL that returns a 404. The page it's supposed to defer to doesn't exist anymore — maybe it was deleted or moved during a redesign and the tag never got updated.
  • It points into a redirect loop. The target redirects, which redirects again, and never lands anywhere final.
  • It points to a page blocked by robots.txt or set to noindex. You're telling search engines "trust this other URL instead," except that URL isn't allowed to be indexed either — a contradiction that leaves both pages in limbo.
  • It points to the wrong page entirely, usually from a templating bug where every page in a section accidentally canonicals to the same one URL.

Why this quietly costs you rankings

Unlike a broken link, a broken canonical doesn't show an error to visitors — the page loads fine. That's exactly what makes it dangerous: it's invisible unless you're specifically checking for it, while still confusing search engines about which URL should actually rank. In the worst case (the templating bug above), you can end up with dozens of genuinely different pages all quietly deferring to one single URL, and only that one page has any chance of ranking for anything.

How to find one

  1. View the page source (right-click → View Page Source) and search for rel="canonical".
  2. Open the URL in that tag directly in a new tab. Does it load the page you'd expect? Does it 404? Does it redirect somewhere unexpected?
  3. Check whether it's blocked — paste the canonical URL into your robots.txt tester, and check whether that page has its own noindex tag.

Doing this one page at a time works for spot-checking, but if you want to catch every broken canonical across a whole site at once, that's exactly the kind of thing worth running a full crawl for — checking that every canonical target actually resolves, rather than opening each one by hand.

How to fix it

  • If the target page was moved, update the canonical to point to its new URL.
  • If the target page was deleted for good, either remove the canonical tag (letting the page stand on its own) or point it to the closest still-existing equivalent if one exists.
  • If it's a templating bug pointing every page at one URL, fix the template so each page canonicals to itself by default, with exceptions only for genuine duplicates.
  • If the canonical target is set to noindex, decide which one you actually want indexed, and make sure only that one carries the noindex tag (or neither does, if both should be discoverable).

One easy mistake to avoid going forward

The safest default for most pages is a self-referencing canonical — a page pointing to its own URL. It looks redundant, but it protects you from accidental duplicate-content issues later (tracking parameters, session IDs, printer views) without you having to think about it. Only deviate from that default when you have a specific, deliberate reason to defer to a different URL.