Back 10 minute read

Hreflang Tags For International SEO

Hreflang Tags For International SEO 10
minute
read

Hreflang tags are HTML attributes that tell search engines which language and regional version of a page to serve to users in different locations. John Mueller, Google’s Search Advocate, has described them plainly: “TBH hreflang is one of the most complex aspects of SEO (if not the most complex one). Feels as easy as a meta-tag, but it gets really hard quickly.” That observation is backed by the data. An Ahrefs study of 374,756 domains found that 67% of sites using hreflang have at least one implementation error, meaning the majority of multilingual sites are not getting the full benefit from their localisation investment.

This guide covers when to use hreflang and when to skip it, the full syntax including the x-default tag, all three implementation methods and their trade-offs, how hreflang and canonical tags interact, the most common mistakes and how to fix them, free tools for generation and auditing, and what ongoing maintenance looks like in practice. I have written it as a practical reference you can work from directly.

What Are Hreflang Tags?

Hreflang tags are a type of link attribute added to a webpage’s HTML code, an XML sitemap, or HTTP response headers to indicate to search engines that this page has alternate versions in other languages or for other regions. The attribute uses the format hreflang="language-country", where the language code is required and the country code is optional. When implemented well, Google uses this information to serve the most appropriate version of a page to each user based on their language and location settings.

One important clarification: hreflang tags are signals, not directives. Google and other search engines may choose not to follow them if other factors, such as domain authority, relevance signals, or user location data, suggest a different page is more appropriate. This is why getting the implementation right matters: a flawed hreflang cluster can be ignored entirely rather than partially honoured.

Search engine support for hreflang is not universal. Google and Yandex support hreflang. Bing does not. Bing uses content-language meta tags for language targeting instead. If Bing search visibility is a priority for your site, you will need to implement content-language meta tags in addition to hreflang to cover both search engines.

The syntax format uses ISO 639-1 for the language code (for example, en for English, fr for French, zh for Chinese) and ISO 3166-1 Alpha 2 for the optional country code (for example, sg for Singapore, gb for Great Britain, au for Australia). A full tag for English targeting Singapore would read hreflang="en-sg".

When Should You Use Hreflang?

Hreflang is the right solution in three situations: you have the same content in multiple languages, you have the same language content tailored for different regional audiences, or you have content that combines both language and regional variation. The most common examples are a multinational company with localised product pages, an e-commerce site with region-specific pricing or currency, and a publisher with content translated into multiple languages.

A Singapore-based technology company operating across Southeast Asia, for instance, might have English content for Singapore, English content for Australia, and Mandarin content for Taiwan. Each version targets a different audience. Without hreflang, Google has to guess which version to show users in each country and may serve the wrong one or treat the pages as duplicate content.

When You Do Not Need Hreflang

If your entire site targets one language and one region, hreflang adds technical complexity without any benefit. A Singapore SME with a single English website serving Singapore customers does not need hreflang. Adding it in this situation creates additional tags to maintain and potential errors to introduce, with nothing to gain. The investment belongs elsewhere.

Do Not Over-Specify: The Targeting Mistake That Limits Your Reach

One of the most common implementation errors I see is using country-specific hreflang codes when a language-only code would better serve the intended audience. If you have an English page aimed at all English speakers globally, the correct tag is hreflang="en", not hreflang="en-sg". Using the country-specific code means Google will only match users whose search settings are set to Singapore. English speakers in Australia, the United Kingdom, the United States, and every other English-speaking market will not be matched to that page.

Add country codes only when you have content that is specifically different for that country: different prices, currencies, regulatory language, or product availability. If the content is the same and you simply want all English speakers to find it, use the language code alone. For broader multi-market strategies, our international SEO services can help you map the right hreflang structure to your market coverage before implementation begins.

Why Hreflang Tags Matter for SEO

