A canonical tag is a small piece of HTML that tells search engines which version of a page is the original when the same or very similar content exists at more than one URL. It looks like this: <link rel="canonical" href="https://www.example.com/preferred-page/" />. You put it in the head section of every version of the page, including the original itself. Search engines treat it as a strong hint, not a command, and use it to consolidate ranking signals onto one URL instead of splitting them across duplicates. This guide explains when you need canonical tags, how to write them correctly, and the mistakes that silently undo them.
Duplicate content sounds like a penalty, but for most sites it is a plumbing problem, not a punishment. The same content naturally appears at many URLs: a product listed in two categories, a blog post reachable with and without a trailing slash, a page with tracking parameters from an email campaign. Search engines handle this every day. Their problem is choosing which URL to show. Without a canonical tag, they guess. Sometimes they guess wrong, and the wrong URL ranks, or the ranking signals split across several URLs and none of them ranks well. A canonical tag removes the guessing.
Why duplicate URLs happen
Almost every site creates duplicate URLs without trying. Here are the most common sources.
- Tracking parameters. The same page with
?utm_source=newsletteror?fbclid=...appended is technically a different URL. Campaign links create dozens of these. - HTTP vs HTTPS and www vs non-www. If both versions are reachable, every page on your site exists twice. Your server should redirect one to the other, but the canonical tag is the backup signal.
- Trailing slashes.
/guideand/guide/can serve the same content on some servers. Pick one form and be consistent. - Product pages in multiple categories. A product that lives under both /shoes/ and /sale/ may have two URLs with identical content.
- Pagination and sorting. Category pages with
?page=2or?sort=pricecreate near-duplicate versions of the same listing. - Printer-friendly and AMP versions. Alternate renderings of the same page are duplicates by design.
- Syndicated content. When another site republishes your article, the same text exists on two domains.
None of these are wrong on their own. The problem is only what happens when search engines have to pick a winner with no guidance. Canonical tags are that guidance.
How canonical tags work
When a search engine crawls a page and finds a canonical tag, it compares the page's own URL with the URL in the tag. If they match, the tag is self-referencing: it confirms that this page is the original. If they differ, the tag says: treat the other URL as the original, and pass this page's ranking signals to it.
Two points matter here. First, a canonical tag is a hint, not a directive. Google has said this publicly for years. It weighs the canonical tag alongside other signals: internal links, sitemap entries, redirects, HTTPS, and content similarity. If those signals disagree with your canonical tag, Google may choose a different URL. Getting all the signals to agree is how you make canonicalization stick.
Second, a canonical tag does not block crawling. A page with a canonical pointing elsewhere can still be crawled and can still be visited by users. It simply tells search engines not to treat it as the primary version. If you want a page to stay out of search results entirely, use noindex, not a canonical tag. The two tools solve different problems.
Google's own documentation on consolidating duplicate URLs is the authoritative reference for this behavior, and it is worth reading once before you implement canonical tags on a large site.
The rules of a correct canonical tag
Most canonical mistakes are simple rule violations. Follow these seven rules and you avoid nearly all of them.
1. One canonical tag per page. Never put two canonical tags on the same page. Conflicting tags confuse search engines and are treated as an error. If your CMS and an SEO plugin both add canonical tags, disable one of them.
2. Use absolute URLs. Always include the full protocol and domain: https://www.example.com/page/, not /page/. Relative canonical URLs are a common source of errors, because the search engine has to guess which domain and protocol you meant.
3. Point to an indexable URL. A canonical tag should point to a page that returns a 200 status code and is not blocked by robots.txt or tagged noindex. Pointing a canonical at a redirected page, a noindex page, or a 404 is a contradiction: you are telling search engines the original is a page they cannot or should not show.
4. Every indexable page gets a self-referencing canonical. Even a page with no duplicates should have a canonical tag pointing to itself. This confirms the page's preferred URL and protects against parameter and protocol variants that may appear later. Most SEO plugins add self-referencing canonicals automatically.
5. Match the canonical with your other signals. Your internal links should point to the canonical URL. Your XML sitemap should list only canonical URLs. If a page is the canonical, link to it directly. Mixed signals are the most common reason Google ignores a canonical tag.
6. Use lowercase URLs consistently. Some servers treat /Guide and /guide as different URLs. Pick lowercase for all URLs and canonical tags, and redirect the mixed-case variants.
7. Do not canonicalize paginated pages to page one. Page 2 of a category is not a duplicate of page 1. It shows different products. Each paginated page should have a self-referencing canonical. Pointing all pages to page one tells search engines the later pages do not matter, which can keep those products out of the index.
Canonical tags vs 301 redirects vs noindex
Three tools handle duplicates, and people mix them up constantly. Here is how to choose.
Use a canonical tag when the duplicate page should stay accessible to users. Examples: a product page reachable from two categories, a campaign URL with tracking parameters, a printer-friendly version. The duplicate exists for a reason, and users should be able to reach it. You just want search engines to consolidate signals onto one version.
Use a 301 redirect when the old URL should never be accessed independently again. Examples: an old URL after a site restructure, a deleted page with a clear replacement, HTTP to HTTPS migration. A redirect is the strongest canonicalization signal available, because it physically sends both users and crawlers to the new URL. If the duplicate serves no purpose, redirect it instead of canonicalizing it.
Use noindex when the page should not appear in search results at all, but should stay accessible to users. Examples: thank-you pages, internal search results, thin utility pages. Noindex removes the page from the index. A canonical tag does not.
The rule of thumb: if users should never land on the duplicate, redirect it. If users may land on it but search engines should prefer another version, canonicalize it. If it should not be in search results at all, noindex it. And never combine a robots.txt block with noindex on the same URL, because a blocked page cannot be crawled, so the crawler never sees the noindex tag.
Cross-domain canonicals and syndication
Canonical tags work across domains, not just within one site. When another site republishes your content, ask them to add a canonical tag on their version pointing to your original URL. This tells search engines your page is the original and consolidates the ranking signals back to you. Without it, the republishing site can outrank you for your own content, especially if it has a stronger domain.
In practice, getting a cross-domain canonical is a negotiation, not a technical step. Include it in your syndication agreement before the content goes live. A short clause, "the republished article will include a canonical tag pointing to the original URL," prevents most disputes. If the partner refuses, weigh whether the exposure is worth the risk of competing with your own article. For most sites, syndication without a canonical is a bad deal.
The same logic applies to content you publish on platforms you do not control, such as Medium or LinkedIn. You cannot add a canonical tag there. Publish on your own site first, wait until it is indexed, and then republish elsewhere with a link back to the original. The link is weaker than a canonical tag, but it is the best available signal.
Canonical tags and hreflang
If your site serves the same content in multiple languages or regions, canonical tags and hreflang tags work together. Each language version should have a self-referencing canonical pointing to itself, plus hreflang tags pointing to all the other language versions. The canonical tag says "this is the original version of the English page." The hreflang tags say "here are the French, German, and Spanish equivalents."
The mistake to avoid is pointing every language version's canonical tag to one language, usually English. That tells search engines the French and German pages are duplicates of the English page, which can keep them out of the index for French and German searches. Each language version is its own original. For a full walkthrough of the hreflang side of this setup, see our international SEO hreflang guide.
How to audit your canonical tags
A canonical audit has four checks. Run it after any migration, redesign, or plugin change, and at least once a quarter.
Check 1: Every indexable page has exactly one canonical tag. Crawl the site and flag pages with zero canonical tags or more than one. Zero is common on custom templates. More than one usually means a CMS and a plugin are both adding tags.
Check 2: Canonical targets are valid. Every canonical URL should return a 200 status code, be indexable, and not redirect. Flag canonicals that point to 404s, redirects, or noindex pages. These are the most damaging errors, because they tell search engines the original is a page that does not work.
Check 3: Google agrees with you. In Google Search Console, use URL Inspection on a sample of pages and compare the user-declared canonical with the Google-selected canonical. If they differ, your other signals disagree with your tag. Check your internal links and sitemap for that URL. Search Console also reports "Duplicate without user-selected canonical" and "Duplicate, Google chose different canonical than user" issues, which point straight at the problem pages.
Check 4: Sitemap and links match the canonicals. Your sitemap should contain only canonical URLs. Your internal links should point to canonical URLs, not to parameter or duplicate variants. A sitemap full of non-canonical URLs sends a mixed signal that works against your tags.
If your site is small, you can run this audit by hand with a crawler and Search Console. If it is large, automate the crawl and diff the results against your sitemap. Either way, the audit is the step that turns canonical tags from a hope into a verified setup.
Setting canonical tags by platform
WordPress. Yoast SEO and Rank Math both add self-referencing canonical tags automatically, and both let you override the canonical URL per post. If you run both plugins, or a plugin plus a theme that adds its own tags, disable one source to avoid duplicates.
Shopify. Shopify adds canonical tags automatically to product and collection pages. Product URLs with variant parameters canonicalize to the main product URL. You generally do not need to touch them, but check them after installing SEO apps that may add a second tag.
Webflow. Webflow adds canonical tags automatically, and you can override the canonical URL per page in the page SEO settings. Use the override when a page is intentionally duplicated, such as a campaign landing page that mirrors an existing page.
Custom sites. Add the tag in your template's head section, generated from the page's canonical URL field. Store the canonical URL in your content model so editors can override it when needed. If your pages are served from a CMS, make the canonical a required field for every template.
Meta tags tools. If you are building or auditing head tags by hand, a meta tags generator can produce the full set of head tags, including the canonical link element, so you do not have to write the syntax from memory.
Common canonical tag mistakes
Pointing a canonical at a redirect. Google usually ignores canonicals that point to redirected pages. Always point to the final destination URL.
Canonical chains. Page A canonicalizes to Page B, and Page B canonicalizes to Page C. Point A straight to C. Chains waste crawler time and dilute the signal.
Canonicalizing everything to the homepage. A classic error from old SEO advice. Every duplicate page on the site points to the homepage, which tells search engines every page is a copy of the homepage. It is not, and Google ignores this pattern. Canonicalize each page to its own correct original.
Using relative URLs. A canonical of /page/ leaves the protocol and domain ambiguous. Always use absolute URLs.
Forgetting the canonical on paginated pages. Each paginated page needs a self-referencing canonical. Pointing page 2 at page 1 hides the products on page 2 from the index.
Conflicting signals. A canonical tag that says Page A, internal links that point to Page B, and a sitemap that lists Page B will lose to the majority. Align all three.
Treating canonical as a noindex. A canonical tag does not remove a page from the index. If you want a page out of search results, use noindex.
FAQ
Do canonical tags directly improve rankings?
Not directly. A canonical tag does not give a page a ranking boost. It consolidates ranking signals from duplicate URLs onto one page, which stops those signals from being split. The benefit is preventing dilution, not adding authority.
Should every page have a canonical tag?
Yes. Every indexable page should carry a self-referencing canonical tag pointing to its own absolute URL. This confirms the preferred URL and protects against parameter and protocol variants.
Can Google ignore my canonical tag?
Yes. Canonical tags are hints, not directives. If your internal links, sitemap, and redirects point to a different URL than your declared canonical, Google may choose its own version. Check URL Inspection in Search Console to see which canonical Google selected.
What is the difference between a canonical tag and a 301 redirect?
A canonical tag keeps the duplicate page accessible and asks search engines to consolidate signals onto the original. A 301 redirect physically sends users and crawlers to the new URL and should be used when the old URL should never be accessed again.
Can I use a canonical tag for syndicated content on another site?
Yes. Ask the republishing site to add a canonical tag on their version pointing to your original URL. Include this in your syndication agreement before the content goes live.
Should paginated pages canonicalize to page one?
No. Each paginated page shows different content and should have a self-referencing canonical. Pointing all pages to page one can keep the products on later pages out of the index.