# hreflang: how do you connect the English and French versions of a page?

> hreflang links the English and French versions of a page so Google shows the right one. en-CA and fr-CA codes, return links, x-default and common mistakes.

Updated on October 15, 2026 · https://app.pilotiko.com/en/glossary/hreflang

hreflang is an annotation that tells Google about other language or regional versions of the same page, such as en-CA and fr-CA. Every version has to list itself and all the others; if two pages do not point to each other, Google may ignore the annotations altogether.

## In short
- Three ways to declare it: link tags in the head, HTTP headers or the sitemap.
- Language code in ISO 639-1, optional region in ISO 3166-1 alpha-2.
- Links must be reciprocal: A to B and B to A.
- x-default names the fallback page for everyone else.

## What does hreflang do?

When a page exists in English and French, Google has to decide which one to show a given searcher. hreflang annotations tell it about the language and regional variants of the same page [1].

A common misunderstanding: Google says it does not use hreflang or the HTML lang attribute to detect the language of a page; it works that out with its own algorithms [1]. hreflang connects versions, it does not declare what language the text is in.

## How is hreflang declared?

| Method | Where it goes | Good fit |
|---|---|---|
| link rel=alternate tags | In the head of every HTML page | Brochure site with a few dozen pages |
| HTTP headers | In the server response | Bilingual PDF spec sheets |
| Sitemap | In the XML sitemap, URL by URL | Larger site run by a tool that builds the sitemap |

Source: Google Search Central [1]. Alternate URLs must be fully qualified, including https://.

## Which language codes make sense in Canada?

The language code follows ISO 639-1 (en, fr) and can be followed by an ISO 3166-1 alpha-2 region code (CA). A region on its own is not valid, and codes reserved for something else, such as EU or UN, are ignored by Google [1].

The W3C actually uses fr-CA as its example tag for French as used in Canada. Its golden rule is to keep tags as short as possible and only add a region when it adds useful distinction [2]. A site that only targets Canada can use en-CA and fr-CA; one that also sells into the US may want en-CA and en-US kept apart.

## How many annotations does a bilingual site carry?

**Calculation: a bilingual plumbing site with 45 pages per language**

- English pages : 45
- French pages : 45
- Annotations per page (en-CA, fr-CA, x-default) : 3
- Total annotations (90 pages × 3) : 270
- Pairs that must point back to each other : 45
- **= 270 annotations to keep in sync; one missing French page breaks its pair and the tags may be ignored.**

## What is x-default for?

The x-default value names the page to show when none of your declared languages match the visitor's browser settings. Google suggests it especially for language selector pages or homepages that redirect automatically [1].

For a Canadian service business, English or French can serve as the default depending on the market. The point is to declare the choice clearly rather than leave it to chance.

## How do hreflang and canonical tags fit together?

When you use hreflang, Google asks you to specify a canonical page in the same language [3]. So the French page should not name the English page as its [canonical tag](https://app.pilotiko.com/en/glossary/canonical-tag): each version points to itself, and hreflang ties them together.

## What hreflang mistakes are common?

- Missing return links: the English page points to the French one but not the other way round, so Google ignores the tags [1].
- Writing CA on its own, or inventing codes like en-ON: a region alone is invalid, and provinces are not ISO 3166-1 country codes.
- Using relative URLs (/fr/…) instead of fully qualified ones.
- Putting the tags anywhere other than the page head.
- Machine-translating a page without review; hreflang cannot fix a poor translation.

## Does Pilotiko handle hreflang?

hreflang management is not an advertised Pilotiko feature for client websites. What is available: building and hosting your site, its [XML sitemap](https://app.pilotiko.com/en/glossary/xml-sitemap), [structured data](https://app.pilotiko.com/en/glossary/structured-data) and an audit of your current site. If your site is bilingual, check the annotations yourself; they matter for [local SEO](https://app.pilotiko.com/en/glossary/local-seo) in bilingual markets and for [search engine optimization](https://app.pilotiko.com/en/glossary/seo) generally.

## Frequently asked questions

### Is hreflang required for a bilingual site?

No, but it helps Google show each person the right version. Without it, an English-speaking customer may land on the French page or vice versa.

### Should I use en-CA or just en?

If you only have one English version, en is usually enough under the W3C's keep-it-short rule. en-CA becomes useful when you also have, say, a US-specific English page.

### Can I use a province in the code, like en-ON?

Not for hreflang. The region part must be an ISO 3166-1 alpha-2 country code such as CA, and provinces do not have one.

### What happens if the links are not reciprocal?

Google says that if two pages do not both point to each other, the tags are ignored. Each version must list all the others and itself.

### Do the versions have to be on the same domain?

No. Google accepts alternate URLs on different domains, as long as they are fully qualified and the links go both ways.

### Does hreflang translate my URLs or content?

No. It links existing pages; it translates nothing. A French-language URL for the French page is still clearer for visitors.

## Sources

1. Google Search Central, « Tell Google about localized versions of your page », https://developers.google.com/search/docs/specialty/international/localized-versions (accessed on 2026-10-15)
2. W3C Internationalization, « Language tags in HTML and XML », https://www.w3.org/International/articles/language-tags/ (accessed on 2026-10-15)
3. Google Search Central, « How to specify a canonical URL with rel="canonical" and other methods », https://developers.google.com/search/docs/crawling-indexing/consolidate-duplicate-urls (accessed on 2026-10-15)
