The canonical tag — technically the rel=canonical link element — is an instruction to search engines that says: this URL is the preferred version of this content. When you have multiple URLs serving the same or substantially similar content, canonical tags help consolidate ranking signals onto a single URL instead of splitting them across variants. Google treats canonicals as a strong hint, not an absolute directive, but in practice they work reliably when implemented correctly and consistently.
Where Canonical Tags Belong
Every indexable page should have a canonical tag pointing to itself — a self-referential canonical. This is standard hygiene and helps when other sites or internal systems link to parameter-laden versions of your URL. Beyond self-referentials, you need explicit canonicals whenever you have genuine duplication: HTTP and HTTPS versions of the same page, www and non-www variants, URLs with and without trailing slashes, paginated pages where the first page also exists as a root URL, and product pages syndicated across multiple category paths. If you are syndicating content to other sites, the canonical on those external copies should point back to your original URL so that your domain collects the ranking signals.
How to Implement a Canonical Tag
The canonical tag lives in the <head> of the HTML document. The syntax is straightforward — what matters is using an absolute URL with the correct protocol and domain:
<!-- Correct: absolute URL in <head> -->
<link rel='canonical' href='https://www.example.com/page-slug/' />
<!-- Wrong: relative URL -->
<link rel='canonical' href='/page-slug/' />
<!-- Wrong: placed in <body> — will be ignored -->Relative URLs in canonical tags cause problems because crawlers can resolve them differently depending on the base URL of the page they arrived at. Always use the full absolute URL. If your CMS generates canonicals automatically — Yoast, Rank Math, or similar plugins in WordPress — verify the output against the actual rendered HTML using View Source or a tool like Screaming Frog, not just the plugin settings panel. Plugins sometimes produce canonicals that differ from what you expect, especially on taxonomy pages, author archives, or search result pages.
Common Canonical Tag Mistakes
- Canonicalizing a paginated series entirely to page one — page two and beyond have unique content and should either self-canonicalize or use rel=prev/next signals
- Setting a canonical on a noindexed page — these two signals conflict and Google will likely ignore both
- Using relative URLs in canonical tags — always use absolute URLs with the full protocol and domain
- Placing the canonical tag in the body instead of the
<head>— it must be in the document head to be valid - Canonicalizing mobile pages to desktop pages when they are separate URLs — use rel=alternate and rel=canonical correctly for mobile separate URL setups
- Letting your CMS generate incorrect canonicals — WordPress plugins like Yoast or Rank Math sometimes auto-generate canonicals that conflict with manual overrides
How Google Handles Canonical Disagreements
Google does not always honor the canonical you specify. If the page you designated as canonical is blocked by robots.txt, has a noindex directive, loads significantly slower than the variant, or receives far fewer internal links than a competing URL, Google may override your choice and select its own canonical. This is worth knowing because it means canonical tags alone are not sufficient — they need to be reinforced by consistent internal linking to the canonical URL, correct status codes, and good technical hygiene across the site. If you see Google selecting a different canonical than the one you specified, look at those reinforcing signals before assuming the tag is broken.
The URL Inspection tool in Google Search Console is the fastest way to check which URL Google has selected as canonical for a given page. Run the inspection, look under Coverage, and you will see both the URL you declared as canonical and the URL Google actually chose. When those differ, it is a signal that your reinforcing signals are pointing somewhere else — usually to a version of the URL that gets more internal links or loads faster.
Canonical vs. Redirect: Which to Use
Canonicals and 301 redirects solve overlapping problems, but they are not interchangeable. If you control both URLs and the non-canonical version has no legitimate reason to exist, redirect it. Canonicals make sense when you need the non-canonical URL to remain accessible — for example, a parameter URL that needs to function for users but should not split ranking signals. A common mistake I see is using canonical tags as a substitute for redirects on retired content, then wondering why duplicate pages keep getting indexed. When you want a URL gone from the index, redirect it and return 410 if the content is deleted permanently.
When Canonicals Interact with Indexation
Canonical tags interact with the full set of indexation signals in ways that can produce unexpected results. A page with a canonical pointing elsewhere will generally not be indexed under its own URL — which is usually the intent. But if that page also has inbound links from external domains, those link signals pass through to the canonical destination. This is one reason content syndication works: the external copy carries a canonical back to your site, and any links pointing at that copy consolidate onto your URL. The same logic applies in reverse — if you accidentally canonical a page that should rank on its own, you lose the independent ranking potential for that URL.
There is also an interaction with crawl budget worth knowing. Googlebot still crawls non-canonical URLs — it needs to read the page to discover the canonical in the first place. So canonical tags do not eliminate crawl load; they only redirect index and ranking signals. If you have thousands of parameter URLs you want to exclude, robots.txt disallow is a more efficient crawl budget tool than canonical tags, though it comes with trade-offs since disallowed pages cannot pass link equity.
How to Audit Canonical Tag Coverage
Screaming Frog is the fastest tool for a site-wide canonical audit. Run a crawl, export the canonical URL column, and diff it against the address column. Any row where those two values differ is either an intentional cross-page canonical or a misconfiguration worth investigating. Look specifically for pages where the canonical URL returns a non-200 status code — a canonical pointing to a 301 redirect or a 404 is a broken signal. Also check for chains where page A canonicals to page B which canonicals to page C — Google will generally resolve to C, but chains introduce uncertainty and should be collapsed.
If you want a full audit of how your site is handling duplication and canonicalization, start with a website audit. The article on 301 vs 302 redirects is worth reading alongside this one since the two topics overlap frequently.