seoder

Canonical URL

Also called rel=canonical, canonical tag, canonicalization

The address you nominate as the one true version of a page that is reachable at several addresses. Declared in the head:

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

Or in a header, which is how you do it for a PDF or any non-HTML response:

Link: <https://example.com/report.pdf>; rel="canonical"

Duplicates arise without anyone deciding to create them: http and https, www and bare, trailing slash and not, uppercase paths, tracking parameters, sort and filter variants, print views, syndicated copies.

The mistake

Believing the tag settles the question. It does not. It is one signal among several, and a search engine will override it when the rest disagree.

The usual contradiction: the tag on /shoes/running?color=blue points at /shoes/running, while every internal link, the sitemap entry and the breadcrumb point at the parameter version. The tag says one thing and the site's own structure says another, so the tag loses. Consistency across signals does more than any single tag.

Three failures worth checking for directly. A canonical pointing at a URL that redirects makes the crawler follow a chain to find the real target, and a redirect loop ends the attempt entirely. A canonical pointing at a 404 is ignored, and the page falls back to being its own canonical. A template bug that sets every page's canonical to the homepage will deindex a site quietly, and it is common enough to be worth a one-line check after any template change.

Canonicals do not replace noindex. A canonical consolidates duplicates; noindex removes a page. Using a canonical to hide something usually leaves it indexed.

Questions

Is rel=canonical a directive?

No, it is a hint. Search engines weigh it against internal links, sitemaps, redirects and content similarity, and can pick a different URL. Consistent signals matter more than the tag alone.

Should every page have a self-referencing canonical?

It is a reasonable default. It resolves parameter variants of the same page without requiring a rule for each one, and it costs nothing when the page has no duplicates.