No Hreflang Tags Found? How to Diagnose and Fix It

What a "no hreflang tags" warning means, when you can ignore it, why crawlers miss tags that exist, and how to add and verify hreflang using Google's current rules.
No card details No commitment

· Updated · Alex B · Blog

Summarize this post with: 11 min read

“No hreflang tags” means a crawler looked at your pages and found no <link rel="alternate" hreflang="…"> annotations, so it has no explicit map between your language versions. If your site exists in only one language, you can ignore the warning. If you have translated or regional pages on separate URLs, fix it by adding a complete, reciprocal set of hreflang annotations (in the HTML head, HTTP headers or your XML sitemap), then confirm them with a crawler, because Search Console no longer reports hreflang errors.

Key takeaways

  • The warning only matters when you have two or more language or regional versions of the same page on different URLs.
  • Google accepts hreflang in three equivalent places: HTML <link> tags, HTTP Link: headers, or an XML sitemap. Pick one.
  • Every version must list itself and every other version, with fully qualified URLs. If two pages don’t point to each other, Google ignores the pair.
  • Search Console’s International Targeting report, which used to show “no hreflang tags”, was retired in 2022. Use a site crawler to check your tags today.
  • The most common reasons a crawler finds nothing: the tags are injected too late, printed outside <head>, stripped by a cache or plugin, or only live in a sitemap the tool doesn’t read.

What the “no hreflang tags” warning actually means

Hreflang is an annotation that tells Google, “this URL is the German version of that URL, and this other one is for English speakers in the UK.” Google’s documentation describes it as a way to help “Google Search point users to the most appropriate version of your page by language or region” (Google Search Central).

A “no hreflang” message is a statement about what a tool could see, not a penalty. It usually comes from one of these places:

  • Old Search Console screenshots and tutorials. The International Targeting report used to show a message when it found no hreflang tags on a property. Google deprecated that report in 2022; it says it “will continue to support and use hreflang tags on your pages”, but the report and the country-targeting setting are gone (Search Console Help). If you are following a guide that tells you to open International Targeting, the guide is out of date.
  • SEO crawlers. Tools such as Semrush Site Audit and Ahrefs Site Audit check for missing or broken hreflang, missing self-references and missing return links (Semrush issue list, Ahrefs help).
  • Browser extensions and one-page testers that read only the HTML head of the page you are on.

Step 1: decide whether you need hreflang at all

You need hreflang if the same content exists on different URLs for different languages or regions. Google lists three common situations where it recommends marking up alternates: pages where only the template (navigation and footer) is translated, pages in one language with small regional differences (for example English for the US, GB and Ireland), and sites that are fully translated (Google Search Central).

You do not need hreflang, and can safely ignore the warning, when:

  • The site is in a single language and targets no specific regions.
  • Your “translation” happens only inside the visitor’s browser and never gets its own URL. In that case, there is nothing for hreflang to point to. Google recommends using “different URLs for each language version of a page rather than using cookies or browser settings to adjust the content language” (Google Search Central), so the real fix is to give each language its own URL first.

A useful fact to keep in mind: Google says it doesn’t use hreflang or the HTML lang attribute to work out what language a page is in. It detects language from the visible content (Google Search Central). Hreflang’s job is to connect the versions, not to label the language.

Step 2: find out why the tool sees nothing

Before you add anything, check what is already on the page. Open a translated URL, view the page source (not the browser’s inspector, which shows the page after JavaScript runs), and search for hreflang. Then work through the causes below.

1. The tags were never added

Many site builders and themes produce translated pages without any alternate annotations. A plugin or translation service may also have a setting for hreflang that is switched off.

2. The tags are outside the <head>

Google requires the <link> elements to sit inside a well-formed <head> and suggests running the rendered page through an HTML validator if in doubt (Google Search Central). A stray <div>, an unclosed tag or a tracking snippet that outputs visible markup early can make parsers close the head before your hreflang lines are reached.

3. The tags are added by JavaScript only

If a script inserts the tags after the page loads, a crawler that reads raw HTML won’t find them. Google renders JavaScript, but server-side output is the dependable option and the one every audit tool can read.

4. A cache, CDN or optimisation plugin removes them

HTML minifiers and full-page caches sometimes serve a version of the page that was generated before the translation plugin ran, or strip <link> elements they don’t recognise. Clear the cache, then fetch the page again with a tool that bypasses it.

5. They live in the sitemap, and the tool only reads HTML

Sitemap annotations are fully valid for Google. A single-page checker that reads only HTML will still report “no hreflang”. Check the sitemap directly before assuming anything is broken.

6. The tags exist but are invalid

Some tools report malformed annotations as missing. Look for relative URLs, region-only codes such as hreflang="uk", or codes that Google doesn’t support. More on that below.

Step 3: add a complete set of annotations

Google treats the three methods as equivalent. It says there is no Search benefit in using more than one, and that running three implementations is harder to manage (Google Search Central).

MethodBest forWhere it goes
HTML <link> tagsMost websites and CMSsIn the <head> of every language version
HTTP Link: headerPDFs and other non-HTML filesIn the server response for each version
XML sitemapLarge sites, or when you can’t edit templatesOne <url> entry per version with xhtml:link children

Here is a minimal HTML example for a page with English, German and a fallback. The same block goes on every version:

