🤖 AutoSEOBot
Technical SEO

Hreflang Tags for SaaS: The Complete International SEO Guide

April 15, 2026 · 11 min read

You built a SaaS product for the Indian market. It's working. Now you're expanding — US, UK, Southeast Asia. You set up regional pages, maybe translate your homepage, and assume Google will figure out the rest.

It won't. Without hreflang tags, Google has no idea which version of your site to show in which country. Your UK visitors see your US pricing page. Your Indian audience gets served your English-AU content. Google treats your regional pages as duplicate content and suppresses them entirely.

This guide covers exactly what hreflang tags are, when you need them, how to implement them correctly on Next.js and Webflow, and the 8 errors that silently break international SEO for SaaS companies.

What Are Hreflang Tags?

Hreflang is an HTML attribute that tells search engines which language and country a page targets. It's your way of saying: "These 4 URLs all cover the same topic, but each is intended for a different audience. Please serve the right one."

Here's the basic syntax:

<link rel="alternate" hreflang="en" href="https://example.com/page/" />
<link rel="alternate" hreflang="en-us" href="https://example.com/us/page/" />
<link rel="alternate" hreflang="en-gb" href="https://example.com/uk/page/" />
<link rel="alternate" hreflang="x-default" href="https://example.com/page/" />

Every page in the set must include all the tags — not just a reference to itself. If you have 4 regional versions of your pricing page, each of those 4 pages must have all 4 hreflang links in its head. This is called the return link requirement, and it's the most commonly violated hreflang rule.

When Do SaaS Companies Actually Need Hreflang?

Not every SaaS site needs hreflang. Here's when you do and don't.

You need hreflang if:

You don't need hreflang if:

For Indian SaaS companies going global: The most common scenario where hreflang matters is when you have an India pricing page (INR), a US pricing page (USD), and a global fallback. Three URLs, one topic — Google needs hreflang to serve the right one. Without it, the INR pricing page often gets suppressed as a duplicate.

Understanding Hreflang Language and Region Codes

Hreflang uses two-part codes from the ISO standards. Get these wrong and Google ignores all your tags.

CodeMeaningUse Case
enEnglish — any regionGeneric English content not tied to a specific country
en-usEnglish — United StatesUS-specific content (USD pricing, .com)
en-gbEnglish — United KingdomUK-specific content (GBP pricing, VAT, .co.uk)
en-inEnglish — IndiaIndia-specific content (INR pricing, GST)
en-auEnglish — AustraliaAU-specific content (AUD pricing)
en-sgEnglish — SingaporeSEA hub content (SGD pricing)
esSpanish — any regionGeneric Spanish content
es-mxSpanish — MexicoMexico-specific Spanish content
x-defaultFallback — no region matchHomepage or language selector (required)

The language code is the ISO 639-1 standard (two lowercase letters). The country code is the ISO 3166-1 alpha-2 standard (two uppercase letters, though Google is case-insensitive in practice). Together: language-COUNTRY or just language.

Common mistake: Using en-EN or en-UK. The correct codes are en (language) and GB (ISO country code for United Kingdom). It's en-gb, not en-uk. Google will reject invalid codes silently.

The x-default Tag — Don't Skip It

x-default is a special hreflang value that designates the fallback page — the URL Google should show when no other hreflang annotation matches the user's language or region. It's typically your:

Without x-default, Google has no defined fallback for users in markets you haven't explicitly targeted. A user in Canada or Nigeria lands in a void — Google picks arbitrarily.

<!-- All pages in the set include ALL of these -->
<link rel="alternate" hreflang="en-us" href="https://autoseobot.com/pricing/" />
<link rel="alternate" hreflang="en-gb" href="https://autoseobot.com/pricing/uk/" />
<link rel="alternate" hreflang="en-in" href="https://autoseobot.com/pricing/india/" />
<link rel="alternate" hreflang="x-default" href="https://autoseobot.com/pricing/" />

In this example, x-default points to the US pricing page — it's the global fallback. A visitor from Germany (no en-de defined) will see the US pricing page by default.

