What is a canonical tag?
A canonical tag is a link element placed in the HTML <head>. Its href identifies the URL you want search engines to treat as the preferred version of that content.
The URL in that element is the canonical URL. The page containing the tag may point to itself or, when appropriate, to another equivalent version.
Why can duplicate URLs exist?
One piece of content can sometimes be accessible through several addresses because of URL parameters, alternate paths, platform-generated aliases, tracking links or other site behaviour. Search engines then have to decide which version should represent the content.
https://www.example.com/producthttps://www.example.com/product?source=newsletterIf both URLs show the same product page, the clean product URL may be the preferred canonical.
What is a self-referencing canonical?
A self-referencing canonical points to the page's own preferred URL. For example, the canonical on this guide points to:
This makes the intended URL explicit. It can also help maintain a consistent signal when incidental URL variations exist.
Canonical tags are signals, not commands
A canonical declaration expresses your preference, but search engines can choose a different canonical when other signals strongly disagree. That is why the surrounding site architecture should support the same preferred URL.
Canonical, redirect, noindex and robots.txt are different
| Method | Typical purpose | Important distinction |
|---|---|---|
| Canonical | Signals a preferred version among duplicate or highly similar URLs. | The alternate URL can still exist and be crawled. |
| Redirect | Sends visitors and crawlers from one URL to another. | Useful when the old/alternate URL should no longer be the destination. |
| noindex | Requests that a page not be indexed. | It is not simply another spelling of canonicalisation. |
| robots.txt | Controls crawler access to paths. | Blocking crawling can prevent a crawler from seeing page-level signals in the blocked page. |
Use absolute canonical URLs
A clear implementation uses the complete URL, including the protocol and hostname:
This avoids ambiguity about which host or protocol is intended.
A practical canonical checklist
- Choose the URL that should represent the content.
- Make sure that preferred URL actually works and returns the intended page.
- Add one clear canonical declaration in the document head.
- Use the complete preferred URL.
- Check that important internal links normally point to the preferred version.
- Check that the sitemap uses the preferred URL rather than unnecessary duplicates.
- Avoid creating chains where one alternate canonicalises to another alternate and only then to the final URL.
- Recheck the rendered/public page after publishing rather than relying only on an editor preview.
Common canonical mistakes
- Pointing the canonical to a URL that returns an error.
- Canonicalising every page to the homepage regardless of its content.
- Using conflicting canonical declarations.
- Pointing page A to page B when the pages are not actually equivalent enough for that relationship to make sense.
- Including duplicate/alternate URLs in internal links while declaring a different preferred URL everywhere else.
- Creating unnecessary canonical chains.
- Changing canonicals repeatedly while trying to diagnose indexing before search engines have had time to recrawl the site.
How to check a canonical tag
Open the public page and inspect its HTML source or use a suitable page-inspection tool. Look for rel="canonical" inside the head and check the exact destination. Then verify that the destination loads the content you intended.
For indexing diagnostics, remember that the canonical you declare and the canonical selected by a search engine are not necessarily the same thing. Search-engine inspection tools can provide additional evidence about how a URL was processed.
A useful mental model
Redirect: “Use this other URL instead.”
Noindex: “Do not include this page in the index.”
Robots rule: “Crawler access to this path is controlled here.”
Create a canonical tag with Load8it
Use the Load8it canonical utility to create the HTML element, then verify the URL before placing it on a live page.