International SEO & Hreflang Template

Free editable International SEO & Hreflang Template. Copy, personalize, or download the Word .docx template from UNmiss.

Going international means more than translating pages. You need a clear URL strategy, accurate language-region targeting, and bidirectional hreflang tags that tell search engines which version to show each user. This template walks you through structure, mapping, implementation, and QA so your locales rank without competing against each other.

6 ready-to-use variants

URL Structure for International

Choose how to host country and language versions before you build anything.

Pick a URL pattern for [Brand]

Your international URL structure is hard to change later, so decide deliberately. There are three common options, each with trade-offs in cost, signal strength, and maintenance.

  • ccTLD: [example.de], [example.fr]: strongest geo signal, clear to users, but expensive and separate authority per domain.
  • Subdirectory: [example.com/de/], [example.com/fr/]: consolidates authority on one domain, easiest to maintain, recommended for most teams.
  • Subdomain: [de.example.com]: flexible hosting, but signals can be treated as more separate than subdirectories.

Pick one approach and apply it consistently across every locale. Mixing patterns confuses crawlers and complicates hreflang.


Document your decision and the rationale below so future contributors do not improvise.

  • Chosen structure: [ccTLD / subdirectory / subdomain]
  • Reason: [budget, team size, geo priority]
  • Locales in scope: [list]

Hreflang Mapping Plan

Define every language-region pair before writing a single tag.

Map your locales for [Brand]

Before implementing anything, build a master list of every locale you serve. Get the codes right: hreflang uses an ISO 639-1 language code (e.g. en, es, fr), optionally followed by an ISO 3166-1 Alpha-2 region code (e.g. US, MX, GB). Language comes first, region second.

  • en: any English speaker (no region) → [URL]
  • en-US: English, United States → [URL]
  • en-GB: English, United Kingdom → [URL]
  • es-MX: Spanish, Mexico → [URL]
  • x-default: fallback for unmatched users → [URL]

Use a region only when you have genuinely distinct content for it. If your Spanish page is identical for every country, target es alone rather than inventing es-MX, es-AR, and es-ES.


Record each pair and its target page so implementation is mechanical.

  • Locale: [lang or lang-region]
  • Target URL: [absolute https URL]

Hreflang Implementation Rules

Apply the non-negotiable technical rules so the tags actually work.

Implement hreflang correctly for [Brand]

Hreflang only works when a few rules are all satisfied at once. Break one and search engines ignore the entire set.

  1. Self-reference: every page must list itself among its hreflang annotations.
  2. Return tags: annotations must be bidirectional. If page A points to page B, page B must point back to page A.
  3. x-default: include a fallback entry for users whose language or region you have not explicitly targeted.
  4. Absolute URLs: always use full https URLs, not relative paths.

Choose one delivery method and do not mix them: the HTML head (link rel='alternate'), HTTP headers (useful for PDFs and non-HTML files), or the XML sitemap.


A minimal valid set for one locale looks like this:

  • hreflang: en-us → [URL for US page]
  • hreflang: en-gb → [URL for UK page]
  • hreflang: x-default → [fallback URL]

Remember: hreflang signals which version to show, not a ranking boost.

Avoid Duplicate Content Across Locales

Use canonical and hreflang together so locales do not cannibalize each other.

Keep locales from competing on [Brand]

Near-identical pages across regions (for example en-US and en-GB) can look like duplicate content. Hreflang and canonical solve this together, but only if you configure both correctly.

  1. Each locale page should have a self-referencing canonical pointing to itself.
  2. Do not canonical every locale to a single master URL: that tells search engines to drop your other versions.
  3. Pair the self-canonical with a complete, bidirectional hreflang set so engines know the pages are alternates, not duplicates.

The combination signals: these pages are equivalent versions for different audiences, each one valid in its own right.


Verify per page before publishing:

  • canonical: points to [this same locale URL]
  • hreflang self: lists [this locale]
  • hreflang others: all sibling locales present [yes / no]
  • x-default: present [yes / no]

If canonical and hreflang ever point to different URLs for the same page, fix it. Conflicting signals get ignored.

Localization vs Translation

Ship genuinely local pages, not machine-translated copies.

Localize, do not just translate, for [Brand]

