Roughly 7.8 million Canadians speak French as their first official language, according to Statistics Canada’s 2021 Census — that’s more than the entire populations of British Columbia and Manitoba combined. Yet most English-Canadian businesses still treat their French version as an afterthought: a Google-translated footer, a broken hreflang tag, and a “contactez-nous” button that leads to an English form. In 2026, that shortcut isn’t just sloppy — under Quebec’s modernised language regime and Law 25, it’s a line item on an OQLF enforcement file. A proper multilingual website Canada businesses can actually defend is equal parts legal hygiene, SEO engineering, and editorial workflow. At TheBomb®, we’ve spent 12+ years building sites that ship in both official languages without the usual post-launch panic — and the gap between “translated” and “truly bilingual” is where most brands lose trust, rankings, and occasionally money.
This guide walks through what a modern bilingual Canadian site looks like in 2026: the law, the URL architecture, the tag that nobody gets right, and the editorial plumbing that keeps the whole thing from collapsing three months after launch.
What Canadian Businesses Legally Must Provide in French
Canadian language obligations are layered: federal rules apply to federally regulated businesses and government-adjacent contracts, Quebec’s Charter of the French Language (as amended by Bill 96) applies to anyone doing business with Quebec consumers, and New Brunswick imposes bilingual requirements on certain public-facing services. Ignoring the province you ship into is not a defence.
Here’s the short version every Canadian marketer and developer should have memorised:
- Federally regulated businesses (banks, telecoms, airlines, interprovincial transport) must provide service and marketing in both official languages under the Official Languages Act.
- In Quebec, the Office québécois de la langue française (OQLF) requires that French be “markedly predominant” on websites, signage, packaging, and commercial communications aimed at Quebec consumers. Since June 2025, Bill 96 has been fully enforceable.
- Quebec’s Law 25 (privacy) requires privacy notices, consent forms, and data-breach communications to be offered in French by default to Quebec residents, regardless of where your business is based.
- New Brunswick (Canada’s only officially bilingual province) requires bilingual service from certain regulated entities and government-facing organisations.
If your site takes orders from Quebec — even one Shopify checkout a year — you’re in scope. “Markedly predominant” in practice means French type that is at minimum equal in size and prominence to English, with the French version served by default to Quebec IP addresses or language preferences. A 50/50 toggle is usually safe; an English-first site with a “FR” link in the corner is increasingly not.
URL Structure — Subdirectory, Subdomain, or ccTLD?
The first architectural decision on any bilingual site is how to physically separate the two language versions. Google’s guidance is unambiguous: any of the three main patterns work, but each has trade-offs that matter for Canadian businesses.
Subdirectories (example.ca/en/ and example.ca/fr/) are the default we recommend for most Canadian SMBs. One domain, one SSL certificate, one pool of domain authority shared across both languages, trivial to deploy on Astro, Next.js, WordPress, or Shopify Markets. This is the pattern Canada.ca itself uses. The downside: you can’t geotarget different countries at the directory level in Google Search Console anymore (that setting was deprecated in 2022), so for pure Canadian-French, it’s fine; for Canadian vs. French-from-France, you’ll lean on hreflang to disambiguate.
Subdomains (en.example.com, fr.example.com) isolate each language into its own logical site. Useful when the French version is operationally independent — different CMS, different team, different hosting region for data-residency reasons. The cost is that search engines treat subdomains as partially separate entities; authority doesn’t fully pool.
Country-code TLDs (example.ca vs. example.fr) are the strongest geotargeting signal but the heaviest to operate — two registrations, two certificates, two indexes to maintain. For most bilingual Canadian businesses, a .ca with language subdirectories is the right answer. Reserve .fr only if you’re actually selling into France.
Whatever you pick, pick it once. Migrating URL structure after launch is the most expensive SEO mistake in bilingual Canadian web design — and we’ve rescued more than one client from it. Our custom development practice plans this decision before a single line of code ships.
Getting hreflang Right (the most broken tag in SEO)
If there’s one tag we see mangled on nine out of ten Canadian bilingual sites we audit, it’s hreflang. Google’s official hreflang documentation is clear, but the rules are unforgiving: get one detail wrong and Google quietly ignores the whole cluster.
The non-negotiables
Every page that has a language alternate must include hreflang annotations for every version, including itself. The annotations must be bidirectional and reciprocal — page A points to page B, page B points back to page A. One broken link in the cluster and Google will often fall back to its own language detection.
For a Canadian English/French site, the minimum correct set on every page is:
<link rel="alternate" hreflang="en-ca" href="https://example.ca/en/page/" />
<link rel="alternate" hreflang="fr-ca" href="https://example.ca/fr/page/" />
<link rel="alternate" hreflang="x-default" href="https://example.ca/en/page/" />
The x-default entry tells Google what to serve when no language/region match is found — typically your English page, or a language-selector splash. Skip x-default and you’re letting Google guess, which in Quebec means your English version may outrank your French one on French-language queries.
The mistakes that kill clusters
- Using
frwhen you meanfr-ca. The language code alone is fine, but in Canada the region matters —fr-cakeeps Parisian French sites out of your cluster and vice versa. - Pointing to non-canonical URLs. The
hreflangtarget must match therel="canonical"on the destination page. - One-way links. English page points to French, French doesn’t point back. Google drops the pair.
- Annotations on pages that are blocked from indexing, or that return a non-200 status. Both silently kill the cluster.
The cleanest deployment for most frameworks is to render hreflang alternates in the <head> via a shared layout, using the route’s locale to build both URLs. On Astro and Next.js App Router, it’s a 15-line utility. On WordPress, plugins like Polylang and WPML handle it — verify the output once, then trust it.
French SEO Is Not Translated English SEO
This is the single biggest content strategy mistake Canadian businesses make: they run their English site through DeepL or Google Translate, publish the output as /fr/, and wonder why Quebec traffic never materialises. French-Canadian search behaviour is genuinely different, and treating it as a translation job rather than a research job leaves ranking potential on the table.
French SEO Canada starts with keyword research in French, not translation of English keywords. Quebec francophones don’t search “cheap plumber Montreal” translated — they search “plombier pas cher Montréal” with their own colloquialisms, question structures, and brand affinities. Tools like Semrush and Google Keyword Planner with the target country set to Canada and language set to French will surface a completely different keyword universe than the English site did.
Three rules we apply on every bilingual project:
- Translate intent, not strings. A meta description that sells in English rarely sells word-for-word in French. Rewrite it around how the French-Canadian searcher frames the problem.
- Localise, don’t just translate. Currency in CAD, phone formats with 1-800 or 418/514 area codes, dates in DD/MM/YYYY, addresses that reflect Quebec municipal conventions. Google’s quality raters notice. So do humans.
- Write French content natively where it matters most. Landing pages, cornerstone blog content, service pages — have a francophone writer or editor produce them from scratch in French. Auto-translation is fine for a legal footer, not for a hero headline.
Our SEO strategy team builds French keyword maps alongside English ones on every bilingual engagement, because the French side is almost always less competitive and higher-converting than clients expect — but only if you treat it like a first-class market.
CMS Workflows That Don’t Make Editors Suffer
Launching a bilingual site is the easy part. Keeping it actually bilingual twelve months later is where most Canadian companies fail — a product page ships in English, the French version lags by three weeks, orphaned translations pile up, and eventually the French site becomes a museum of last year’s marketing. The fix is a CMS workflow designed for bilingual editing from day one.
Three workflow patterns that work in practice:
- Paired-entry model (Sanity, Contentful, Payload, Storyblok). Each page has an English entry and a French entry linked by a shared ID. Editors can see translation status at a glance and publish independently or together.
- Locale-field model (WordPress with WPML, Strapi i18n). A single entry holds both language versions as separate fields. Cleaner when the two versions share most structure; harder when they diverge.
- Parallel-site model (Astro content collections, Hugo multilingual). Each locale is its own directory of Markdown/MDX files, managed in Git. Gives developers full control; requires editors comfortable with Git workflows or a headless CMS layer on top.
Whichever pattern you choose, four features are non-negotiable in 2026:
- Translation status at a glance — a dashboard showing which pages are missing, stale, or out of sync.
- Fallback rules — if a French page doesn’t exist, what does the user see? A redirect to English? A notice? A draft auto-served from machine translation? Decide this explicitly, don’t let the CMS pick.
- Translation memory integration — hooks into DeepL, Weglot, or Lokalise so boilerplate like “Add to cart” isn’t re-translated every sprint.
- Scheduled publishing in both locales — campaign pages often need to go live simultaneously. Any CMS that can’t handle this is not a 2026 CMS.
For clients running Shopify, the native Markets + Translate & Adapt stack now handles English/French-Canadian storefronts cleanly — it’s where we point most e-commerce clients unless they have a headless e-commerce build for other reasons.
Design Considerations (character expansion, typography, bonus RTL readiness)
The visual design of a bilingual Canadian site carries a few constraints that pure English design doesn’t. Most are small; ignoring them all at once produces the classic “translated site” feeling that makes francophone visitors bounce.
French runs longer than English — typically 15–30% longer for the same meaning. A button that reads “Get Started” becomes “Commencer maintenant” or “Démarrer”. A nav label that’s tight in English will wrap, clip, or overflow in French. Design with fluid widths, min-width on buttons, and test every component with the longest expected French string, not the shortest.
Typography needs accent support. Any webfont you pick must include full Latin Extended-A coverage — é, è, ê, ç, à, ù, œ, and the uppercase variants (which Quebec style conventions use more aggressively than European French does). Variable fonts from Google Fonts and Adobe Fonts typically include these by default; bespoke fonts sometimes don’t. Audit before you launch.
Language toggle UX matters. The toggle belongs in a consistent location — top-right of the header is standard — and should display the language a user can switch to, not the current language. “FR” when you’re reading English, “EN” when you’re reading French. Persist the choice in a cookie (subject to your Law 25 consent banner), so a returning Quebec visitor doesn’t have to re-toggle every session.
Bonus: RTL readiness. If your business serves Ottawa’s or Montreal’s large Arabic-speaking populations, building with logical CSS properties (margin-inline-start instead of margin-left, padding-block instead of padding-top) means adding Arabic later is a config change, not a rewrite. It’s a few hours of extra work during initial build and saves weeks later.
Small touches, compounding effect. A francophone visitor can tell within ten seconds whether a site was built bilingual or bolted-on — and the ones that feel native convert dramatically better.
How Much Does a Proper Bilingual Canadian Site Cost?
A properly bilingual Canadian website typically adds 25–45% to the project budget of a monolingual English equivalent, depending on how much content requires native French authoring versus professional translation. That premium covers French keyword research, native copywriting for high-value pages, professional translation with Canadian-French review, CMS i18n configuration, expanded QA across both locales, and — critically — the ongoing editorial capacity to keep both versions in sync after launch. Trying to trim it with machine translation and no review is where OQLF complaints, SEO drag, and bounce rates all come from. The businesses that treat the French market as a first-class investment consistently see 20–40% of their organic Canadian traffic come from it within 12–18 months — a return that more than funds the initial premium.
Do I Need a French Site If I’m Not in Quebec?
Short answer: if you sell anywhere in Canada online, yes — at minimum for privacy notices and core transactional flows. Quebec’s Law 25 follows the customer, not the business. A Vernon, BC company shipping a Law 25–covered product to a Longueuil customer has obligations about French-language privacy communications regardless of where the servers live. Beyond legal minimums, a bilingual site signals “Canadian business” in a way that translated meta tags can’t fake, helps with federal and provincial procurement eligibility, and opens up a market of nearly 8 million francophones that most of your competitors are still ignoring. The ROI math is usually obvious; the execution is where most teams stumble.
Ready to Ship a Bilingual Site That Holds Up?
Building a multilingual website Canada customers and regulators both respect is a development problem, a content problem, and a workflow problem at once. If you’re planning a bilingual launch, a relaunch, or fixing a legacy French site that’s quietly bleeding rankings, TheBomb® covers all three:
- Custom bilingual development — architecture,
hreflang, CMS i18n, and framework choice built for Canadian businesses. - French SEO strategy — French keyword research, native-language content planning, and technical SEO across both locales.
- Ongoing site maintenance — so your French version doesn’t drift six months after launch.
Stop losing Quebec traffic, francophone customers, and procurement opportunities because your French site looks like an afterthought. Let’s talk about your bilingual build.
Key Takeaways
- Law, then architecture, then content. Know your OQLF and Law 25 obligations before you pick URL structure; pick URL structure before you write content.
hreflangis unforgiving. Useen-caandfr-ca, make every annotation bidirectional, includex-default, and verify the cluster with a crawler — not just by eyeballing the<head>.- French SEO is a research job, not a translation job. Keyword research in French first, native copywriting for landing pages, professional translation with Canadian-French review for everything else.
- Design for 30% longer strings, full accent coverage, and a sensible language toggle. Small choices compound into a site that feels native in both languages.
- Your CMS workflow is the long-term battle. Choose a system that shows translation status, handles fallbacks explicitly, and makes synchronised publishing trivial — or accept that your French site will quietly rot.