
Operations
Part of International SEO: the questions that matter
Common international SEO questions about hreflang pairs and canonical tags
Common international SEO questions answered for one locale pair: hreflang codes, reciprocal entries, x-default, self-referencing canonicals, and ignored tags.
What to take away
- An hreflang value pairs a language code with an optional country code, and every entry needs a fully qualified URL.
- Two locale pages must point at each other, because a one-way annotation is incomplete.
- A translated page keeps its own canonical, so the annotations and the canonicals have to agree.
- Every URL in the set must be indexable, or the annotation points at nothing.
Most hreflang trouble comes from small mismatches between annotations, URLs, and canonicals on a single pair of pages. These answers follow one pair, Canadian French and Canadian English, from the choice of code to the final re-check.
Do language and country both belong in the value?
Only when the country changes what the page offers. A multilingual site offers more than one language, and a multi-regional site targets users in different countries or regions. A site can be both, such as English and French for Canada plus English for the United States.
Multilingual vs Multi-Regional
Multilingual
- Target
- Language
- Example
- English and French
- Site scope
- More than one language
Multi-Regional
- Target
- Country or region
- Example
- Canada and United States
- Site scope
- Different countries or regions
Both
- Target
- Language and region
- Example
- French Canada plus English US
- Site scope
- Overlapping language and country
The value records that choice. Language and country codes follow ISO 639-1 for the language and ISO 3166-1 alpha-2 for the country, joined with a hyphen, so fr-CA is French for Canada and en-CA is English for Canada.
The Library of Congress code list labels ISO 639-1 as the alpha-2 code for languages. Canada has two official languages, a point the official languages page of the Government of Canada addresses, which is why French and English pairs are the example here.
Where can the annotations live?
Google Search Central documents three implementation methods in its guidance on localized versions of a page: link elements in the HTML head, an HTTP Link header, and entries in an XML sitemap. All three express the same thing, a set of alternate URLs, each tagged with its language or region code.
Here is the same fr-CA entry written in each method, using the placeholder domain www.example.com:
- Heada link element with rel set to alternate, hreflang set to fr-CA, and href set to https://www.example.com/fr-ca/.
- HTTP headera header named Link whose value is the URL https://www.example.com/fr-ca/ inside angle brackets, followed by rel="alternate"; hreflang="fr-CA".
- Sitemapinside the loc entry for the page, an xhtml:link element with rel set to alternate, hreflang set to fr-CA, and href set to https://www.example.com/fr-ca/. The loc value itself is the page's own URL, for example https://www.example.com/en-ca/.
Head tags work for a small set. When the set grows, an XML sitemap is easier to maintain and audit than tags in every head. Wider market questions, such as readiness and ownership, belong to the international SEO decision, not to the markup.
What does a reciprocal pair look like?
Each page lists both versions with fully qualified URLs, itself included. The table shows the pair for a Canadian site. Paths sit on the placeholder domain https://www.example.com, so the Canadian French page is https://www.example.com/fr-ca/, the Canadian English page is https://www.example.com/en-ca/, and the fallback is https://www.example.com/. Each entry is written out in full.
| Page | fr-CA entry points to | en-CA entry points to | x-default entry points to |
|---|---|---|---|
Canadian French, /fr-ca/ | /fr-ca/ (itself) | /en-ca/ | / (site root) |
Canadian English, /en-ca/ | /fr-ca/ | /en-ca/ (itself) | / (site root) |
In the head of the Canadian French page, the full set is three link elements, each with rel="alternate":
- hreflang="fr-CA" with href="https://www.example.com/fr-ca/"
- hreflang="en-CA" with href="https://www.example.com/en-ca/"
- hreflang="x-default" with href="https://www.example.com/"
The Canadian English page carries the same three entries, so the relationship is reciprocal. The x-default entry marks the fallback version for users whose language and region are not listed. The pair then follows five steps:
- Choose the language and country code for each page.
- Write the full URL for every version, including the page itself.
- Put the same set of entries on every page in the pair.
- Add the x-default fallback.
- Load each URL and confirm it can be indexed.
Federal and provincial sites in Canada raise their own bilingual hreflang questions on top of this pair.
Why would Google ignore a pair?
Usually because a URL in the set cannot be indexed, or its canonical disagrees. A locale page blocked in robots.txt or returning an error gives the annotation nothing to point at, and a conflicting canonical tag that names a different URL can cause Google to ignore the hreflang.
The annotation does not translate a page, create relevance, or make an inaccessible URL indexable. It is a signal, not a directive, so it cannot rescue thin or duplicated content, and support outside Google varies. Blocking and error problems sit among the common technical SEO mistakes.
Should all translations canonicalize to the source?
Usually not when each language page should remain searchable. A translated page generally uses its own canonical. The Canadian French page carries a canonical link element with href set to https://www.example.com/fr-ca/. It does not point at https://www.example.com/en-ca/ or at the site root.
Similar regional pages in the same language need deliberate canonical and equivalence treatment based on the intended indexable set. When one URL, say https://www.example.com/en/, serves the same English content to several regions, that URL keeps the self-referencing canonical and hreflang separates the regional audiences. Other canonical and indexing questions go beyond locale pairs.
Does every language need a separate URL?
Yes, if both versions should be found. Google says a site returning different content by the perceived country or preferred language of the visitor may not be fully crawled, because the default Googlebot IP addresses appear to be based in the USA.
Use distinct URLs, normal links, and a user-controlled switcher. Avoid forced redirection based on IP or assumed language, since location can be unreliable and travelers or multilingual users need choice. Suggest a locale and keep every supported URL accessible. Brands selling across the border feel this first.
How do you re-check the set after a change?
A new market, a platform migration, or a changed URL pattern can break reciprocity, so re-check the hreflang set and the canonical rule together rather than one tag at a time.
- Every URL in the set loads and can be indexed.
- Every page lists the same set, itself included.
- Each canonical points at its own page.
- The record of URL pattern, pairs, and canonical rule is current.
Segment Search Console with the Performance report's country filter and a page grouping that exposes the locale path. Country reflects where the searcher was, not which locale URL ranked. Set a review date and name the signal that would trigger an earlier check.
Common questions
Is hreflang required for every site?
No. Use it when separate URLs are genuine language or regional alternatives that should remain discoverable.
Does each page need to list itself?
Yes. The Canadian French page carries its own fr-CA entry as well as the en-CA one, and the English page does the same in reverse.
What if the canonical and the hreflang disagree?
A canonical that names a different URL than the one in the set can cause Google to ignore the hreflang, so fix the canonical first.
Can search country identify a user's language?
No. Country is a useful segment, but it does not establish language, nationality, intent, or the correct customer experience.







