CanonicalTag.com logoCanonicalTag.comThe canonical tag & URL canonicalization
Edge CaseConflicts & Edge Cases

Multiple and Conflicting Canonical Tags

A page with two different canonical tags usually means Google honors neither.

What multiple canonical tags do to a page

A page should carry exactly one rel=canonical tag. When it carries more than one, and those tags point to different target URLs, you have a conflicting-canonicals situation. The widely-cited behavior is that when Google encounters multiple conflicting canonical signals on a single page, it will likely ignore all of them and fall back to selecting its own canonical URL using its own signals instead. In other words, the mechanism you put in place specifically to control which URL gets indexed stops functioning, and Google takes over that decision entirely.

This should be hedged appropriately: Google does not guarantee it will always discard every conflicting signal, and there are reports of Google sometimes picking one of the conflicting canonicals rather than ignoring all of them. But the reliable, practical takeaway is that you cannot count on any specific one of multiple conflicting canonicals being honored. If control over the canonical URL matters to you, and it should, multiple conflicting canonical tags is a bug, not a redundant safety net.

Google's own guidance is explicit on this point: don't specify different canonical URLs through different techniques, whether that's two tags in the HTML head, or one in the HTML head and a different one in the HTTP response header for the same page.

How duplicate canonical tags happen

Multiple canonical tags are almost always a technical accident rather than an intentional choice, and they tend to trace back to a handful of recurring causes. The most common is a theme and an SEO plugin both independently deciding to output a rel=canonical tag in the page head. Many WordPress themes, for example, include their own canonical logic, and if an SEO plugin is also configured to output canonicals, both fire, and the page ends up with two tags, sometimes pointing at the same URL and sometimes not.

A related cause is running two SEO plugins simultaneously, each of which assumes it owns canonical tag output. This happens more often than site owners expect, particularly after a plugin migration where the old plugin was deactivated but not fully removed, or where a caching or performance plugin unexpectedly also injects canonical logic.

A third cause is a hardcoded canonical tag baked directly into a page template by a developer, which then coexists with a canonical also being generated dynamically by a plugin or CMS setting. And a fourth, easy-to-miss cause is a mismatch between the HTML head and the HTTP response header: some server configurations or CDNs add a canonical Link header independently of what the CMS renders in the HTML, and if the two disagree, that is a conflicting-canonical situation even though there is only one tag visible in the page source. Server-rendered canonicals that later get overwritten or duplicated by client-side JavaScript are a variant of the same problem.

What Google does with conflicting canonicals

When Google finds different canonical targets specified through different methods on the same page, its stated guidance is direct: don't do this. The practical consequence, as described above, is that Google will likely disregard all of the conflicting canonical signals and choose the canonical URL itself, using whatever other signals it has available, such as internal linking patterns, the sitemap, redirect history, and content similarity.

The core cost here is loss of control. Even a single, correctly-configured canonical tag is only a hint that Google can override, but at least it is a clear, unambiguous input into that decision. Multiple conflicting canonicals remove even that; you are no longer giving Google a hint at all, you are giving it noise, and it responds to noise by ignoring the input and deciding on its own. For a site relying on canonicalization to consolidate ranking signals onto a specific preferred URL, that loss of control can mean the wrong URL variant ends up in the index, or ranking signals end up split rather than consolidated.

How to detect multiple canonical tags

Detecting duplicate or conflicting canonical tags requires checking more than one place, since the HTML and the HTTP header are separate channels and a mismatch between them will not show up if you only look at one. Viewing the page's raw HTML source and searching for rel="canonical" is the first step; if it appears more than once, that is a direct conflict inside the HTML itself. Here is what that looks like when a theme and a plugin both inject a canonical tag with different targets:

<link rel="canonical" href="https://example.com/widgets/blue-widget/" />
<link rel="canonical" href="https://example.com/widgets/blue-widget" />

Note that these two targets differ only by a trailing slash, which is enough to make them different URLs and therefore a genuine conflict, not a harmless duplicate.

Second, check the HTTP response headers separately from the HTML, since a server or CDN can add a canonical Link header that never appears in the page source at all. Third, a site crawler that reports on canonical tags is the most efficient way to check this across an entire site rather than page by page, since these tools typically flag pages with multiple canonical declarations automatically. Fourth, Google Search Console's URL Inspection tool shows which URL Google actually selected as canonical for a given page, which is a useful confirmation of what happened after the conflicting signals were resolved on Google's end.

How to fix it — leave exactly one canonical source

The fix is conceptually simple even when the underlying cause takes some digging to find: reduce the page to exactly one canonical tag, coming from exactly one source, in exactly one location, whether that is the HTML head or the HTTP header, not both disagreeing with each other.

In practice this means identifying which system is emitting each canonical tag, whether that's the theme, a specific plugin, a hardcoded template, or a server or CDN configuration, and then disabling all but one of them. If a theme and an SEO plugin are both outputting canonicals, the usual fix is to disable the theme's canonical output and let the SEO plugin, which is generally more configurable and purpose-built for this, be the single source of truth. If two SEO plugins are active, deactivate the one you are not actively using for canonical management. If the HTML and HTTP header disagree, reconcile them so they emit the identical absolute URL.

After consolidating to a single source, re-check the raw HTML and the HTTP headers to confirm only one rel=canonical target now exists, and that it is the correct, absolute, preferred URL for that page.

Frequently Asked Questions

What happens if a page has two different rel=canonical tags?

Google's likely response is to ignore both conflicting canonical signals and select the canonical URL itself using its own signals, rather than honoring either one. This means you lose control over which URL gets treated as canonical.

Can a canonical conflict exist even if I only see one tag in the page source?

Yes. A server or CDN can add a canonical URL in the HTTP response header independently of what appears in the HTML head. If those two disagree, that is a conflict even though the HTML source shows only one visible tag. Check HTTP headers separately from the page source to catch this.

Why do two SEO plugins on the same site cause canonical problems?

Many SEO plugins assume they are the sole source of canonical tag output and generate one automatically for every page. If two such plugins are active at once, both may inject a canonical tag, and if their logic produces different URLs, the page ends up with conflicting canonicals.

How do I check which canonical Google actually chose for a page?

Use Google Search Console's URL Inspection tool on the specific URL. It reports the Google-selected canonical, which shows you what Google decided after evaluating whatever canonical signals were present, including cases where it disregarded conflicting tags and chose its own.

Is it fine to have two canonical tags as long as they point to the same URL?

Google's guidance is to specify a canonical only once, not to rely on redundant identical tags. Even when both tags happen to agree today, having two separate emitters (such as a theme and a plugin) increases the risk that they will drift out of sync later, so the safer practice is a single source emitting a single tag.