Duplicate content is rarely someone copying you. It is almost always your own site serving the same page at four addresses.
Tracking parameters, print versions, filtered category pages, http and https, with and without a trailing slash. Each one is a separate URL to a crawler, and each one splits the ranking signals that should have been concentrated on a single page.
The canonical tag is how you tell Google which one you meant. It sits in the technical layer of our SEO guide.
How it works
You place a link element in the head of every version of the page, pointing at the URL you want to be the canonical one. All versions carry the same tag, naming the same target.
When Google agrees, it consolidates the signals — links, relevance, everything — onto the named URL, and generally shows that one in search results.
When you need one
| Situation | Canonical to |
|---|---|
| Tracking parameters — utm, gclid, session IDs | The clean URL with no parameters |
| Filtered or sorted category pages | The unfiltered category, unless the filter has genuine standalone demand |
| Product reachable through multiple categories | One chosen product URL |
| Print or AMP versions | The main page |
| Syndicated content on another domain | Your original, from their copy |
| Every normal page | Itself. A self-referencing canonical is good practice and prevents parameter versions from competing. |
Why yours might be ignored
Google reports this in Search Console as "Alternate page with proper canonical tag" — or, when it disagrees, as "Duplicate, Google chose different canonical than user". That second one is the message worth investigating.
The usual causes:
- Internal links point elsewhere. If every link on your site goes to the parameter version, your canonical is arguing against your own architecture. Fix the links — see internal linking.
- The sitemap lists a different URL. Sitemaps should contain canonical URLs only.
- The canonical target redirects. Point at the final destination, never at a redirect.
- Chains and loops. A canonicalises to B, B canonicalises to C. Point everything straight at the final URL.
- The pages are not actually similar. Canonicalising genuinely different content is a request Google will refuse.
- The target is blocked in robots.txt. Google cannot verify a page it may not fetch.
- Relative or malformed URLs. Use absolute URLs including the protocol.
Canonical vs the alternatives
| Tool | Use it when | Effect on signals |
|---|---|---|
| Canonical tag | Both URLs should stay reachable by users | Consolidates onto the target |
| 301 redirect | The duplicate should not exist at all | Consolidates, and it is a directive rather than a hint |
| Noindex | The page is useful to users but should not rank | Passes nothing on. Do not combine with canonical. |
| Robots.txt block | You want to save the crawl entirely | Passes nothing, and prevents Google reading any tag on the page |
If the duplicate serves no purpose for a human, a 301 is stronger and simpler than a canonical. Reach for the canonical when both URLs genuinely need to work.
Getting it right
- Use absolute URLs including https and the domain.
- One canonical per page. Two conflicting tags means both are ignored.
- Put it in the head, not the body. A canonical injected into the body by JavaScript is unreliable.
- Self-reference everything by default.
- Match your other signals. Sitemap, internal links and canonical should all name the same URL.
- Check it in Search Console — URL Inspection shows the canonical you declared and the one Google actually selected. When those differ, believe Google and go find the contradiction.
Where to go from here
Run URL Inspection on your five most important pages and compare the declared canonical with the Google-selected one. Any mismatch is a signal conflict somewhere in your site.
Then open the Pages report and look for "Duplicate, Google chose different canonical". That list is your work queue, in priority order.
Frequently asked questions
What does a canonical tag do?
A canonical tag is an HTML link element in the head of a page that names the URL you consider the main version when the same content is reachable at several addresses. When Google accepts it, ranking signals from all the variants are consolidated onto that one URL and it is the version shown in search results.
Is a canonical tag a directive or a hint?
A hint. Google's documentation is explicit that rel=canonical is one signal among several rather than an instruction it must obey. If your internal links, XML sitemap or redirects point somewhere else, Google follows the weight of evidence and may select a different canonical URL than the one you declared.
Should every page have a self-referencing canonical?
Yes, as a default. A self-referencing canonical costs nothing and prevents parameter-laden versions of the same URL from competing with the clean one. It also makes the intended URL unambiguous when a page is scraped or syndicated.
Why is Google choosing a different canonical than mine?
Almost always because another signal contradicts your tag. Common causes are internal links pointing at a different version, a sitemap listing a different URL, a canonical target that redirects, canonical chains, or the two pages not actually being similar enough for Google to accept the consolidation.
Should I use a canonical tag or a 301 redirect?
Use a 301 when the duplicate URL serves no purpose for a human — it is a directive rather than a hint, so it is stronger and simpler. Use a canonical when both URLs genuinely need to remain reachable, such as a filtered category page that visitors use but that should not rank separately.
We fix the contradictions, not just the tag
Canonicals, sitemaps and internal links pointing at the same URL — which is what makes them work.
