Baron Munchausen’s Crawl Test Lab

Broken Canonical Tag Example: A Canonical to Nowhere

I told the Empress that my true horse stood at the Oczakov gate, which by then held only the half that was gone.

The short answer

What it is
A broken canonical happens when a page's canonical tag points to a URL that answers 400 or higher, or gives no response. The page names a preferred version that cannot be fetched.
Why it matters
Search engines get a signal that makes no sense, and they may ignore it and choose a canonical themselves. Link signals can end up split, and the wrong URL may be indexed.
How a crawler should report it
Report the source page, the canonical target, and the target's status or connection error. Also mark the source as non-indexable in audit terms, since it names another URL as canonical.
Live examples
A horse drinking at a fountain while the water pours out of its missing back half.
Fig. 24. The canonical half of this horse has left.

A Canonical Tag That Sends Search Engines to a Dead Address

A broken canonical tag usually appears after pages move. A site changes its URL structure, and the old canonical value stays hard-coded in a template. A relative path can resolve to the wrong address. Staging domains also slip into production this way. Deleted pages can leave behind variants that still point at them. In each case, the rel="canonical" value looks normal in the source, so nobody notices.

Browsers ignore canonical tags when they show a page, which is why a visitor sees no error. Search engines treat the tag as a strong hint and not a command. When a target fails, the hint has no value. Google will then choose a canonical from other signals, such as redirects, sitemaps, and internal links. The result can be a URL you did not want in the index, or several versions competing with each other.

To detect the issue, read the canonical from each page and fetch that URL. Do this even when no normal link points to it, since the tag may be the only reference. Record a status of 400 or higher and any timeouts. A self-referencing absolute canonical is the healthy pattern. Google's URL Inspection tool shows both the canonical you declared and the one Google selected, which helps confirm what happened.

To fix it, decide which URL should really be indexed and point the tag at it. Use an absolute URL and output it from your routing logic, so it cannot go stale. If the target was removed on purpose, make the current page self-canonical or redirect it to a suitable replacement. Make your sitemap and internal links agree with the same choice. Conflicting signals are a main reason search engines pick another URL.