Canonicalized URL has incoming hreflang
This means that the URL in question is defined as a hreflang alternate, yet is canonicalized to another URL.
Why is this important?
Hreflang tags are interpreted by search engines as indexing instructions. An English page that has hreflang pointing at its French alternate is instructing search engines to index both the English version and the French version, and to consider each as equivalent in their respective languages.
If this English page was canonicalized to another URL (for argument's sake, we'll call it a Canadian page) then this would be an instruction to not index the English page, and to instead index the Canadian page.
So the hreflang is saying 'please index the English page', and the canonical is saying 'don't index the English page.'
This type of conflicting instruction serves to confuse search engines, to the point where they will ignore the canonical and/or hreflang, and make up their own mind about which are the right URLs to index.
What does the Hint check?
This Hint will trigger for any URL which is defined as a hreflang alternate, yet is also canonicalized.
Note: This Hint is very similar to another Hint: Has outgoing hreflang annotations to canonicalized URLs. The difference being that this Hint is analysing the target page of a hreflang annotation (i.e. incoming hreflang) whereas the other Hint is analysing the page with hreflang on (i.e. outgoing hreflang).
Examples that trigger this Hint:
Consider the URL: https://example.com/us/page-a/
The Hint would trigger for this URL if it had a canonical tag that is not self-referential:
and if the URL is listed as an hreflang alternate, either on another page, or on the page itself via a self-referencing hreflang;
How do you resolve this issue?
The problem with this sort of conflicting instruction is that it is not instantly obvious which page is causing the error. Either the hreflang is wrong or the canonical is wrong. This is what will cause search engines to guess, and they may not guess correctly.
The best solution is take the situation into your control, so that they do not need to guess. And this starts with figuring out which is the correct hreflang URL, which may require manual inspection.
Once you have established this, it should be straightforward to work out the next step:
- If the hreflang URL is correct, then the canonical is incorrect, and should be changed to a self-referential canonical.
- If the hreflang URL is not correct, then the outgoing hreflang annotations should be corrected so they point to the correct URL.