Raw machine translation produces pages that read awkwardly and convert poorly. True localization adapts the whole experience to the market, which also strengthens the signal that each locale deserves its own page.

  • Currency & pricing: show local currency, taxes, and payment methods.
  • Language nuance: have a native speaker review tone, idioms, and terminology.
  • Units & formats: adapt dates, measurements, addresses, and phone formats.
  • Local intent: research keywords in-market; a literal translation rarely matches how locals actually search.
  • Trust signals: local contact details, shipping, returns, and legal pages.

Keep your hreflang language code aligned with the actual content language. Tagging a page es-MX while serving English text sends a mismatched signal.


Localization checklist per locale:

  • Currency adapted: [yes / no]
  • Native review done: [reviewer]
  • Local keywords researched: [yes / no]

Hreflang QA & Common Errors

Audit your implementation and catch the mistakes that silently break it.

QA hreflang on [Brand]

Most hreflang failures are silent: the tags exist but get ignored. Run this audit after launch and after any locale change.

  1. Missing return tags: confirm every annotation is reciprocated by the page it points to.
  2. No self-reference: each page must include itself.
  3. Wrong codes: check for invalid region codes: use country codes like GB, not language-style codes; UK is not valid.
  4. Relative URLs: replace any relative paths with absolute https URLs.
  5. Canonical conflict: ensure canonical and hreflang target the same URL per page.
  6. Missing x-default: add the fallback entry.

Use a crawler that reports hreflang reciprocity and your search console's international targeting report to validate at scale.


Log issues found and their status:

  • Error: [description]
  • Affected locales: [list]
  • Status: [open / fixed]

How to use this template

  1. List every market and language you serve, then write each as a language code or language-region pair (e.g. en, en-US, es-MX).
  2. Choose one URL structure for all locales: ccTLD, subdirectory, or subdomain, and apply it consistently.
  3. Build a master mapping table of every locale to its absolute https target URL.
  4. Pick a single hreflang delivery method: HTML head link tags, HTTP headers, or the XML sitemap.
  5. Add a self-referencing hreflang entry on every page so each locale lists itself.
  6. Add return tags so every annotation is bidirectional, plus an x-default entry for unmatched users.
  7. Set a self-referencing canonical on each locale page and confirm it matches the hreflang URL for that page.
  8. Run a crawler and your search console international report to verify reciprocity, valid codes, and absolute URLs.

Pro tips

  • Use a region code only when content genuinely differs by country; otherwise target the language alone (es, not es-MX).
  • Hreflang tells search engines which version to show a user, it is not a ranking boost, so do not expect rankings to jump.
  • Never canonical all locales to one master URL; each page should canonical to itself and rely on hreflang to link the set.
  • Keep the hreflang language code aligned with the actual content language, and localize currency and intent rather than machine-translating.

Frequently asked questions

What is the correct format for an hreflang value?

Use an ISO 639-1 language code first (e.g. en, es, fr), optionally followed by an ISO 3166-1 Alpha-2 region code (e.g. en-US, es-MX). The language code is required; the region is optional and should only be added when content differs by country.

Do I need a return tag for every page?

Yes. Hreflang must be bidirectional. If page A references page B as an alternate, page B must reference page A in return. Missing return tags cause search engines to ignore the affected annotations, so every page in a set must point to every other page, including itself.

What does x-default do and is it required?

x-default specifies the fallback page for users whose language or region you have not explicitly targeted, such as a language selector or a default international page. It is not strictly mandatory, but it is strongly recommended so unmatched visitors land on a sensible default rather than the wrong locale.

How should I combine canonical tags with hreflang?

Each locale page should have a self-referencing canonical pointing to itself, paired with a complete bidirectional hreflang set. Do not canonical every locale to a single master URL, as that tells search engines to drop your other versions. Canonical and hreflang must target the same URL for each page.

Where should I place hreflang tags?

You can place hreflang in the HTML head as link rel='alternate' tags, in HTTP headers (useful for non-HTML files like PDFs), or in your XML sitemap. Choose one method and use it consistently; do not implement the same set in multiple places, which can create conflicts.

Does hreflang improve my rankings?

No. Hreflang is a signal that helps search engines serve the right language or regional version to each user; it does not boost rankings directly. Its value is better targeting and avoiding duplicate-content confusion across locales, which can improve relevance and click-through but is not a ranking factor on its own.