Hreflang does not improve rankings in the traditional sense of pushing pages higher in results. What it does is ensure each page competes in the correct language and regional SERP rather than being treated as duplicate content or competing against its own translated variants. For international sites, this distinction is significant: a page ranking first in the wrong market generates no commercial value, and pages competing against each other split the authority that should consolidate on one.

The practical SEO benefits:

  • Preventing duplicate content problems across languages and regions. Without hreflang, Google may identify your English (UK) and English (AU) pages as duplicates and consolidate them, potentially choosing the wrong version to index for each market.
  • Improving user experience by surfacing the correct language version. Users who receive content in their language are more likely to engage, convert, and return. This is a ranking signal in itself: lower bounce rates and longer dwell times are positive quality indicators.
  • Consolidating ranking signals per market rather than diluting them. When language variants link to one another correctly via hreflang, link equity and engagement signals consolidate onto the appropriate version per locale rather than spreading across all variants.

The error-rate context matters here. According to Ahrefs’ study of 374,756 domains, 67% of sites using hreflang have at least one implementation error. When hreflang tags are bidirectionally incomplete, point to non-canonical URLs, or use incorrect language codes, Google may ignore the entire cluster. This means the localisation investment, including translation, regional content adaptation, and development work, delivers no search benefit. Users in targeted markets continue to see the wrong language version. Getting the implementation right is not optional if international search visibility is a goal.

Hreflang Syntax and Code Structure

A standard hreflang tag uses the rel="alternate" attribute alongside the hreflang attribute and an absolute URL in the href field:

<link rel="alternate" hreflang="en-sg" href="https://example.com/en-sg/" />
<link rel="alternate" hreflang="en-au" href="https://example.com/en-au/" />

