Deesco

Écrit par

dans

Contexte

Deesco est une startup de la CleanTech qui conçoit des outils digitaux pour accélérer la transition vers des logements durables. Leur ancien site, développé sous WordPress / Elementor, ne reflétait plus l’image sobre et tech qu’ils souhaitaient dégager. L’enjeu de la refonte : construire un site moderne, rapide et multilingue, capable d’évoluer avec le produit, sans sacrifier la simplicité de gestion de contenu pour les équipes internes.

Stack & Architecture

Le choix s’est porté sur une architecture Astro 6 SSR + WordPress Headless, combinée à Polylang pour la gestion multilingue (FR/EN). Cette stack offre le meilleur des deux mondes : la flexibilité et les performances d’Astro côté front, la simplicité d’un CMS connu côté back-office.

Le déploiement s’appuie sur Cloudflare Workers en production, avec un dual adapter (@astrojs/cloudflare en prod, @astrojs/node en développement local) pour éviter les limitations de Miniflare lors du développement.

Défis techniques

Ce type de stack est puissant mais soulève des problématiques spécifiques, résolues une par une sur ce projet :

Multilingue & API REST : Polylang n’expose pas les translations par défaut dans l’API REST WordPress. Solution : un snippet functions.php avec register_rest_field, et un pattern fetchPageWithFallback à 3 étapes (slug direct → version FR → traduction par ID) pour un fallback multilingue robuste.

Routing Astro 6 : Collision entre [slug].astro et [lang]/index.astro pour les routes /fr et /en. Résolu par des fichiers statiques dédiés fr/index.astro + en/index.astro avec un guard SUPPORTED_LANGS dans [slug].astro.

Performance mobile (LCP) : L’image hero étant servie depuis WordPress, son URL doit être passée en prop au layout pour générer un <link rel="preload"> dynamique. Sans cette optimisation, la chaîne CSS → fetch → render impacte significativement le score mobile. 4 fichiers woff2 sont également préchargés explicitement pour casser la chaîne critique CSS → font.

Sitemap SSR multilingue : @astrojs/sitemap étant incompatible avec le mode SSR, un endpoint /sitemap.xml.ts custom agrège les pages WordPress (FR + EN) avec balises hreflang, accompagné d’un sitemap.xsl pour un rendu lisible dans le navigateur.

robots.txt & Cloudflare : Cloudflare intercepte /robots.txt au niveau edge avec son propre contenu managé, rendant le fichier public/robots.txt inopérant. Solution : soumission directe du sitemap en Google Search Console.

Consentement & tracking : Intégration Cookiebot + Google Consent Mode v2 avec un ordre strict dans le <head> (Cookiebot en premier, defaults Consent Mode v2, puis GTM/GA4). Le lien de gestion des cookies en footer déclenche Cookiebot.renew() via un event listener global.

Résultat

Un site sobre, rapide et technique, fidèle à l’image SaaS de Deesco, servi depuis l’edge via Cloudflare Workers, géré en toute autonomie par les équipes via WordPress, et optimisé pour le référencement naturel en français et en anglais.

Vous avez un projet de site ambitieux nécessitant une architecture sur-mesure ? Découvrez mon offre de développement sur-mesure ou de création de site internet.

Plus de publications