
Element Code: OR-007
What this check is telling you
A canonical tag is a hint, not a command. When you add rel="canonical" pointing page A at page B, you are telling Google "B is the master, index that one, fold A into it." If Google agrees, page A drops out of the results and B absorbs the signals. This check fires when that did not happen: the canonicalized page A is still earning organic traffic in Search Console, which means Google looked at your hint and decided to index A anyway.
Google's documentation is blunt about this: canonical tags are one of several signals it weighs, and it can override your choice. So a canonicalized page getting traffic is not a Search Console glitch. It is Google telling you, through behavior, that your consolidation did not take.
Why Google overrides a canonical
Google picks its own canonical when your signals are muddy or the two pages are not the near-duplicates you claimed. The usual suspects, roughly in order of how often I see them:
- The pages are not actually duplicates. If A and B have meaningfully different content, Google reasonably concludes they each deserve to rank. A canonical between genuinely distinct pages is a misuse, and Google ignores it.
- Conflicting signals. Your canonical says B, but your XML sitemap lists A, your internal links point at A, and your redirects favor A. Google weighs all of that and follows the majority.
- The canonical target is weak. If B is thin, noindexed, blocked, or itself canonicalized elsewhere, Google will not consolidate into it and keeps A instead.
- A self-referencing canonical on A. A common CMS bug where page A canonicalizes to itself in the rendered HTML, silently overriding the cross-canonical you thought you set.
- Rendering mismatch. The canonical is injected by JavaScript and Google rendered a different one, or none, in the raw HTML.
How to diagnose it
- Run URL Inspection on page A. Search Console shows you both the "User-declared canonical" and the "Google-selected canonical." When those disagree, you have your answer in black and white: Google chose A, or chose something else entirely.
- View the rendered HTML. In the same tool, check the rendered canonical, not just the raw source. A JavaScript-injected or CMS-overridden canonical often differs from what you wrote in the template.
- Crawl with Screaming Frog. Its Canonicals tab flags "Canonicalised" pages, self-referencing loops, and canonicals pointing at non-indexable targets. Filter for pages whose canonical target is not a 200 or is itself noindexed.
- Compare the two pages honestly. Put A and B side by side. If a normal reader would call them different pages, the canonical is the wrong tool and Google is right to ignore it.
- Check for contradicting signals. Is A in your sitemap? Do internal links point at A? Does A get its own redirects? Every one of those tells Google to keep A.
Signal conflict reference
| Signal | Says index... | Fix to align |
|---|---|---|
| rel=canonical on A | Page B | Keep, if others agree |
| XML sitemap lists A | Page A | Remove A from sitemap |
| Internal links to A | Page A | Repoint links to B |
| Rendered canonical self-refs A | Page A | Fix the CMS template |
How to fix it
First decide which page should actually win, then make every signal agree.
- If B is genuinely the master: confirm the rendered canonical on A points to B, remove A from the XML sitemap, repoint internal links from A to B, and make sure B is indexable, strong, and not canonicalized elsewhere. Then request reindexing of A in URL Inspection.
- If A is really the better page: stop fighting Google. Flip the canonical so both pages point at A, and consolidate toward the version users and links already favor.
- If the pages are distinct: remove the canonical entirely and let each rank on its own. Differentiate the content and target different queries so they stop competing.
- If it is a true duplicate you want gone: a canonical is a soft signal. For a hard removal, use a 301 redirect from A to B instead, which Google treats as a much stronger consolidation instruction.
The honest question underneath all of this: did you canonicalize A because it is a duplicate, or because it was inconvenient? Google can usually tell the difference, and it acts on what the pages really are.
DO vs DON'T
- Compare user-declared vs Google-selected canonical in URL Inspection
- Make sitemap, internal links, and canonical all agree
- Ensure the canonical target is strong and indexable
- Use a 301 when you truly want the page gone
- Only canonicalize genuine near-duplicates
- Assume a canonical tag forces Google's hand
- Canonicalize pages that are actually different
- Point a canonical at a thin or noindexed target
- Leave the source page in your sitemap
- Let a self-referencing CMS canonical override yours
What "good" looks like
Open URL Inspection on the canonicalized page and the user-declared canonical matches the Google-selected canonical. The page shows as "Duplicate, submitted URL not selected as canonical" only where you intend it to, and it stops accruing its own organic clicks because Google folded it into the master. Every supporting signal, the sitemap, the internal links, the rendered HTML, points the same direction. When your signals agree, Google usually agrees with them.
FAQ
Is a canonicalized page getting traffic always a problem?
Why does Google ignore my canonical tag?
Should I use a redirect instead of a canonical?
The canonical looks right in my template. Why is it ignored?
Claude Vincent is a technical SEO consultant focused on crawlability, rendering, and AI-search visibility. He writes the field guides and case studies at SEO ProCheck, with a bias toward the durable, unglamorous work that decides whether search engines and AI answer engines can actually read and cite a site.
About SEO ProCheck
Technical SEO consulting and GEO strategy with 20 years of enterprise experience. Case studies, resources, and tools for search and AI visibility.
Work With Me
Technical SEO audits, GEO strategy, site migrations, and international SEO. Hourly consulting for teams who need hands-on support, not just reports.







