What's the issue?
Your page's canonical URL (<link rel="canonical">) points to a different URL than the page being accessed. This tells search engines to index the canonical URL instead of the current one.
When this is intentional
A mismatched canonical is correct in these cases:
- Content syndication — Republished content pointing back to the original
- Parameterized URLs —
/products?color=redcanonicalizing to/products - Tracking URLs —
/page?utm_source=twittercanonicalizing to/page - www vs non-www — Consolidating to a preferred version
- HTTP to HTTPS — Pointing to the HTTPS version
When this is a problem
A mismatched canonical is wrong in these cases:
- Accidental misconfiguration — Pointing to the wrong page entirely
- Template errors — All pages canonicalizing to the homepage
- Outdated URLs — Canonical points to a moved or deleted page
- Copy-paste mistakes — Canonical copied from another page
How to check
- Visit the canonical URL — Does it exist and show the right content?
- Is it the "main" version? — Should search engines prefer it over this URL?
- Check other pages — Do they all have the same canonical? (That's a bug)
How to fix it (if it's wrong)
Make the canonical self-referencing:
<!-- If the current page URL is https://example.com/my-page -->
<link rel="canonical" href="https://example.com/my-page" />Best practices
- Every page should have a canonical — Self-referencing if it's the primary version
- Use absolute URLs — Full
https://URLs, not relative paths - One canonical per page — Multiple canonicals will be ignored
- Keep it consistent — Canonical, og:url, and hreflang should align