Three syntax rules apply without exception:

  1. Always use absolute URLs. The href attribute must include the full URL with protocol (https://). Relative URLs are not valid in hreflang tags and will be ignored.
  2. Include a self-referencing tag on every page. Each page must include a hreflang tag pointing to itself as one of its own alternates. A page that lists all its counterparts but omits itself from the cluster is in error.
  3. Return links are mandatory. If Page A references Page B in a hreflang tag, Page B must also reference Page A. This bidirectional requirement applies across every page in the cluster. Google validates these return links to confirm the hreflang relationship is intentional on both ends.

The x-default Tag

The hreflang="x-default" attribute specifies a fallback page for users whose language or region does not match any of the specific hreflang values declared. It is technically optional but recommended by Ahrefs and Yoast, particularly for global sites where some user segments will not match any declared variant.

A complete implementation for a Singapore-focused site with two language versions looks like this:

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

In this example, English speakers in Singapore are served /en-sg/, Chinese speakers in Singapore are served /zh-sg/, and all other users, including visitors from markets with no localised version, are served the root domain as the default. Without the x-default tag, users who do not match any specific code may receive no matched version or an arbitrary one.

How to Implement Hreflang Tags

There are three accepted methods for implementing hreflang tags. Choose one per page and use it consistently. Implementing hreflang in both the HTML <head> and the XML sitemap for the same pages creates conflicting signals and should be avoided.

Method 1: HTML <head> Tags

Place hreflang tags directly in the <head> section of each page:

<head>
  <link rel="alternate" hreflang="en-sg" href="https://example.com/en-sg/" />
  <link rel="alternate" hreflang="zh-sg" href="https://example.com/zh-sg/" />
  <link rel="alternate" hreflang="x-default" href="https://example.com/" />
</head>

Best for: Smaller sites or sites where you can modify page templates directly. The tags are present immediately when the page loads and do not depend on a separately submitted sitemap. On very large sites with hundreds of language variants and thousands of pages, the <head> section can become unwieldy as the list of alternates grows.

Method 2: XML Sitemap

Declare hreflang relationships within the XML sitemap using the xhtml:link element inside each <url> block:

<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
        xmlns:xhtml="http://www.w3.org/1999/xhtml">
  <url>
    <loc>https://example.com/en-sg/</loc>
    <xhtml:link rel="alternate" hreflang="en-sg" href="https://example.com/en-sg/"/>
    <xhtml:link rel="alternate" hreflang="zh-sg" href="https://example.com/zh-sg/"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://example.com/"/>
  </url>
</urlset>

Best for: Large sites with many pages and multiple language variants. Managing hreflang in one centralised sitemap file is considerably easier to maintain than updating hundreds of page templates individually. The sitemap must be submitted in Google Search Console for Google to process it. For most WordPress multilingual setups using Polylang or WPML, this is the most reliable and maintainable approach as the plugin handles sitemap generation automatically.

Method 3: HTTP Header

For non-HTML files such as PDFs, hreflang can be declared in the HTTP response header rather than in the document itself:

Link: <https://example.com/en-sg/document.pdf>; rel="alternate"; hreflang="en-sg",
      <https://example.com/zh-sg/document.pdf>; rel="alternate"; hreflang="zh-sg"

Best for: Non-HTML documents only. This method cannot be used for standard HTML pages. It is rarely needed unless your site hosts downloadable documents, white papers, or reports in multiple languages.

Hreflang and Canonical Tags: How They Work Together

Canonical tags and hreflang tags serve different purposes and both need to be implemented correctly on multilingual sites. Understanding how they interact prevents one of the most common and damaging hreflang errors.

A canonical tag tells Google which version of a page is the authoritative one for deduplication. A hreflang tag tells Google which language or regional version of a page to show each user. They operate at different levels and should be used together, not instead of each other.

The key rule is: hreflang tags must always point to the canonical URL of each page variant. If the canonical URL for your French version is /fr/page/, your hreflang tag for that variant must reference /fr/page/ exactly. Pointing hreflang to a non-canonical URL or a redirect means Google may treat it as an error and ignore the entire cluster.

A mistake I see regularly on audits is where every localised page has its canonical tag pointing back to the English “master” version, while hreflang tags simultaneously declare each locale as a distinct variant. This sends conflicting signals. Google’s deduplication logic (following the canonical to the English page) conflicts with the hreflang logic (serving each locale to its respective audience). The result is that Google typically resolves the conflict by ignoring the hreflang cluster.

The correct approach: each localised page should have a self-referencing canonical tag pointing to its own URL, not to another language version. Combined with hreflang, a correct French page implementation looks like this:

<!-- On the French page: -->
<link rel="canonical" href="https://example.com/fr/" />
<link rel="alternate" hreflang="fr" href="https://example.com/fr/" />
<link rel="alternate" hreflang="en" href="https://example.com/en/" />
<link rel="alternate" hreflang="x-default" href="https://example.com/" />

Each locale has its own self-referencing canonical. Each locale participates in the hreflang cluster. There is no conflict for Google to resolve. For a full breakdown of canonical tag implementation, see our guide on canonical tags.

Common Hreflang Mistakes to Avoid

Ahrefs’ study finding that 67% of domains have hreflang errors reflects how complex the implementation is in practice. These are the seven mistakes I see most frequently, and the fix for each.

  1. Missing return links (reciprocal tags). If Page A declares a hreflang relationship with Page B, Page B must declare the same relationship back to Page A. Without return links, Google may ignore the entire hreflang cluster. This is the single most common hreflang error. Every page in a cluster must reference every other page in that cluster, including itself.
    Fix: Audit every page in your hreflang cluster to confirm bidirectional linking. Screaming Frog’s hreflang report surfaces missing return links automatically.
  2. Incorrect language or country codes. Language codes must follow ISO 639-1 (two-letter codes: en, fr, de, not english or ENG). Country codes must follow ISO 3166-1 Alpha 2 (gb for the United Kingdom, not uk; au for Australia). Google accepts en-uk as a special case but this should not be relied upon.
    Fix: Cross-reference all codes against the official ISO lists before implementation. Aleyda Solis’ hreflang generator validates codes as you input them.
  3. Missing self-referencing hreflang tag. Every page in a hreflang cluster must include a tag pointing to itself. This error shows up in a significant share of problematic implementations caught on site audits.
    Fix: Make sure every page template outputs a hreflang tag for its own URL alongside the tags for alternate versions.
  4. Hreflang tags pointing to non-canonical URLs or redirects. If a URL in a hreflang tag returns a 301 redirect or points to a non-canonical version of a page, Google may ignore it. Hreflang tags must reference the final, canonical, 200-status URL.
    Fix: After any site migration or URL restructure, crawl all hreflang tags and validate the response codes for every referenced URL.
  5. Canonical tags pointing to a single master version across all locales. Setting all localised pages to canonical toward the English original while simultaneously declaring them as distinct hreflang variants creates a direct conflict. Google’s deduplication logic overrides the hreflang signal.
    Fix: Set self-referencing canonicals on every localised page. See the section above for the correct combined implementation.
  6. Mixing implementation methods on the same page. Declaring hreflang in both the HTML <head> and the XML sitemap for the same page creates conflicting signals. Use only one method per page, applied consistently across your site.
    Fix: Choose one implementation method per deployment and remove the other. Check with a crawl tool to confirm no duplication exists after changes.
  7. Not updating hreflang when pages are deleted or redirected. When a localised page is removed or its URL changes, references to it in every other language variant’s hreflang cluster become broken. These stale references accumulate on large multilingual sites and degrade the reliability of the entire hreflang implementation over time.
    Fix: Include hreflang validation in your site change workflow. Any page deletion or URL redirect should trigger a review of all hreflang tags referencing that page.

Free Tools for Hreflang Implementation and Auditing

Hreflang needs the right tools at two stages: generation, when creating the tags, and auditing, when validating that the implementation is working as intended.

Generation Tools

Aleyda Solis’ Hreflang Tags Generator (free): The most widely recommended free tool for generating hreflang tags. Enter your URLs and language and country codes, and it outputs ready-to-use HTML tags with syntax validation. Available at aleydasolis.com/en/international-seo-tools/hreflang-tags-generator/.

Moz XML Sitemap Tool (free): Upload a CSV of your URLs with their language and country codes, and the tool outputs a formatted XML sitemap with hreflang attributes ready for submission to Google Search Console.

Auditing Tools

Google Search Console (free): The International Targeting report in GSC shows detected hreflang errors, language targeting status, and which pages Google has processed from your hreflang implementation. This is the primary validation tool for confirming Google has read your tags correctly.

Screaming Frog SEO Spider (free up to 500 URLs): Crawls your site and reports on hreflang implementation across every page. Surfaces missing return links, invalid codes, and incomplete clusters. The hreflang tab in the output is one of the most useful single-tool hreflang reports available.

Ahrefs Webmaster Tools (free): The Site Audit feature flags nine types of hreflang errors across your domain, including missing return links, invalid codes, and tags pointing to redirects. Particularly useful for ongoing monitoring after initial implementation.

For complex multilingual sites with many language variants and a large page count, hreflang auditing at scale benefits from a structured technical SEO process rather than one-off tool checks. A professional technical SEO audit covers hreflang validation as part of a full site review.

Ongoing Hreflang Maintenance

Hreflang is not a one-time setup. On any site that regularly publishes, updates, or removes content, hreflang tags require ongoing attention. A correct implementation on day one will develop errors over time if maintenance is not part of the regular SEO workflow.

Two maintenance rules apply permanently:

When a page is deleted: Remove all hreflang references to that page from every other language variant that referenced it. If these references are left in place, they create broken hreflang clusters pointing to 404 pages, which Google will likely ignore entirely rather than partially honour.

When a page URL changes or is redirected: Update the hreflang URL on all counterpart pages to point to the new canonical URL. Hreflang tags pointing to 301-redirected URLs are treated as errors and may cause Google to discount the cluster.

The practical approach is to include hreflang validation in your quarterly technical SEO audit. Use Google Search Console’s International Targeting report or run a Screaming Frog crawl focused on hreflang output after any significant site change, including content migrations, URL restructures, or plugin updates that affect sitemap generation.

For international sites managing ongoing hreflang maintenance across multiple markets, our technical SEO service includes structured hreflang maintenance reviews to keep clusters clean as the site evolves.

Frequently Asked Questions

What is the difference between hreflang and canonical tags?

Canonical tags tell Google which version of a page is the authoritative one when duplicate or near-duplicate content exists at multiple URLs. Hreflang tags tell Google which language or regional version of a page to serve to users in specific locales. They serve different purposes and should both be implemented on multilingual sites. Hreflang tags must point to canonical URLs, and each localised page should have a self-referencing canonical rather than a canonical pointing to another language version.

Does hreflang work on Bing?

No. Hreflang is supported by Google and Yandex only. Bing uses a different signal for language targeting: the content-language meta tag, for example <meta http-equiv="content-language" content="en-sg">. If Bing traffic matters to your international strategy, implementing hreflang alone is not sufficient. You will need to add content-language meta tags separately to make sure Bing serves the correct language version of your pages.

Do I need hreflang if I only have one language on my site?

No. If your site has a single language targeting a single region, hreflang adds no benefit and introduces technical complexity with nothing to gain. Hreflang is only relevant when you have content in multiple languages or content in the same language tailored for different regional audiences, such as region-specific pricing, currency, or regulations. A Singapore SME with one English site serving Singapore does not need hreflang.

What happens if my hreflang tags are wrong?

If hreflang tags contain errors, including missing return links, incorrect language codes, tags pointing to redirects, or canonical conflicts, Google may ignore the entire hreflang cluster rather than attempt to interpret a partial implementation. The consequence is that your localisation investment delivers no search benefit: users in targeted markets continue to see the wrong language version, and your translated pages may be treated as duplicate content competing against each other rather than serving distinct regional audiences.

How do I check if my hreflang tags are working?

Use Google Search Console’s International Targeting report to see which hreflang tags Google has detected and whether any errors are flagged. Screaming Frog’s hreflang tab (free up to 500 URLs) surfaces missing return links, invalid codes, and broken clusters across your entire site. Ahrefs Webmaster Tools’ Site Audit checks nine hreflang error types. For a quick single-page check, use the URL Inspection tool in Google Search Console to see how Google has processed a specific page’s hreflang declarations.

What is the x-default hreflang tag?

The hreflang="x-default" tag specifies a fallback page for users whose language or region does not match any of the specific hreflang values declared on the site. For example, if you have English and Mandarin versions targeting Singapore but a user arrives from France where you have no localised content, the x-default page is what they receive. It is technically optional but worth including to make sure all users, regardless of location, are served a page rather than receiving no matched result.

Hreflang Implementation: Getting It Right From the Start

Hreflang is one of the few technical SEO implementations where a partial or flawed setup can be worse than no setup at all. An ignored hreflang cluster means your localisation investment generates no search benefit. A canonical conflict compounds the problem by simultaneously signalling to Google that your localised pages are duplicates of the master version.

A solid hreflang implementation needs the correct initial architecture, validated tags across all three syntax rules, and ongoing maintenance as content evolves. If you are expanding into new markets or auditing an existing multilingual site, our international SEO and technical SEO teams cover hreflang strategy, implementation, and auditing as a core part of every international campaign. For a broader overview of what an SEO programme includes, you can also explore our SEO services in Singapore.

Book a free Revenue Growth Strategy Session, valued at SGD 2,000, to get a personalised assessment of your international SEO setup and identify any hreflang issues affecting your current search visibility.

Suggested Articles