
SEO
How to Structure a Bilingual English–French Website for SEO
Separate URLs, hreflang that actually works and a language switcher that doesn’t strand visitors — following Google’s guidance on localized versions.
- Give each language its own indexable URL — for example /en/… and /fr/… — instead of swapping text on a single page.
- Connect equivalents with hreflang. Google says the annotations must be reciprocal and each version must list itself, or they are ignored.
- Google offers three equivalent methods — HTML tags, HTTP headers or the sitemap. Pick one and keep it consistent.
- Only link pages that are real translations; if a page has no equivalent, leave that language out instead of pointing at something else.
A site for Morocco and the GCC often needs both French and English. A bilingual site can serve both audiences — but only if search engines can tell which page is meant for whom, and visitors can move between languages without landing on the wrong page.
This article covers the structure we recommend. The technical details come from Google’s documentation on localized versions of your pages; the sources are listed at the end.
One language, one URL
The simplest structure for search is a separate URL per language, with the whole page written in that language. Google doesn’t prescribe a URL structure: its own examples use subdomains (such as en-gb.example.com) and subdirectories (such as /en-gb/), and alternate versions don’t even have to share a domain. For most small and medium sites we recommend language folders — /en/ and /fr/.
Keep each indexable page in one language, and avoid showing different languages at the same URL depending on who is asking: a crawler only ever sees one of them.
Tell Google which pages are equivalents
hreflang annotations tell Google that two URLs are the same page in different languages. Google lists three ways to provide them — link tags in the page HTML, HTTP headers, or your XML sitemap — and says they are equivalent from its perspective. Using more than one brings no benefit and is harder to maintain.
- Every version lists all versions, including itself.
- Annotations must be reciprocal: if page A points to page B, B must point back to A. Google says that if two pages don’t both point to each other, the tags will be ignored.
- Use ISO language codes. fr and en are enough; add a region code such as fr-MA only if you really have separate content per country. A country code on its own is invalid.
- Add x-default for visitors whose language doesn’t match any version — Google designed it for language-selector pages.
Link translations — not near-matches
If a page exists in English but not yet in French, be honest about it: leave that language out of the hreflang set and let the language switcher fall back to the home page of the other language. Pointing hreflang at an unrelated page breaks the reciprocity rule above and confuses visitors more than a missing page does.
We apply the same rule on our own pages: a page is only connected to a translation that really exists.
Write the French as French
Readers can tell a literal translation, and Google’s guidance on helpful, people-first content applies in every language. For a French audience that means natural French copy, French headings, a French title and meta description — not English text with a French label on it.
The same goes for addresses. On Futura’s own site we use /en/services/web-design and /fr/services/conception-site-web, so that each URL reads naturally in its language. If you are planning a bilingual build, our web design and web development teams work in both languages.
A language switcher that doesn’t strand people
hreflang is for search engines; the switcher is for people. Link to the equivalent of the current page whenever one exists, keep the query string, and fall back to the other language’s home page when it doesn’t.
Google doesn’t recommend or discourage redirecting visitors automatically by browser language, but it advises providing a fallback page — especially on language selectors and auto-redirecting home pages. We prefer letting people choose over forcing a redirect.
FAQ
Common questions
Do I need hreflang if I only have two languages?
hreflang is how you tell Google about the variants. With two languages the set is tiny — each page lists itself and its translation, plus x-default if you use one — so it is cheap to do properly.
Which language code should I use for French?
fr is enough. Google accepts a language code with an optional region code (for example fr-MA for French in Morocco), but a region code on its own is invalid. Add the region only if you have genuinely different content per country.
Subdomain or folder?
Google’s examples use both, and it says language subdomains are not used to determine the target audience. We recommend folders (/en/, /fr/) for small and medium sites because they are simpler to run on one domain.
Can I redirect visitors automatically by their browser language?
Google doesn’t recommend or discourage it, but advises a fallback page on auto-redirecting home pages and language selectors. A visible switcher is the safer default.
Sources
Primary sources for the claims above, last checked on 10.10.2026.
- Localized versions of your pages — Google Search Central
- Creating helpful, reliable, people-first content — Google Search Central
Have a project in mind?



