The page declares more than one canonical URL
What this check looks for
This page names ‹count› different canonical URLs. When a page gives conflicting answers, search engines disregard all of them and decide for themselves.
Why it matters
Two canonicals are worse than none: the effort of adding them produces no effect, and the page is treated as if it had declared nothing, so the consolidation you intended does not happen.
When the check passes, your report says: “The page declares exactly one canonical URL”.
What it costs your score
When this check fails it removes 15 points from your SEO score, before the status, confidence and repeat multipliers are applied. SEO carries a weight of 5 in the overall score.
It shares the seo.canonical family ceiling of 20 points: however many findings that family produces, together they cannot remove more than that from SEO. One underlying problem showing up in several places is still one problem.
- Severity
- medium
- Default confidence
- confirmed
- Status when triggered
- fail
- Deduction
- 15 points
- Family cap
- seo.canonical · 20
- Category
- SEO
- Module
- Seo audit
- Fix owned by
- user
- In the ruleset since
- 2026.09
How to fix it
Leave exactly one canonical declaration in place and remove the rest.
Conflicting declarations are discarded wholesale, so the page currently behaves as though it declared no canonical at all.
Find every source. Check the page source for more than one
rel="canonical"element, and the response headers for aLinkheader carrying one.Decide which component owns the canonical — usually the application or CMS, not a plugin and not the CDN.
Disable the others rather than configuring them to match, so they cannot drift apart again.
Confirm the surviving canonical is the URL you want indexed and that it returns 200 rather than redirecting.
How to confirm it worked
curl -sS ‹url› | grep -ci 'rel="canonical"' — should be 1. A second canonical in a
Link:header counts as a conflict too, so check the header line below as wellcurl -sSI ‹url› | grep -i "^link:" — should not carry a second rel="canonical"
A named slot like ‹domain› — and the braces left in the configuration below — is filled in with your own values when this rule appears on a report.
Technical detail
The declared canonicals are:
‹urls›
Google's documentation is explicit that multiple conflicting canonical declarations cause all of them to be ignored. The declarations can come from either channel — a <link rel="canonical"> element or a Link: <…>; rel="canonical" response header — and a page carrying one of each with different values has the same problem as a page with two elements.
The usual cause is two things writing the tag: a content management system's own canonical plus one from an SEO plugin, or a template that emits one alongside a CDN or edge worker that adds a Link header. Removing one source is the fix; making them agree is fragile, because the next time either changes they will disagree again.
Standards and references
Test this on your domain
Run the check that produces this finding, on its own, against any domain.
Other seo audit checks
- The canonical URL cannot be used
- The page declares no canonical URL
- The canonical URL points at a different page
- The page has no h1 heading
- The heading levels skip a level
- The page has more than one h1
- An hreflang annotation is not valid
- The hreflang set does not include this page
- The page's declared language is not a well-formed language tag
- The page does not declare what language it is written in
- Images on the page have no alt attribute
- robots.txt blocks this page from being crawled