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.phpfor 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.