The Return Link Requirement (The Rule Everyone Breaks)

The most important hreflang rule, violated on nearly every site we audit:

Every page in a hreflang set must include hreflang tags pointing to ALL other pages in the set, including itself.

If you have a US page and a UK page:

This "confirmation" is how Google validates your hreflang set. If the return link is missing, Google treats your tags as potentially spam or misconfigured and ignores them entirely.

Why this breaks so often: Teams implement hreflang on the US page and forget to add the reciprocal tags on UK/IN pages. Or they add a new regional page later and don't update every existing page in the set. International pages are often managed by different teams — the return link falls through the cracks.

Implementation: HTML Head Tags (Most Common for SaaS)

Place hreflang tags in the <head> section of every page in the set.

Next.js (App Router)

// app/pricing/page.tsx (US default)
export const metadata = {
  alternates: {
    languages: {
      'en-US': '/pricing',
      'en-GB': '/pricing/uk',
      'en-IN': '/pricing/india',
      'x-default': '/pricing',
    },
  },
};

Next.js App Router generates hreflang link tags automatically from the alternates.languages metadata object. Each page in your set needs its own metadata with the full set of language alternates.

Next.js (Pages Router)

import Head from 'next/head';

export default function PricingUS() {
  return (
    <>
      <Head>
        <link rel="alternate" hreflang="en-us" href="https://autoseobot.com/pricing" />
        <link rel="alternate" hreflang="en-gb" href="https://autoseobot.com/pricing/uk" />
        <link rel="alternate" hreflang="en-in" href="https://autoseobot.com/pricing/india" />
        <link rel="alternate" hreflang="x-default" href="https://autoseobot.com/pricing" />
      </Head>
      {/* page content */}
    </>
  );
}

Webflow

Webflow doesn't have native hreflang support. You have three options:

  1. Custom code embed: Go to Page Settings → Custom Code → Head Code. Paste your hreflang tags manually for each page.
  2. Finsweet Client-First + CMS: Build a CMS collection for regional pages with hreflang URL fields. Use Webflow's embed component to output tags dynamically.
  3. Sitemap method: Skip HTML tags entirely and implement hreflang in your sitemap (covered below). This is often easier for Webflow sites.
Webflow limitation: The custom code embed approach requires manually updating every page in your hreflang set whenever you add a new regional variant. For sites with 10+ pages needing hreflang, the sitemap method scales better — one file to update instead of dozens of pages.

Implementation: Sitemap Method (Scales Best)

For sites with many regional pages, implement hreflang in your XML sitemap instead of in HTML head tags. Both methods are equally valid — Google treats them the same.

<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
        xmlns:xhtml="http://www.w3.org/1999/xhtml">

  <url>
    <loc>https://autoseobot.com/pricing/</loc>
    <xhtml:link rel="alternate" hreflang="en-us"
                href="https://autoseobot.com/pricing/" />
    <xhtml:link rel="alternate" hreflang="en-gb"
                href="https://autoseobot.com/pricing/uk/" />
    <xhtml:link rel="alternate" hreflang="en-in"
                href="https://autoseobot.com/pricing/india/" />
    <xhtml:link rel="alternate" hreflang="x-default"
                href="https://autoseobot.com/pricing/" />
  </url>

  <url>
    <loc>https://autoseobot.com/pricing/uk/</loc>
    <xhtml:link rel="alternate" hreflang="en-us"
                href="https://autoseobot.com/pricing/" />
    <xhtml:link rel="alternate" hreflang="en-gb"
                href="https://autoseobot.com/pricing/uk/" />
    <xhtml:link rel="alternate" hreflang="en-in"
                href="https://autoseobot.com/pricing/india/" />
    <xhtml:link rel="alternate" hreflang="x-default"
                href="https://autoseobot.com/pricing/" />
  </url>

</urlset>

Key requirement: just like the HTML method, every URL entry must include all the xhtml:link tags for all regional variants — including itself. The return link requirement applies here too.

URL Structure Options for International SaaS

