Self-Referencing Canonical Tags
A canonical tag that points a page at its own URL, the recommended baseline that removes ambiguity from parameter and variant URLs.
The line of HTML that tells search engines which version of a page is the real one.
A canonical tag is a piece of HTML markup, written as <link rel="canonical" href="...">, that you place in the <head> of a web page to tell search engines which URL you consider the preferred, authoritative version of that page's content. The term comes from computer science, where "canonical" describes the standard, simplified form of something when multiple equivalent forms exist. On the web, the same piece of content is routinely reachable through more than one URL — with a tracking parameter appended, with or without a trailing slash, over HTTP or HTTPS, on a print-friendly page versus the standard one. The canonical tag is how you point at the one you want treated as the real version.
The specification behind it, RFC 6596, was introduced jointly by Google, Bing, and Yahoo in 2009, which is why rel=canonical works across search engines, not just Google. That shared adoption is part of why it became the standard mechanism for handling duplicate content, rather than something each search engine solved separately.
The core job of a canonical tag is consolidation. When several URLs serve the same or substantially similar content, they compete with each other for ranking signals — links pointing at different variants, social shares split across versions, and search engines potentially indexing more than one copy. The canonical tag tells search engines to treat those URLs as one cluster and fold their signals into a single preferred URL.
Consolidation matters because duplicate content, left unmanaged, does not typically get a page "penalized." What actually happens is more mundane and more costly: your ranking signals get diluted across multiple URLs instead of concentrating on one, and search engines have to decide on their own which version to show — a decision you'd rather make yourself. A well-placed canonical tag on a parameterized URL like /shoes?color=blue&sort=price tells Google "this is the same page as /shoes, count it as one," rather than leaving Google to sort out the relationship on its own.
In its most common form, the canonical tag looks like this:
<head>
<link rel="canonical" href="https://www.example.com/page.html" />
</head>A few structural rules govern how this tag has to be written and placed for search engines to honor it:
<head> of the HTML document. A rel=canonical tag placed in the <body> is ignored.href value should be an absolute URL — the full https://www.example.com/page.html form — rather than a relative path like /page.html. Google explicitly recommends absolute paths, warning that relative paths "can cause problems in the long run," such as when a staging or testing domain gets crawled and the relative canonical resolves against the wrong host.#section).For non-HTML files such as PDFs, where there's no <head> to put a link tag in, the same signal can be sent via an HTTP response header instead: Link: <https://www.example.com/downloads/file.pdf>; rel="canonical". Google has supported this HTTP-header variant since 2011.
This is the single most important thing to understand about the canonical tag, and it's easy to miss: rel=canonical is a signal, not a command. Google's own documentation is direct about it — none of the canonicalization signals, rel=canonical included, are required, and a site "will likely do just fine without specifying a canonical preference" at all. Google describes rel=canonical as "a strong signal that the specified URL should become canonical," which is stronger language than it uses for some other signals, but strong is not the same as absolute.
In practice, Google weighs your declared canonical against other evidence: whether the target actually returns a normal 200 status, whether it's indexable, whether it has more internal and external links pointing at it, whether it's served over HTTPS, and whether it's included in your sitemap (a comparatively weak signal on its own). When those signals disagree with your declared canonical — say, you point rel=canonical at a page that itself redirects, or that has far fewer internal links than the "duplicate" — Google can and does override your declaration and select a different URL as canonical. You can see this play out directly in Google Search Console's URL Inspection tool, which reports both the "user-declared canonical" and the "Google-selected canonical" for a given URL, and the two do not always match.
This is also why canonical tags should never be treated as a way to hide or de-index a page. If you need a page kept out of search results entirely, that's a job for noindex, not rel=canonical — mixing the two on the same page creates a contradiction, since one says "consolidate here" and the other says "drop this from the index entirely."
Not every page needs an explicit canonical tag, but a number of common situations call for one:
?utm_source=), session IDs, and faceted-navigation parameters (?color=red&sort=price) routinely generate many URLs for what is functionally one page. A canonical tag on each parameterized version, pointing back to the clean URL, keeps them from being indexed as separate duplicates.The canonical tag is frequently confused with a handful of other mechanisms that sound similar but do different jobs:
Checking a canonical tag doesn't require special tools. The most direct method is to view the page's raw HTML source and search for rel="canonical" within the <head> section — this shows you exactly what's declared, including whether there's more than one (a conflict worth fixing) or whether it's missing entirely.
For a view of how Google itself is treating the page, Google Search Console's URL Inspection tool is the authoritative source. It reports the user-declared canonical alongside the Google-selected canonical, so you can see directly whether Google agrees with what you specified or has chosen something else. Site crawling tools such as Screaming Frog can also surface canonical tags across an entire site at once, flagging pages with missing, self-referencing, or multiple canonicals in bulk — useful for catching template-level issues that a single-page check would miss.
No. A 301 redirect is a server-side instruction that sends both users and search engines from one URL to another, and the original URL stops working. A canonical tag is an in-page hint that only affects indexing — both URLs remain live and accessible to visitors. Use a redirect when a URL should permanently go away; use a canonical tag when both URLs need to stay accessible but only one should be indexed.
No. Google's own documentation says a site will likely do just fine without specifying a canonical preference at all, since Google can identify the best version on its own when nothing is declared. That said, adding a self-referencing canonical to every page is a common, low-risk best practice that removes ambiguity about which exact URL form is preferred.
You shouldn't. A page should carry exactly one rel=canonical tag. When a page has multiple canonical tags pointing to different URLs — often caused by a theme and an SEO plugin both injecting one — the behavior is undefined, and Google is widely understood to ignore all of them and fall back to its own selection, meaning you lose control over the outcome entirely.
Not always. Google describes rel=canonical as a strong signal, but explicitly not a directive it's required to follow. Google weighs your declaration against other signals — redirects, HTTPS, internal links, sitemap inclusion, content quality — and can select a different URL as canonical if those signals point elsewhere. You can check whether Google agreed with your declaration using the URL Inspection tool in Search Console.
Absolute. Google explicitly recommends using absolute URLs (the full https://www.example.com/page form) rather than relative paths, because relative paths can cause problems if a different environment, such as a staging site, ends up getting crawled — the relative canonical would resolve against the wrong host.
A canonical tag that points a page at its own URL, the recommended baseline that removes ambiguity from parameter and variant URLs.
The Search Console status that appears when Google finds a duplicate page but you haven't declared a canonical, so Google chooses one for you.
How WordPress core handles canonicals on singular content, what it leaves out, and how to add or override them with or without a plugin.