A correct `hreflang` implementation requires that every URL in the annotation set is the single, authoritative version of that page—in other words, the canonical URL. A critical and common error is having an `hreflang` tag that points to a non-canonical URL. This sends a confusing, two-step signal to search engines: “Here is the correct page for users in Germany,” followed immediately by, “But this isn’t the real version of this page; go look at this other URL instead.”
This is like giving someone a map to a post office box when they asked for your street address. It’s an unnecessary extra step that creates ambiguity. Search engines may eventually figure out the correct page, but the conflicting signal can cause them to distrust your implementation and ignore the `hreflang` attribute altogether. For a broader look at international SEO, see our guide on the localization category.

Why Every Hreflang Link Must Be Canonical
The purpose of `hreflang` is to provide a definitive map of your international content. Every entry on that map must be a final destination. As Google’s documentation on canonicalization makes clear, you should always use canonical URLs in your signals.
- It Prevents Signal Dilution: Pointing directly to the canonical URL ensures that all ranking signals are consolidated correctly and efficiently.
- It Improves Crawl Efficiency: It saves search engines from having to crawl a non-canonical URL, read its canonical tag, and then crawl a second URL.
A Step-by-Step Guide to Fixing the Conflict
The goal is to ensure that every URL in your `hreflang` annotations is the final, canonical version of that page. For a deep dive into this topic, this guide from Ahrefs on hreflang tags is an excellent resource.
Example: Fixing a Non-Canonical Hreflang Link
<!-- Before: Hreflang points to a non-canonical URL --> <link rel="alternate" hreflang="en-gb" href="https://example.com/uk/?variant=a" /> <!-- After: Hreflang points to the canonical URL --> <link rel="alternate" hreflang="en-gb" href="https://example.com/uk/" />
For more on this topic, see our guide on on-page SEO.
Frequently Asked Questions
What is a non-canonical URL?
A non-canonical URL is a version of a page that is considered a duplicate of a ‘master’ or canonical version. This often happens with URL parameters for tracking or filtering. The non-canonical page will have a “ tag that points to the master URL.
Does this apply to the ‘x-default’ tag?
Yes. The URL specified in your `x-default` hreflang tag must also be the canonical version of that page. Pointing your fallback URL to a non-canonical page is a conflicting signal.
How can I find all the hreflang links that point to non-canonical pages?
The most effective way is to use a website crawler like Creeper. It will scan every page, extract all hreflang annotations, and then crawl those target URLs to check if they are canonical or if they point to a different URL, flagging any conflicts.
Are your international signals being wasted? Start your Creeper audit today to find and fix conflicting SEO directives.
“