Before implementing hreflang, you need to decide your URL structure. Four options exist, each with tradeoffs:

StructureExampleProsCons
ccTLD autoseobot.co.uk Strongest geographic signal, easy for users to identify Expensive, slow to build domain authority per TLD
Subdomain uk.autoseobot.com Easy to set up, separate crawl budget per region Domain authority doesn't pass between subdomains cleanly
Subdirectory autoseobot.com/uk/ Best for link equity consolidation, easiest to manage Slightly weaker geo signal than ccTLD
Parameters autoseobot.com?region=uk Easiest to implement technically Hard to manage with hreflang, harder for Google to crawl

For most SaaS companies: subdirectory is the recommended default. It consolidates all link equity to your root domain, is easy to implement in Next.js, and Google handles it well. ccTLD makes sense if you're committed to a specific market long-term and have the budget to build separate domain authority.

8 Hreflang Errors That Break International SEO

Error 1: Missing return links

Covered above — the most common error. Every page in a set must reference all other pages in the set. If Page A lists Page B but Page B doesn't list Page A, Google ignores the entire set.

Error 2: Wrong ISO codes

Using en-UK instead of en-GB, or zh when you mean zh-CN (Simplified Chinese) vs zh-TW (Traditional Chinese). Always use ISO 639-1 for language and ISO 3166-1 alpha-2 for country.

Error 3: Missing x-default

Always include an x-default fallback in every hreflang set. Without it, users in non-targeted regions have no defined destination.

Error 4: Hreflang pointing to redirected URLs

If your hreflang attribute points to a URL that 301-redirects to another URL, Google follows the redirect but may note the inconsistency. Always use the final canonical URL in your hreflang tags — the destination after all redirects.

Error 5: Hreflang on non-indexable pages

If a page has a noindex tag or is blocked in robots.txt, hreflang on that page is ignored. Make sure all pages in your hreflang sets are indexable.

Error 6: Inconsistent hreflang across methods

Implementing hreflang in both HTML head AND sitemap for the same pages creates conflicting signals. Pick one method per page and be consistent. Mixing methods across a site is fine — mixing them on the same page is not.

Error 7: URLs with unescaped characters in sitemap

If your regional URLs contain special characters (ampersands, spaces, non-ASCII characters), they must be properly escaped in XML. & becomes &amp;. Failing to escape breaks sitemap parsing.

Error 8: Using hreflang for URL variants that aren't truly different by language/region

Hreflang is for genuine language or regional content differences — not for A/B test variants, UTM-tracked pages, or seasonal landing pages. Using it incorrectly sends confusing signals to Google and can cause pages to compete against each other.

How to Audit Your Hreflang Implementation

After implementing hreflang, verify it with these checks:

  1. View source on each page: Confirm all hreflang tags appear in the <head> section with the correct URLs and language codes.
  2. Check return links manually: For each page in your set, verify it references all other pages in the set (including itself).
  3. Google Search Console: Go to Settings → International Targeting → Language tab. GSC reports hreflang errors with specific URLs and error types.
  4. Screaming Frog or Sitebulb: These crawlers extract and validate hreflang tags across your entire site, flagging missing return links, invalid codes, and broken URLs.
  5. Manual Google check: Search Google with site:yoursite.com in incognito mode while using a VPN set to each target region. Confirm the correct regional page appears in results.
Most hreflang errors only appear in Google Search Console after Googlebot has crawled your pages. Allow 1-2 weeks after implementation before checking GSC for hreflang reports. If errors appear, fix them and use the URL Inspection tool to request recrawl on affected pages.

Hreflang vs. Geolocation Redirects

Many SaaS sites use JavaScript to detect a user's location and redirect them to the regional version. This creates a problem for SEO: Googlebot typically crawls from US IP addresses and sees the US version of your site — it may never crawl your UK or India pages if they're only accessible via geo-redirect.

Hreflang alone doesn't fix this. Google needs to be able to crawl each regional page, not just see it referenced in tags.

