Hreflang Points to Noindex URLs: How to Fix the Conflict

No Comments
Hreflang points to noindex urls: how to fix the conflict

What this check flags

SEO ProCheck found hreflang annotations aimed at URLs that carry a noindex directive. That is a flat contradiction: hreflang tells Google "serve this page to this audience," while noindex tells Google "never show this page in results." Google obeys the exclusion, drops the URL from the index, and the hreflang edge dies with it — so the market you meant to reach gets no localized page at all.

Why the two directives can't coexist

Hreflang only operates on indexable pages. An annotation is a request to choose this URL for a given language or region among the indexable alternatives; a page that is noindex has removed itself from that pool entirely. When Googlebot fetches a noindexed hreflang target, the robots meta wins outright — the page won't rank, so there is nothing for the annotation to select. The return-tag chain then breaks the same way it does for a 404: the noindexed page may not even be crawled often enough to have its return tag re-read, leaving the pointing page's annotation permanently unconfirmed. One noindex on a staging leftover or a filtered variant can quietly knock a whole language out of your international footprint.

A real failing example

The Italian target is annotated as a live alternate, but the page itself ships a noindex left over from its pre-launch state:

<!-- Head of https://store.example/it/scarpe/ -->
<meta name="robots" content="noindex, follow" />   <!-- the contradiction -->
<link rel="canonical" href="https://store.example/it/scarpe/" />
<link rel="alternate" hreflang="en" href="https://store.example/en/shoes/" />
<link rel="alternate" hreflang="it" href="https://store.example/it/scarpe/" />

<!-- Also delivered as an HTTP header on the same URL -->
X-Robots-Tag: noindex

If the Italian page is meant to rank, remove both the meta tag and the header directive so it becomes indexable:

<!-- Corrected head of https://store.example/it/scarpe/ -->
<meta name="robots" content="index, follow" />
<link rel="canonical" href="https://store.example/it/scarpe/" />
<link rel="alternate" hreflang="en" href="https://store.example/en/shoes/" />
<link rel="alternate" hreflang="it" href="https://store.example/it/scarpe/" />
<link rel="alternate" hreflang="x-default" href="https://store.example/en/shoes/" />
<!-- and drop the X-Robots-Tag: noindex header -->

If instead the page should genuinely stay out of the index, the fix is the opposite: pull it out of every hreflang set rather than force it back in.

Decide the intent first, then act

Is the noindexed page meant to rank?Correct moveWhat to check afterwards
Yes — it's a real language versionRemove noindex (meta and header)Page returns indexable; return tags reciprocal
No — it's staging or thinRemove it from all hreflang setsNo annotation anywhere points at it
It's a duplicate of another versionCanonicalize, don't noindex; annotate the canonicalSingle self-canonical target per language
Noindex came from a plugin defaultFix the template/CMS ruleNo other language pages inherited it

How to detect it

  1. Screaming Frog — Hreflang tab. Crawl with Store HTML and hreflang extraction on, then cross-reference the Hreflang tab against the Directives tab filtered to Noindex. Any URL that appears as an hreflang target and also in the noindex list is a hit. The Non-Indexable Hreflang URLs filter surfaces this directly.
  2. Check both meta and header. noindex can live in a <meta name="robots"> tag or an X-Robots-Tag HTTP header; curl -sI the target to catch header-level directives Frog's HTML view might not show at a glance.
  3. Google Search Console. URL Inspection reports "Excluded by ‘noindex’ tag" for the affected target, and the Page Indexing report groups these under the same reason — filter it and match against your hreflang destinations.
  4. An hreflang validator. The Hreflang Validator fetches each target and flags non-indexable responses alongside missing return links.

How to fix it

  1. List every hreflang target and record whether it carries noindex in meta, header, or both.
  2. For each flagged URL, decide intent: should it rank, or shouldn't it? Don't guess — check whether a real audience needs that language version.
  3. If it should rank, strip every noindex source and confirm the page is indexable and self-canonical. If it shouldn't, remove it from all hreflang sets so no annotation points at an excluded page.
  4. Where the noindex came from a CMS or plugin default, fix the rule at the template level so sibling language pages don't inherit the same contradiction.
  5. Re-crawl and confirm no hreflang target appears in the noindex list, then verify the return tags resolve.

This flag frequently overlaps with canonical contradictions, so our writeup on canonical pointing to a noindex URL and the definition of noindex are worth a look, alongside the hreflang implementation guide for how indexable targets keep the cluster intact. Deliver the whole set through one method so a stale sitemap can't keep annotating a page you've deliberately excluded.

FAQ

Does noindex, follow make any difference here?

No. The follow part only affects link crawling; noindex still removes the page from results, so the hreflang annotation has no indexable page to select.

Can I keep the page noindexed but leave the hreflang for later?

Not usefully. While the page is noindexed the annotation does nothing and can leave neighbouring return tags unconfirmed. Remove the annotation until the page is genuinely ready to rank.

The target is noindexed by an X-Robots-Tag header I can't see in the HTML — why?

Server or CDN rules can add noindex at the header level, invisible in page source. Inspect the response headers directly with curl -I so header-only exclusions don't slip past.

What if only some regional variants are noindexed?

Fix them individually and check the template default that produced them, because a plugin rule that noindexed one variant has usually done the same to others in the same set.

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