Bill 96 and your website: French-first in the CMS, not as a plugin
Written by AERVIO, a Montreal studio. Human-reviewed before publish. Contact: hello@aervio.io · +1 438-498-3913.
We are not your lawyers. Quebec’s French language framework and Bill 96 are legal questions. What we *do* implement is the boring part companies skip: the CMS can ship French as a first-class page, support knows which language to answer in, and search engines see `fr-CA` / `en-CA` instead of a widget.
AERVIO is based in Quebec. Public work we do for Quebec-facing sites assumes French is a field, not a plugin you toggle the week before an inspection.
What goes wrong when French is “phase two”
Phase two never ships. Or it ships as:
- A language pack that translates the theme but not the products
- A `/fr` folder with three pages and a “see English” button
- hreflang tags pointing at URLs that 404
- A chatbot that answers English tickets in broken French
Editors then copy-paste into a Google Doc named `FR-legal`. The live site drifts. That is both a language-risk and an SEO problem: Google is not obligated to treat a machine overlay as an equivalent document.
Model language as data
Before Next.js or WordPress, we write the content model:
- Every public document has `locale`
- Equivalent URLs are linked (not “one page, two slugs jammed”)
- Images that contain words have a language (a PNG of an English poster is still English)
- Legal footers, cookie text, and form errors are in the page language
- The default for Quebec public pages is French; English is an additional locale where the buyer is English
On WordPress that may be a disciplined multilingual plugin or two well-linked sites. On Next it is routes and metadata, not a client-side switch that never appears in “View Source.”
Our French door on this site is /fr. The English Montreal door is /montreal. They are not machine mirrors. They are written as two doors.
Hreflang without folklore
Hreflang says “this URL is the French equivalent of that URL.” It does not translate. It does not rank you. Implemented wrong, it just tells Google you are confused.
Rules we follow:
- Reciprocal links (A points to B, B points to A)
- Use `fr-CA` and `en-CA` when the audience is Canadian
- x-default only if you truly have a chooser, not as a junk value
- Do not point hreflang at a redirect chain
The pair for this topic is this page and Site web français et loi 96.
Support language is part of the build
Bill 96 conversations die in implementation when the site is French and the inbox is English-only contractors in another timezone. We put hours and language on the contact path: hello@aervio.io, +1 438-498-3913, weekdays 9–17 ET. If your support cannot honour French, do not put a French phone promise on the homepage.
The CRM must store language of the file. Otherwise a “bonjour” lead gets an English sequence. That is a CRM modelling issue, not a translate-API issue.
Forms, invoices, and Law 25
Language law and privacy law collide on forms. Law 25 cares what you collect. Language rules care what the user was shown. We keep form copy in the page language, privacy links in the page language, and a data map that names the processor. A US-only form backend with English error strings on a French URL is the usual mess.
What we need from you on day one
- Which URLs are public and Quebec-facing vs internal or extra-provincial
- Who is allowed to approve French (a person with a name)
- Whether English remains for specific buyer segments
- Current OQLF or counsel notes, if any — we implement, we do not interpret
Then the proposal states the locale split in writing, the way we state timeline and stack. No “we’ll add WPML later.”
Editorial workflow that survives a human
French and English will diverge. That is normal (a Quebec promotion, an Ontario webinar). The CMS should show status: complete pair, French-only, English-only, stale pair. Stale pairs are a weekly retainer item, not an emergency.
We do not auto-translate production. Draft assistance is a different conversation, and it is labelled as such. Google’s helpful-content questions — who, how, why — apply to translated pages too.
If you already have an English site and a panic deadline, write to us with the URL list and who owns French. We will tell you whether a proper model fits the calendar or whether you need counsel and a smaller public surface first.
What is on the page besides paragraphs
Bill 96 conversations obsess over body copy and forget:
- Invoices and quotes linked from the site
- Product names and slogans in images
- Job postings
- Chat widgets and cookie banners
- 404 pages and form validation
- PDF brochures that are still the real sales deck
If the HTML is French and the PDF is English-only for a Quebec consumer audience, you have not finished. We can host both languages of a PDF. We cannot pretend the English PDF is not public if it is linked.
Staff tools vs public site
An English-only internal portal for a Montreal team is a different question from the marketing site. We do not apply the public CMS model to every Notion page. We do ask counsel before putting a public “client login” in English only on a Quebec consumer service. Draw the line; we implement the public side of it.
Analytics and admin UIs
Google Analytics, Search Console, and wp-admin can stay English for a bilingual team. That is not the public surface. What must not stay English: the user-facing error “Please enter a valid email” on a French URL. We test forms in both locales. It takes an hour. It saves a stupid screenshot in a complaint.
A CMS checklist we use
- Locale field on every public type
- Reciprocal hreflang on equivalents
- Language of media recorded
- Status of pairs (complete / stale / solo)
- Named French approver
- Support hours and language on contact
- CRM language field
- Privacy policy URL in the page language
If four of those are missing, we are not in “copy tweaks.” We are in a build. Send the URL list and the approver’s name.
Questions
Are you giving legal advice?
No. Bill 96 and OQLF guidance are legal questions for your counsel. We implement the CMS, metadata, and support split you choose.
Can we keep English-only for B2B outside Quebec?
Often yes for pages aimed at English buyers outside the province. Public consumer-facing Quebec pages are the ones we plan French-first. Your lawyer draws the line; we implement it.
Is Google Translate enough?
No. Machine overlay is not an editorial process, not an equivalent page, and not something we will call French-first.
Read next
Let's write the next step.