Invalid Incoming

No Comments
Invalid incoming

Element Code: HR-020

TL;DR: Another page points an hreflang annotation at this URL, but that incoming annotation is malformed: a bad language or region code, an http/https or trailing-slash mismatch, or a URL that does not resolve cleanly. Google throws out the whole reciprocal relationship, so your carefully built international cluster quietly stops working. Fix it at the source page, not here.
SEVERITY
Medium to high
CATEGORY
Hreflang
DIRECTION
Incoming
DETECTION
Validator + crawl
FIX LOCATION
Source page

What this issue actually means

Hreflang is a two-way handshake. If page A says "my French version is page B," then page B has to say "my English version is page A" back. The pointers reference each other by URL and by an hreflang value that names a language, optionally a region, using ISO 639-1 for language and ISO 3166-1 Alpha-2 for country. When it all lines up, Google groups the pages into one cluster and serves the right version to the right audience.

This check, "Invalid Incoming," means some other page is trying to complete that handshake with the current URL, but its half of the annotation is invalid. The incoming reference is broken in a way that makes it unusable. Common culprits: a language code that does not exist (a classic is en-UK, when the correct region is en-GB), a made-up or transposed region, or a target URL that does not match the live URL because of a protocol difference, a www difference, a trailing slash, or a redirect in the path. Because hreflang requires an exact, canonical, self-consistent set of URLs, any of these breaks the pairing.

Why this matters for international SEO

Google's own documentation is blunt about this: hreflang annotations must be confirmed from both sides, and invalid or non-reciprocal ones are ignored. "Ignored" is the part people underestimate. It does not silently degrade to partial credit. When the incoming annotation is invalid, the reciprocal link is not confirmed, and the cluster relationship for that pair collapses. Google then falls back to its own guess about which version to show, which is exactly the outcome you built hreflang to prevent.

The real-world symptom is the wrong-language result in search: British users landing on the US page, Spanish users getting the Latin American variant, or duplicate-looking pages competing against each other instead of being consolidated into one localized cluster. On a large multi-region site, a scattering of invalid incoming annotations can unravel a big chunk of your geo-targeting without any single dramatic failure to point at.

The reciprocal handshake, and where it breaks

Page A (en) points to B as "fr" Page B (fr) must point back to A valid pointer invalid incoming: en-UK / slug mismatch Result: pairing not confirmed Google ignores the relationship, guesses the version

How to detect it

  • Screaming Frog SEO Spider: enable hreflang crawling and read the Hreflang tab. It reports non-reciprocal (unconfirmed) links, missing return tags, invalid language and region codes, and mismatched URLs. The "Non-Reciprocal" and "Incorrect Language and Region Codes" filters are where invalid incoming annotations surface.
  • The Merkle / Aleyda Solis hreflang testing tools: paste a URL and they parse every annotation, validate each code against the ISO lists, and flag the malformed ones with the exact bad value.
  • Sitebulb: its international hints group hreflang problems by type and severity, which is handy for triaging a large cluster.
  • Google Search Console: the legacy International Targeting report is gone, but URL Inspection and coverage data still help you confirm which version Google actually chose, which is your evidence that the relationship is or is not working.
  • Manual view-source: on the source page, read the rel="alternate" hreflang tags directly. Check the exact string of the code and the exact target URL, character for character, against the live canonical.

How to fix it, step by step

The current page is the victim, not the offender. You fix this on whichever source page emits the bad incoming annotation.

  1. Identify the offending source. Your crawler names the URL whose annotation is invalid. Open its markup or sitemap entry.
  2. Correct the code. Validate the language against ISO 639-1 and the region against ISO 3166-1 Alpha-2. Fix classics like en-UK to en-GB. Language comes first, region second, joined by a hyphen.
  3. Match the URL exactly. The target must be the canonical, indexable, self-referencing URL: right protocol, right host, right trailing-slash convention, no redirect in between. Point hreflang at final destinations only.
  4. Confirm reciprocity. Make sure the target page points back with a matching code. Both halves must agree or the pair is discarded.
  5. Include a self-referencing tag. Every page in the cluster should list itself, which is a requirement people routinely forget.
  6. Re-crawl and validate. Run Screaming Frog again and confirm the pair now shows as reciprocal with valid codes and zero mismatches.

Common invalid codes and their fixes

Wrong valueWhy it is invalidCorrect value
en-UKUK is not the ISO region codeen-GB
en-EUEU is not a country in ISO 3166-1en or a real region
pt-PT-BROnly one region allowed after languagept-BR
spa-ESLanguage must be 639-1, not 639-2es-ES
http://site.com/frProtocol/slash mismatch vs canonicalhttps://site.com/fr/

Good versus broken

DO
  • Validate every code against ISO 639-1 and 3166-1
  • Point at canonical, final, indexable URLs only
  • Confirm both sides reference each other
  • Include a self-referencing hreflang tag on every page
  • Re-crawl after edits to prove reciprocity
DON'T
  • Invent codes like en-UK, en-EU, or zh-CN-HK
  • Point hreflang at a URL that redirects
  • Mix http and https or slash conventions across the cluster
  • Assume one-directional annotations count
  • Target noindex or non-canonical URLs

What "good" looks like

Every incoming annotation that targets this page uses a valid language and region code, points at the exact canonical URL with no redirect, and is matched by a return tag from this page. Your crawler shows the pair as confirmed and reciprocal, and Search Console serves the correct localized version to each audience. When the whole cluster is self-consistent, hreflang does the quiet, boring job you designed it for.

FAQ

The error is on this page's report, so why do I fix a different page?
Because "incoming" means the broken annotation lives on the page pointing at you. This URL is the target of a bad reference. Correct the code or the URL on that source page and the reciprocal relationship for this pair repairs itself.
Can I use a region code without a language?
No. Hreflang requires a language code, with an optional region after it. A bare region like just US is invalid. The one special case is x-default, which marks the fallback page for unmatched users.
Does a trailing slash really break it?
If your canonical URL has a trailing slash and the hreflang target omits it (or the reverse), and the two resolve as different URLs or one redirects, then yes, the exact-match requirement fails. Keep the annotation identical to the live canonical, character for character.
Where can I declare hreflang?
Three valid places: HTML <head> link elements, HTTP response headers (useful for PDFs and non-HTML files), and XML sitemaps. Pick one method per set of pages and keep it consistent so annotations do not conflict.
International setup leaking traffic to the wrong regions?

We crawl the full hreflang graph, find every broken and non-reciprocal annotation, and hand you a page-by-page repair plan. Book an advanced SEO audit.

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.

Subscribe to our newsletter!

More from our blog