Canonical tag
4 minute read · Updated 28 August 2026 · rel=canonical
A canonical tag — <链接 rel="canonical" href="…"> in the page head — declares which URL is the authoritative version when the same content is reachable at several addresses.
It matters for internal linking because links pointing at a non-canonical variant waste part of their effect: the value has to be consolidated across a signal rather than arriving directly. Always link the canonical URL.
Why one page has several addresses
Usually without anyone intending it. A tracking parameter appended to a shared link. A session ID. A shop filter that produces ?colour=blue. A printer-friendly version. The same product sitting in two categories. A trailing slash, or its absence.
To a search engine each of those is a separate URL that happens to serve identical content — and it has to decide which one to index. The canonical tag is how you answer that question instead of leaving it to be guessed.
It is a hint, not an instruction
Google treats rel=canonical as one signal among several, not as a command. Internal links, the sitemap, redirects and the tag itself are weighed together — and if they disagree, Google picks its own canonical and reports the difference in Search Console as Alternate page with proper canonical tag or, less happily, Duplicate, Google chose different canonical than user.
The second message is nearly always a consistency problem: the page declares one canonical while every internal link and the sitemap point somewhere else. The tag alone does not outvote your own linking.
Rules that prevent most problems
- Self-reference every page. A page whose canonical points at itself is the normal case, not a special one. Rank Math and Yoast do this automatically.
- Use absolute URLs. Relative canonicals are permitted and reliably misconfigured.
- Link the canonical, always. Every internal link, every sitemap entry, the same address the tag names.
- Do not chain them. A canonical pointing at a page whose canonical points somewhere else is ignored.
- Do not canonicalise paginated pages to page one. Page two is not a duplicate of page one; each should reference itself.
- Never combine it with
noindexon the same URL. The two say contradictory things.
Canonical or redirect?
The distinction is whether visitors still need the other URL. If nobody should land on the old address any more, use a 301 redirect — it is stronger and unambiguous. If both addresses have to keep working, as with a filtered shop listing or a print view, the canonical is the right tool.
Reading the Search Console messages
Alternate page with proper canonical tag. Everything is working. The URL is a duplicate, it declares the correct canonical, and Google agreed. No action needed — this line frightens people unnecessarily.
Duplicate, Google chose different canonical than user. A real disagreement. Google found stronger signals pointing elsewhere, and almost always those signals are your own internal links and sitemap contradicting the tag.
Duplicate without user-selected canonical. No tag at all, so Google picked one. Usually parameter URLs on a site that never configured canonicals.
The second is the only one worth investigating, and the investigation is short: check which URL your links actually point at.
Cross-domain canonicals
A canonical may point at another domain. This is the correct mechanism for syndicated content: a partner republishing your article sets its canonical to your original, so the credit stays with you.
It works only if the receiving site cooperates, which is a contractual matter rather than a technical one. Where they will not, the fallback is a visible attribution link back to the original — weaker, but at least honest about the relationship.
The mirror-image mistake is worth naming: never set your own canonical to a page you do not control on the assumption it is “the main version”. You are asking to be dropped from the index in favour of somebody else’s page.
Canonicals and multilingual sites
A frequent and damaging error: canonicalising every translation to the original-language page. The German version is not a duplicate of the English one — it is a different page for a different audience, and pointing its canonical at the English URL removes it from the index entirely.
Each language version canonicalises to itself, and hreflang annotations describe the relationship between them. The two mechanisms answer different questions: canonical says “which URL is this page”, hreflang says “which version suits which audience”.
Where they must interact: every hreflang annotation should point at a canonical URL, never at a variant.