Test your website →

Blog

Canonical URLs: Stop Competing With Yourself

Most sites publish the same page at several addresses without knowing it, and every duplicate address splits the credit the page has earned.

Here is a question that sounds trivial: how many addresses does your homepage have? Most people say one. Almost nobody is right. There is the version with www and the version without. The version with a trailing slash and without. The http version, hopefully redirecting. The version with ?utm_source=newsletter that your email tool appends, and the ?fbclid= version that Facebook appends whether you like it or not. Index.html tacked on the end. Uppercase and lowercase, if your server treats them the same. I have scanned sites where a single page was reachable at a dozen distinct URLs, and none of the people running the site had chosen any of this. Duplicate URLs are not something you do. They are something that happens to you, the way lint happens to a sweater.

To a person, these are obviously the same page. To a search engine, a URL is an identity. Two different strings are two different documents until proven otherwise, and the proving is expensive, so the engine hedges: it indexes some variants, crawls all of them, and splits the evidence among them. That last part is where the damage lives. The currency of ranking is accumulated credit, links pointing at a page, engagement with it, its history. When your page exists at four addresses, the credit it earns is deposited into four accounts. One person links to the slash version, another to the utm version their email client preserved, another to the bare domain. Each variant ranks on a fraction of the whole. You are not competing with your competitors for that query. You are competing with yourself, and everyone in the race is you, and all of you are slower than the one runner you could have fielded.

The canonical tag is the fix, and it is disarmingly small. A single line in the head of the page: a link element with rel=“canonical” whose href is the one true address. It says to any crawler: whatever URL you fetched this document from, the real name of this document is the following, deposit all credit there. Every variant of the page carries the same line, all pointing at the same chosen address. Even the canonical page itself points at itself, which looks redundant and isn’t, because it immunizes the page against parameter-laden variants that haven’t been invented yet. When the ad platform of 2027 starts appending its own tracking token to your URLs, pages with self-referential canonicals shrug it off automatically.

It is worth being precise about what kind of instruction this is, because the precision matters in practice. A canonical is a hint, not a command. Search engines usually honor it, but they will override a canonical that appears to be lying, say, one that points at an unrelated page, or one page of a paginated series claiming page one is canonical for all of them. This is the right design. Canonicals are set by templates, and templates have bugs; a hint that could not be overridden would let one bad template deindex a site. But it means you cannot use canonicals to paper over genuinely different pages, and you shouldn’t try. The tag is for one document with many names, not many documents you wish were one.

It is also not a substitute for redirects, and the division of labor is easy to state. When a variant should not exist at all, http, the un-www’d hostname, the old URL after a move, use a 301 redirect, which actually sends the visitor to the right address and transfers the credit at the HTTP level. When the variant must keep working, and tracking parameters are the classic case, since stripping them with a redirect can break the very tracking they exist for, the page loads at the messy URL and the canonical quietly files the credit under the clean one. Redirects consolidate what you can eliminate. Canonicals consolidate what you can’t.

What I find satisfying about this whole area is that it rewards a habit of mind more than any particular tag: deciding what the real name of each thing is. Sites drift into duplication because nobody ever wrote down whether URLs end in slashes, whether www is part of the name, which parameters are meaningful. Every downstream system then guesses, and the guesses disagree, and the disagreement compounds in the index for years. The canonical tag is where you finally write the answer down in a place machines can read.

When GazeSite audits a page, a missing canonical is one of the quieter findings, no visitor ever sees the difference, nothing looks broken, and I suspect that is exactly why it goes unfixed for so long. The cost is invisible: it is the gap between where the page ranks and where it would rank with its credit consolidated, and you cannot see a gap. But of all the SEO work I know, this may have the best ratio of effort to effect. One line per page, set once in a template, and every link anyone ever sends you lands in the same account from then on. Most optimization is trying to earn more credit. This is just agreeing to stop mislaying the credit you already earn.

More articles

← All posts