Skip to content
Healthy URL healthyURL
← Fix guides

Conflicting canonical tags

A canonical tag tells search engines which address is the authoritative one for a page. If it is missing or contradicts itself, they choose for you — and they may not choose the address you want ranking.

Findability seo.canonical.conflicting

A conflicting canonical tag happens when a single page points search engines toward more than one "official" address, or when the canonical tag disagrees with other signals like your sitemap or redirects. This usually comes from two plugins or templates both adding a canonical tag, or from a hardcoded tag fighting with one your platform generates automatically. Search engines see the mixed message and pick one for themselves.

Why it matters

When your canonical signals contradict each other, search engines ignore your preference and choose the address they think is best. That can split ranking strength between duplicate versions of a page, or push the wrong URL into search results — costing you visibility for the page you actually care about.

How to fix it

The goal is exactly one canonical tag per page, pointing to the address you want indexed:

<link rel="canonical" href="https://example.com/your-page/" />

First, view the page's source (right-click → View Page Source) and search for canonical. If you find more than one tag, or one pointing to an unexpected address, remove or correct the duplicates using the steps below.

WordPress

Canonical tags are usually added by an SEO plugin (Yoast, Rank Math, All in One SEO). Conflicts often come from two SEO plugins running at once, or a theme also inserting a tag.

  • Deactivate any second SEO plugin — run only one.
  • Check your theme's header.php for a manual <link rel="canonical"> and remove it if the plugin already handles this.
  • In the plugin's per-page settings, set the canonical URL explicitly if needed.

Nginx

If you inject canonical headers at the server level, make sure only one is sent:

add_header Link "<https://example.com/your-page/>; rel=\"canonical\"";

Remove duplicate add_header Link directives, and check that your application isn't also adding one.

Apache

Header set Link "<https://example.com/your-page/>; rel=\"canonical\""

Use Header set (not Header add) so a new value replaces rather than appends. Check .htaccess and your virtual host config for more than one such line.

Cloudflare

If you use a Transform Rule or Worker to add a canonical Link header, confirm it isn't duplicating a tag your origin server already sends. Edit or disable the rule so only one source sets the canonical.

How to check it worked

Reload the page, view its source, and confirm there is exactly one <link rel="canonical"> pointing to the correct address; also check the HTTP response headers for any duplicate Link: rel="canonical" entry.

Does this affect your site?

A scan takes under a minute and checks this along with eighteen other things. No account needed.