A product page can answer at several URLs: http and https, with and without www, with a tracking parameter, and with a trailing slash. The content is identical, but a crawler sees multiple candidates. A canonical tag names the one URL you want indexed. Used well, it consolidates signals from duplicates. Used carelessly, it can hide the wrong page or contradict a redirect, a noindex tag or an hreflang cluster.
Part of the SEO publishing guide. Generate the head block in the meta tag generator; review the rest of the page in the SEO analyzer.
Put a self-referencing canonical on every indexable page
The safest default is a self-referencing canonical: every indexable page declares its own preferred URL in the head. A guide at https://example.com/guides/canonical-tags should carry <link rel="canonical" href="https://example.com/guides/canonical-tags">. That sounds redundant, but it establishes a baseline. If a template, a plugin or a campaign parameter later changes the URL, the canonical still points to the clean version.
Place exactly one canonical link in the <head>. Two canonical tags with different targets create a conflict, and search engines may ignore both. Check the rendered source rather than the CMS field: some themes inject a canonical automatically, and a second tag from a plugin can override the one you typed. The same rule applies to every indexable page type, including category pages, author archives and the homepage.
Use absolute URLs and one clean target
Use an absolute URL with the protocol and host you actually serve: https://www.example.com/page, not /page and not http://example.com/page. Relative canonicals can resolve differently when a page is fetched through a proxy, a staging domain or a syndication feed. Protocol and host consistency also prevents the canonical from pointing at a URL that immediately redirects.
The target should return HTTP 200, be indexable, and contain the same content as the page declaring it. A canonical that points to a redirect asks a crawler to follow a chain before it reaches the preferred page, which weakens the signal. A canonical that points to a 404 or a noindex page is a contradiction. One canonical per page, one clean target, and no conflicting directives in the same head.
Handle parameter and duplicate variants
Duplicate URLs usually come from parameters, not from copied content. Campaign tags, sort orders, filter combinations, session IDs and print views can multiply one page into dozens. Canonical them to the clean URL when the parameter does not change the core content. When the parameter creates a genuinely different page, such as a color variant with unique stock and copy, let that page self-canonical instead.
| Variant | Canonical target | Action |
|---|---|---|
| UTM or click ID | Clean page URL | Canonical to the version without tracking parameters |
| Sort and filter | Base category URL | Canonical when the filtered view has no unique intent |
| Trailing slash or case | One preferred form | Pick a form, redirect the other, self-canonical the winner |
| Print or AMP-style view | Main article URL | Canonical to the main page, or noindex if it adds nothing |
| Syndicated copy | Original article URL | Canonical only when the partner agrees; otherwise discuss noindex |
Do not canonicalize every parameter blindly. A price comparison or a page with unique reviews may deserve its own URL. The test is content: if the page would satisfy a different search intent, it is not a duplicate. If it only rearranges the same inventory, it is a variant and belongs on the canonical.
Keep pagination self-canonical
Paginated series are not duplicates of page one. Each page in the series should normally self-canonical, because page two contains different items and may be the only path to them. Pointing every page at page one tells search engines to ignore the deeper items. A canonical from page two to page one is a common template mistake, especially on blog archives and product listings.
Google no longer uses rel="next" and rel="prev" as indexing signals, but the links still help users and crawlers move through the series. Keep crawlable pagination links in the HTML, give each page a unique title and self-canonical, and make sure the first page links to the second. If you consolidate a series into a single long page, redirect the old pages to the consolidated URL rather than canonicalizing them to it.
Coordinate syndication and hreflang
When an article is republished on a partner site, the partner page can canonical to the original if the agreement allows it. The original keeps a self-canonical. That tells search engines which version should rank and keeps the duplicate from competing. If the partner cannot implement a cross-domain canonical, a noindex on the copy is the cleaner alternative; a canonical that the partner ignores leaves both versions eligible.
Hreflang and canonical must agree. Each language version should self-canonical, and the hreflang cluster should point among the language versions, not funnel every language into English. A Spanish page that canonicalizes to the English page removes itself from the Spanish index, even if the hreflang tag says otherwise. Decide the language architecture first, then apply both tags consistently.
Never point at noindex, 404 or redirect targets
Never canonicalize to a URL that is noindex, blocked, 404 or redirecting. The signals conflict: one tag says “index this page”, another says “do not index the target”. Search engines may ignore the canonical, or they may follow it and drop the page entirely. The same applies to canonicalizing to a staging domain, a parameter URL or a page that requires a login.
A canonical is a hint, not a redirect. Visitors still reach the duplicate URL, and the consolidation of signals is not guaranteed. If you need everyone to land on one URL, use a 301 redirect. If you need to keep both URLs live for users but prefer one in search, use a canonical. Mixing the two without a plan is how sites end up with redirect chains and conflicting tags.
Two fixes in practice
Two common patterns show how the decision changes with content.
Example 1: a product page with campaign parameters
A jacket page is live at /jackets/rain-shell. A newsletter links to the same page with ?utm_source=newsletter, and a filter links to ?color=black. The jacket page self-canonicals to /jackets/rain-shell. The UTM version canonicals to the same clean URL. The color filter stays live only if it has unique copy, stock or reviews; otherwise it also canonicals to the base page. The newsletter URL still works for tracking, but search engines see one product page.
Example 2: a syndicated guide
A guide is published on your site and republished by an industry partner. Your original self-canonicals. The partner page adds <link rel="canonical" href="https://your-site.com/guide">. If the partner cannot add the tag, the copy gets noindex instead. The hreflang tags, if any, stay within each language cluster. The goal is one indexable original per language, not a chain of canonicals across domains.
Audit and implement safely
- Inventory the variants. Crawl the site or export URLs from analytics and look for parameters, case differences, trailing slashes and duplicate paths.
- Choose one preferred URL per page. Use the version that appears in navigation, sitemaps and internal links.
- Add a self-canonical to every indexable page. Make it absolute, place it once in the head, and confirm the target returns 200.
- Resolve conflicts. Remove canonicals that point at noindex, 404 or redirecting URLs; replace them with a redirect or a corrected target.
- Verify in the rendered HTML. The meta tag generator can produce the canonical line from the URL you enter, but it does not crawl your site or validate the target. Check the live page source, then monitor indexing in Search Console.
Review canonicals after migrations, template changes and campaign launches. A tag that was correct last quarter can point at a retired URL after a redesign. The sitemap splitting guide covers URL inventory at scale, and robots vs noindex explains the exclusion controls that should not be mixed with a canonical. If the canonical is one item in a wider cleanup, the 60-to-80 score rescue shows where it fits.