Hreflang maps equivalent pages for different languages or regions. Before generating tags, list each real page and its final URL in a page-pair table. That catches missing translations and stops a homepage from becoming the supposed fallback for unrelated product pages. The tags cannot translate a page or repair a broken canonical.
One Reddit user found missing reciprocal tags after every page’s x-default pointed to the same homepage. Another asked whether x-default was required after a multilingual plugin produced more errors. The questions point to two separate checks: return links and the fallback destination. Google’s localized-versions documentation describes reciprocal alternates and recommends x-default for a useful fallback. It does not require one on every page.
Which Pages Belong in the Same Hreflang Group?
Group pages that serve the same task for different audiences. An English shipping guide and its French translation can be alternates. A French returns policy is not the alternate of an English shipping guide simply because both occupy the same position in a menu. Match page purpose first, then URL. A spreadsheet with one row per page group and one column per locale makes missing translations visible before code is generated.
For a fictional example, suppose https://example.com/en/shipping/, https://example.com/fr/livraison/, and https://example.com/de/versand/ explain the same shipping policy in English, French, and German. Those three URLs can form one group. If the German guide has not been written, do not fill its cell with /de/ or a different German article. Leave that alternate out until the equivalent page exists.
Google says it can discover alternate language versions without markup, but explicit annotations help it choose the appropriate version in Search. It determines a page’s language from its content rather than relying on hreflang or the HTML lang attribute as a language detector. Publish useful localized main content. A translated header around English article text does not make a full French edition.
Which Language and Region Codes Should You Use?
Use a language code such as en, fr, or de. Add a region only when the page is targeted to a specific regional audience, as in en-GB or fr-CA. The language comes first. en-UK and a region-only code are invalid for this purpose. Google lists the supported format in its hreflang guidelines. A country code alone does not identify the language of the page.
Do not create regional variants solely to occupy more results. An English US page and an English UK page should have a reason to differ, such as pricing, availability, regulations, or wording that changes a reader’s decision. If the content is essentially identical, canonicalization and alternate signals need careful review. The international market guide covers the decision to localize before the technical mapping begins.
Keep the public URL stable and fully qualified in the annotation. Include https://, the correct host, path, and final trailing slash. A relative link such as /fr/livraison/ is not the required fully qualified alternate URL. If a page has moved, update the group to the destination instead of relying on a redirect.
What Does a Reciprocal HTML Set Look Like?
Each page in the group lists itself and the other pages. In the fictional shipping example, the English, French, and German pages should each contain the same three alternates in the HTML head. For the English page, the set is:
<link rel="alternate" hreflang="en" href="https://example.com/en/shipping/" />
<link rel="alternate" hreflang="fr" href="https://example.com/fr/livraison/" />
<link rel="alternate" hreflang="de" href="https://example.com/de/versand/" />
The French page needs the same set, including its own French URL. The German page does too. Google says that if two pages do not point to each other, it may ignore that pair’s annotations. It also allows partial groups when a complete set is hard to maintain, as long as the pages you want paired link bidirectionally. That is more precise than saying one missing return tag destroys every other valid pair.
Generate tags from one group record rather than typing each template by hand. The Hreflang Generator creates a starting reciprocal set and XML sitemap markup. It cannot verify that the URLs exist, that the pages are equivalent, or that a live site actually serves the output. Those are release checks.
When Should You Add x-default?
x-default can point to a fallback for readers whose language or region does not match a listed edition. A language selector is one common use. Google recommends considering it for unmatched audiences, especially on selector or auto-redirecting home pages. It is not a command to send every unrecognized visitor to the site’s homepage, and it is not mandatory on every article group.
Choose a fallback that makes sense for the specific page group. If a shipping guide has a general English edition suitable for unmatched readers, that page could serve as the fallback. If the site has a dedicated language selector for that guide, use it only if it helps a reader reach the right content. Do not point every product and guide to the global homepage merely because a tool asks for one fallback URL. A crawler then sees a page in the group that does not answer the same task.
If you add x-default to a group, include it consistently in each version’s set. Record why that fallback was chosen. If there is no useful fallback, omit the value rather than inventing one. A warning from a third-party crawler is a reason to inspect the group, not proof that Google requires an x-default link on that page.
How Do Canonical Tags and Hreflang Work Together?
Check each alternate’s HTTP response and canonical before launch. A French URL that redirects to English cannot serve French searchers. A noindex directive or crawl block can prevent it from being a useful indexed alternate. If the French page declares English as canonical, Google may consolidate the pages in a way that defeats the intended language choice. For distinct translated pages, a self-referencing canonical on each final URL is usually the clear starting point.
Regional pages in the same language need more judgment. Google advises choosing a preferred version for duplicate content and using canonical and hreflang consistently in its multiregional guidance. Do not apply a blanket “all locales self-canonical” rule without inspecting whether two URLs are truly duplicates. The aim is to give Google a coherent representative page and a coherent audience map.
The URL in an annotation should be the final canonical version for that locale. Check protocol, host, trailing slash, query parameters, and redirect status. If a migration changed the French path, update every group entry that points to it. A generated set can be perfectly symmetrical and still be wrong because one target now returns a redirect or 404.
Should You Use HTML, HTTP Headers, or an XML Sitemap?
Google supports three equivalent methods: HTML links in the head, HTTP Link headers, and XML sitemap entries. Choose one method that your publishing system can maintain reliably. Google says using all three brings no Search benefit and can make the mapping harder to manage. HTML is easy to inspect on a small site. Headers can cover non-HTML files, such as PDFs. Sitemap annotations can help a large catalog that already generates locale pairs from structured data.
Whatever method you choose, the page-group logic stays the same. Each version must identify itself and the other versions, with fully qualified URLs. An XML sitemap still needs the same reciprocal relationship in its entries. Do not assume that submitting a sitemap repairs a broken page mapping. The generator can format output, but your source data decides whether the map is correct.
Avoid maintaining a plugin’s head tags and a separate hand-edited hreflang sitemap unless both are produced from the same source and audited. Two owners can disagree after a URL change. In the release record, note the system that generates the annotations and who updates a group when a translation launches or retires.
How Do You Audit the Live Launch?
Start with the URL matrix. For every row, request each live page and record its final status, canonical, indexability, language of main content, and emitted alternates. Compare the set on each page with the row. A small automated crawl can flag missing self-references, absent return links, duplicate codes, redirects, and targets outside the expected group. Review a sample by hand before trusting the tool’s summary.
Then test the user route. Can someone switch from the English shipping guide to the French guide and back? Does the link point to the equivalent page rather than the language homepage? Can a visitor change the choice without a forced location redirect? Hreflang helps Search select a result, while visible navigation helps readers after the click. Both need to work.
Search Console’s old International Targeting report is no longer available. Use URL Inspection and page performance by country for selected pages where data exists, plus a crawler or source check for the annotations. A country-level click pattern can raise a question, but it does not prove a tag failed. Record the exact inspected URL and crawl date. The technical SEO audit workflow can carry the response and canonical checks into the launch queue.
What Happens When a Locale Is Added or Removed?
Adding a language changes every existing page group that gains a translation. Update the source matrix, generate the new sets, and deploy all affected versions together when practical. If the German shipping guide launches later, the English and French pages must gain a German alternate, and the new German page must point back. A partial deployment can leave one-way pairs until the next release.
Removing a translation also needs a deliberate URL decision. If the old page has a close replacement, handle the redirect and update annotations to the final destination. If it has no replacement, remove it from the group and let the old URL return the response appropriate for retired content. Do not keep stale alternates just to preserve a complete-looking tag block.
Recheck a small sample after each release and after a site migration. A template change can remove the entire head block while the content pages still look fine. A URL migration can change the host or trailing slash in one locale only. The matrix gives you a fixed expected state against which to test the live output.
Frequently Asked Questions About Hreflang Implementation
Is x-default Required on Every Page?
No. Google recommends it for a useful fallback when none of the listed languages or regions match, especially for selector pages. Add it where the destination makes sense for that page group. Do not point every unrelated page to one homepage to satisfy a crawler warning.
Can I Put Hreflang Only on the Homepage?
That only maps homepage variants. Product, article, and guide groups need their own equivalent URLs if you want Search to understand those relationships. A global homepage set does not stand in for thousands of detail pages.
Does One Missing Return Tag Invalidate Every Locale?
Google may ignore a pair that does not link both ways, while still processing valid bidirectional pairs. Fix the missing return link and inspect the whole group for a shared template error. Do not assume every other pair failed without checking it.
Does Hreflang Translate or Index a Page?
No. It describes the relationship between localized URLs. Each target still needs accessible, useful content and a coherent canonical. Verify the page itself before troubleshooting the annotation.