<link rel="alternate" hreflang="en" href="https://example.com/pricing/" />
<link rel="alternate" hreflang="de" href="https://example.com/de/pricing/" />
<link rel="alternate" hreflang="x-default" href="https://example.com/pricing/" />

The rules that matter, all from Google’s guidelines:

  1. Each version lists itself and all the others. The set of links is identical on every version.
  2. Use fully qualified URLs with https://, not //example.com/de/ or /de/.
  3. Return links are required. “If two pages don’t both point to each other, the tags will be ignored,” Google says. This stops other sites from claiming to be an alternate of your page.
  4. Language first, region optional. Use an ISO 639-1 language code, optionally followed by an ISO 3166-1 Alpha 2 region: de, de-AT, en-GB. A region on its own is not valid.
  5. Add x-default for everyone else. It names the page for visitors whose language settings match none of your versions. Google says it was designed for language selector pages and works best there.
  6. Alternate URLs can be on other domains, so example.de and example.com can reference each other.

If maintaining every combination is hard, Google says you can leave some languages out on some pages and it will still process the pairs that point to each other. Prioritise linking new language versions back to your original, strongest version.

For the full syntax of the header and sitemap methods, see our complete hreflang implementation guide, and for a step-by-step walkthrough of each method, how to add hreflang tags.

Step 4: fix the errors that come after “no hreflang”

Once tags exist, the warnings change. These are the ones Google calls out as most common:

  • Missing return links. Page A lists page B, but B doesn’t list A. Fix the template so every version outputs the full set.
  • Incorrect language codes. Only ISO 639-1 language codes are supported. Google’s documentation gives es-419 (Latin American Spanish) as an example of a code it does not support.
  • Incorrect region codes. Codes reserved for other uses, such as EU, UN or UK, have no effect in Google Search. The United Kingdom is GB, so English for the UK is en-GB.
  • Country code used as a language. be is Belarusian, not Belgium. For Belgian audiences use nl-BE, fr-BE or de-BE.

Two related problems show up in crawlers even though they aren’t strictly hreflang syntax:

  • Canonical conflicts. A German page whose canonical points to the English page tells Google the German page is a duplicate. Google’s canonical guidance says that when you use hreflang, you should “specify a canonical page in the same language” (Google Search Central). Each language version should normally be self-canonical.
  • Alternates that redirect or return errors. Point hreflang at the final 200 URL, not at an old path that redirects.

Case is not an error. Google says hreflang values are case-insensitive, though writing regions in capitals (en-GB) follows the ISO convention.

Step 5: verify the fix

Because Search Console no longer has an hreflang report, verification is a manual job:

  1. Spot-check the source of one page per language and confirm the same set of tags appears on each.
  2. Run a site crawler and check its hreflang section for missing return links, non-200 targets and invalid codes. Google’s page lists two third-party tools it considers popular, Aleyda Solis’s hreflang tags generator and Merkle’s hreflang tag testing tool, while noting it doesn’t maintain or check them.
  3. Use URL Inspection in Search Console on a translated URL to confirm that Google can crawl it and that its chosen canonical is the translated URL itself, not your original-language page.
  4. Re-check after template or plugin changes. Hreflang usually breaks silently when a theme update or caching rule changes what is printed in the head.

How ConveyThis handles hreflang

If you translate your site with ConveyThis and publish each language on its own subfolder or subdomain, hreflang is generated for you. The WordPress plugin prints the alternate links in the page head, one for the original language, one for each translated language and an x-default pointing to the original-language page, and adds the language alternates to its sitemap. Because the tags come from the same language list that builds the translated URLs, adding or removing a language updates every page’s set together, which is what keeps return links intact.

Two things are still worth checking yourself: that your caching or optimisation plugin isn’t stripping the <link> elements, and that your SEO plugin isn’t setting a canonical that points translated pages back to the original. The multilingual SEO overview explains how translated URLs, meta tags and hreflang fit together, and the help article on subdomains vs subdirectories covers choosing a URL structure. If you are on WordPress, the WordPress integration page lists what the plugin sets up.

Frequently asked questions

Is a “no hreflang tags” warning a Google penalty?

No. It is a report from a tool that found no alternate annotations. Nothing is demoted because of it. The cost is indirect: without hreflang, Google may show the wrong language version to searchers.

Do I need hreflang on a single-language website?

No. Hreflang connects two or more versions of the same content. A site with one language and no regional variants has nothing to connect, so you can ignore the warning.

Can I use hreflang tags and a sitemap at the same time?

You can, but Google says there is no benefit in Search and it makes the setup harder to maintain. Choose one method and keep it complete.

Where did the International Targeting report go?

Google deprecated it in 2022. Hreflang is still supported and used, but hreflang errors are no longer reported in Search Console, so use a site crawler to audit your tags.

What is x-default and do I need it?

x-default names the page for visitors whose language or region matches none of your versions, often a language selector or your main-language page. Google recommends it, especially on selector pages and home pages that redirect by language.

Get hreflang right without hand-coding it

Hand-written hreflang tends to break as soon as a page or language is added. If you would rather have translated URLs and their hreflang annotations generated together, you can create a ConveyThis account and connect your site.

Share:
G2 High Performer Spring 2023
G2 Easiest Setup Fall 2024
G2 Best Support Spring 2025