Skip to main content
Jonathan Andrei
Back to all posts
Feb. 2026 - Present6 min read

Shipping a Bilingual Marketing Site That a Quebec Team Can Own

Roofing and solar buyers don't read marketing copy linearly. They scan for trust signals, hours, and 'does this person know what I have on my roof?' The AL Pro build is tuned for that — bilingual, scannable, and SEO-hardened against AI-driven audits.

ReactViteSEOi18nQuebec

Quebec roofing buyers behave differently from the marketing-blog stereotype. They're scanning the page for: do you understand my building, do you serve my city, can I get a feasibility study, and is your French copy actually French or is it Google Translate.

Architecture decisions

A React SPA built on Vite gave the brand the animations and the lead-capture polish they wanted, while a WordPress integration on the side gives the team a friendly content workflow for blog posts and updates. The split — SPA for the hero/services/projects, WordPress for evolving content — keeps the marketing site fast without making the team learn React.

The SEO audit that retargeted the build

An external auditor scored the site 61/100, with most of the points lost on items that were actually present but invisible to a non-JS crawler. The fix wasn't to argue with the audit — it was to make sure a re-audit could find the content without executing JavaScript. We added per-route prerendering, a noscript layer with real content, FAQPage and BlogPosting JSON-LD, an OfferCatalog of services with city-level areaServed, and a sitemap that regenerates from blog data at build time.

Estimated score after the rework: 92–96. The bigger lesson: AI-driven audit tools read the rendered HTML, not the React shell. If you want them to grade you on what's actually on your site, you have to ship the content in the HTML.

Related project

AL Pro Solutions: Commercial Roofing & Solar Marketing Site

View the project