The correct pattern for SaaS international SEO:

  1. Make all regional pages accessible via direct URLs (no geo-redirect blocking)
  2. Use JavaScript geo-detection to offer a region switch to human users, but don't hard-redirect
  3. Implement hreflang across all regional pages
  4. Include all regional URLs in your sitemap
  5. Verify Googlebot can crawl all regional pages via URL Inspection in Search Console

Real Example: Indian SaaS Expanding to US and UK

Let's say you're an Indian SaaS company (like many of our prospects — Leena AI, inFeedo, FinBox) launching US and UK versions of your pricing page. Here's the full implementation:

Your URL structure:

Hreflang tags on all three pages (identical set on each):

<link rel="alternate" hreflang="en-us"
      href="https://autoseobot.com/pricing/" />
<link rel="alternate" hreflang="en-in"
      href="https://autoseobot.com/pricing/india/" />
<link rel="alternate" hreflang="en-gb"
      href="https://autoseobot.com/pricing/uk/" />
<link rel="alternate" hreflang="x-default"
      href="https://autoseobot.com/pricing/" />

Result: A user searching "HR software pricing" from London sees your UK pricing page (GBP). A user searching the same from Bangalore sees your India pricing page (INR). No duplicate content confusion. No wrong-currency pricing served to the wrong market.

Without hreflang, Google would pick one of these three pages to rank globally and suppress the others as duplicates — and it would almost certainly pick the wrong one for most searches.

What About Bing?

Bing supports hreflang tags using the same syntax as Google. However, Bing also offers explicit geo-targeting in Bing Webmaster Tools (Country/Region Targeting setting), which you can use alongside hreflang for additional signal reinforcement in Bing's index. For SaaS companies, Google traffic dominates — implement hreflang for Google first, then verify Bing Webmaster Tools.

Key Takeaways

Frequently Asked Questions

What is an hreflang tag and when do I need it?

An hreflang tag is an HTML attribute that tells search engines which language and/or country a page targets. You need it when you have multiple versions of the same content targeting different languages or regions — for example, an English version for the US and a localized version for India or the UK. Without hreflang, Google may serve the wrong version in the wrong country, or treat your regional pages as duplicate content.

What is x-default in hreflang?

x-default is a special hreflang value that designates the fallback page — the version Google should show when no other hreflang annotation matches a user's language or region. It's typically your main homepage or a language-selector page. Always include x-default in your hreflang set; without it, Google has no defined fallback for users in unsupported regions.

Does hreflang affect Google rankings?

Hreflang doesn't directly boost rankings — it tells Google which URL to show in which region, so the right page gets the ranking signals for the right market. Incorrect hreflang means the wrong page gets served to the wrong users, reducing CTR and wasting crawl budget on international pages. Correct hreflang is foundational for any SaaS expanding internationally.

Should I use hreflang in the HTML head, HTTP header, or sitemap?

All three are valid. HTML head tags are easiest to implement and verify; HTTP headers work for non-HTML files; sitemap implementation scales best for large sites. Most SaaS companies use HTML head tags for small-to-medium sites and sitemap implementation when managing hundreds of localized pages. Choose one method and be consistent — never mix methods on the same pages.

What happens if my hreflang tags have errors?

Hreflang errors don't cause penalties — they cause Google to ignore the tags entirely and make its own decision about which page to show. Common errors: missing return links, incorrect ISO language codes, broken URLs in hreflang attributes, and missing x-default. Google Search Console reports hreflang errors in the International Targeting section.

Do I need hreflang if I only have an English site targeting multiple English-speaking countries?

Yes — if you have genuinely different content for en-US, en-GB, and en-AU (different pricing, different feature availability, different compliance language), hreflang helps Google serve the right version. If your content is identical across all English-speaking markets, hreflang adds no value. The test: if seeing the wrong regional page would confuse or frustrate a user, you need hreflang.

Expanding internationally? We'll audit your hreflang setup.

Our free SEO audit checks hreflang implementation, return links, URL structure, and international targeting — with a prioritized fix list so you know exactly what to do first.

Get Your Free Technical Audit