Hreflang Tags for SaaS: The Complete International SEO Guide
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 have pages translated into different languages (English + Spanish + French)
- You have regional pricing pages with different currencies (en-US with USD, en-GB with GBP, en-IN with INR)
- You have content that's the same language but differs by country (e.g., different feature availability or compliance language by region)
- You're seeing Google serve the wrong regional page in search results
- You have a country selector or geo-redirect on your homepage
You don't need hreflang if:
- You have a single English site with no regional variations
- You're only targeting one country
- Your "international" content is identical across regions — same language, same pricing, same everything
Understanding Hreflang Language and Region Codes
Hreflang uses two-part codes from the ISO standards. Get these wrong and Google ignores all your tags.
| Code | Meaning | Use Case |
|---|---|---|
en | English — any region | Generic English content not tied to a specific country |
en-us | English — United States | US-specific content (USD pricing, .com) |
en-gb | English — United Kingdom | UK-specific content (GBP pricing, VAT, .co.uk) |
en-in | English — India | India-specific content (INR pricing, GST) |
en-au | English — Australia | AU-specific content (AUD pricing) |
en-sg | English — Singapore | SEA hub content (SGD pricing) |
es | Spanish — any region | Generic Spanish content |
es-mx | Spanish — Mexico | Mexico-specific Spanish content |
x-default | Fallback — no region match | Homepage 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.
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:
- Main homepage (if you geo-detect and redirect)
- Language selector page ("Choose your region")
- Generic English page (if you have one that serves everyone not in a specific region)
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:
- The US page must reference both the US page (
en-us) AND the UK page (en-gb) - The UK page must reference both the UK page (
en-gb) AND the US page (en-us)
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.
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:
- Custom code embed: Go to Page Settings → Custom Code → Head Code. Paste your hreflang tags manually for each page.
- Finsweet Client-First + CMS: Build a CMS collection for regional pages with hreflang URL fields. Use Webflow's embed component to output tags dynamically.
- Sitemap method: Skip HTML tags entirely and implement hreflang in your sitemap (covered below). This is often easier for Webflow sites.
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:
| Structure | Example | Pros | Cons |
|---|---|---|---|
| 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 &. 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:
- View source on each page: Confirm all hreflang tags appear in the
<head>section with the correct URLs and language codes. - Check return links manually: For each page in your set, verify it references all other pages in the set (including itself).
- Google Search Console: Go to Settings → International Targeting → Language tab. GSC reports hreflang errors with specific URLs and error types.
- Screaming Frog or Sitebulb: These crawlers extract and validate hreflang tags across your entire site, flagging missing return links, invalid codes, and broken URLs.
- Manual Google check: Search Google with
site:yoursite.comin incognito mode while using a VPN set to each target region. Confirm the correct regional page appears in results.
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:
- Make all regional pages accessible via direct URLs (no geo-redirect blocking)
- Use JavaScript geo-detection to offer a region switch to human users, but don't hard-redirect
- Implement hreflang across all regional pages
- Include all regional URLs in your sitemap
- 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:
autoseobot.com/pricing/→ US pricing (USD), global fallbackautoseobot.com/pricing/india/→ India pricing (INR + GST)autoseobot.com/pricing/uk/→ UK pricing (GBP + VAT)
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
- Hreflang tells Google which URL to serve in which language/region — essential if you have regional variants of the same page
- Every page in a hreflang set must link to every other page in the set (return link requirement)
- Always include
x-defaultas a fallback for users in non-targeted regions - Use correct ISO codes: ISO 639-1 for language, ISO 3166-1 alpha-2 for country
- Subdirectory URL structure is best for most SaaS companies expanding internationally
- Geo-detection redirects must not block Googlebot from crawling regional pages
- Verify implementation via Google Search Console's International Targeting report
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