Migration Weglot vers Webflow Localization
Ce document décrit le travail à faire pour migrer worximity.com de Weglot vers Webflow Localization. Il couvre le périmètre, les phases, les livrables et le budget, et est destiné à Orfé et à Worximity.
Pourquoi cette migration
Worximity paie ~1 115 CAD/mois (~13 400 CAD/an) pour Weglot, qui traduit le site en JavaScript côté client. Le contenu français existe déjà - je ne traduis rien, je migre ce qui est là vers Webflow Localization, la solution native.
Ce qui ne va pas
L'audit du 24 avril a révélé des problèmes concrets, vérifiés sur le site en production.
- Traduction 100% JavaScript côté client
- 0 URLs /fr/ dans le sitemap (1 287 URLs, toutes EN)
- Aucun hreflang dans le HTML statique
- Canonical FR pointe vers EN
- Toggle langue ne change pas l'URL
- ~1 115 CAD/mois (~13 400 CAD/an)
Le résultat
Localization règle les 4 problèmes SEO automatiquement, sans config manuelle.
- HTML statique côté serveur
- Sitemap multilingue automatique
- Hreflang en HTML natif
- Canonical par locale
- Switch langue avec changement URL
- ~40 CAD/mois (~475 CAD/an)
Ce qu'on livre
- Audit technique et cadrage
- Activer Localization (en-CA / fr-CA)
- Configurer les URLs, le sitemap et le hreflang
- Extraire le contenu FR depuis l'API Weglot
- Injecter le contenu FR via l'API Webflow
- Gérer les redirections (audit, ménage, import en bulk via API)
- Tests techniques et support au déploiement
- Support pendant 30 jours après la mise en ligne
- Copier le contenu FR dans les ~25 pages statiques
- Migrer les meta titles et descriptions FR
- Valider et corriger les traductions
L'infrastructure actuelle
| Composant | Technologie | Impact migration |
|---|---|---|
| CMS | Webflow (Site ID: 63dafaf...d3) | Central |
| Traduction | Weglot JS côté client (~1 115 CAD/mois) | À retirer |
| Analytics | GA4 (G-7F3YTJXXNB) + GTM (GTM-WX45FKV) | Aucun |
| Heatmaps | Hotjar (hjid:3379193) | Aucun |
| Formulaires | HubSpot (Portal: 3418759) | À valider |
| UI | SwiperJS + Finsweet Attributes | Aucun |
| Typographie | Google Fonts - Plus Jakarta Sans | Aucun |
Contenu à migrer
Le site a 16 collections CMS et 43 pages statiques (dont ~25 ont du contenu FR à migrer manuellement). Certaines collections ont un champ "Language" avec des items EN et FR séparés, mais aucun filtre n'est actif - tout s'affiche en vrac.
Volume par collection
Blog - Répartition linguistique
| Collection | Items | Champ langue | EN | FR | Filtre actif /fr/ | Stratégie |
|---|---|---|---|---|---|---|
| Blogs | 648 | Oui | 471 | 177 | Non | Migration par script |
| Success Stories | 29 | Oui | 15 | 14 | Non | Migration par script |
| Ebooks | 16 | Oui | 11 | 5 | Non | Migration par script |
| Events | 83 | Oui | ~42 | ~41 | Non (doublons) | Migration par script |
| Features | 14 | Non | 14 | 0 | - | Localization + script API |
| Industries | 7 | Non | 7 | 0 | - | Localization + script API |
| Products | 4 | Non | 4 | 0 | - | Localization + script API |
| FAQs | 70 | Non | 70 | 0 | - | Localization + script API |
| Press Releases | 12 | ? | ? | ? | Non | À déterminer |
| News | 14 | ? | ? | ? | Non | À déterminer |
| Tags / Authors | 88 | - | - | - | - | Taxonomie / noms propres |
| Tradeshows / Careers / SEMs / Thank you | 36 | - | - | - | - | Utilitaires / templates internes |
- /fr/blogue articles EN et FR mélangés
- /fr/etudes-de-cas articles EN et FR mélangés
- /fr/ebook articles EN et FR mélangés
- /fr/evenements doublons EN+FR côte à côte
Sur les pages dites « mélangées », des articles anglais s'affichent au milieu des articles français (Weglot ne filtre rien).
Sur /fr/evenements, chaque évènement existe en deux versions (EN + FR) qui apparaissent côte à côte au lieu d'une seule selon la langue.
Diagnostic SEO
Tout ce qui suit a été vérifié directement sur le site en production, le 24 avril 2026.
| Élément | État actuel | Détail vérifié | Après migration |
|---|---|---|---|
| Hreflang | Absent | Aucune balise hreflang dans le HTML, ni en EN ni en FR | HTML natif |
| Canonical FR | Vers EN | Les pages FR (surtout le blog) disent à Google que la version EN est la bonne | Par locale |
| Canonical EN | Absent | Même la homepage EN n'a pas de canonical | Self-referencing |
| Sitemap FR | 0 URLs | Le sitemap a 1 287 URLs - pas une seule en /fr/ | Multilingue auto |
| Meta FR | JS client | Le header HTTP dit weglot-translated: false - tout passe par JavaScript | Statique CMS |
| Toggle langue | Pas d'URL | Au switch FR/EN, l'URL ne change pas dans le navigateur | Switch natif |
| Slugs FR | Incohérents | Parfois traduits, parfois gardés en anglais, parfois redirigés - aucune logique | Uniformes |
| robots.txt | OK | Ne bloque pas /fr/, correct | Inchangé |
Concrètement, Google ne voit presque pas le français
Pas de hreflang, zéro URL française dans le sitemap, les canonicals français pointent vers l'anglais, et la traduction passe par JavaScript. Pour Google, worximity.com est un site anglais avec un widget. Localization corrige tout ça automatiquement.
Les bugs identifiés
9 problèmes vérifiés sur le site en production. Les 4 premiers cassent le SEO français.
| # | Bug | Sévérité | Détail | Résolu par Localization |
|---|---|---|---|---|
| 1 | Sitemap sans FR | Critique | 0 URLs /fr/ sur 1 287 | Résolu |
| 2 | Pas de hreflang | Critique | Absent du HTML statique (EN et FR) | Résolu |
| 3 | Canonical FR vers EN | Critique | Blog FR canonicalise vers EN | Résolu |
| 4 | Traduction 100% JS | Critique | weglot-translated: false partout | Résolu |
| 5 | Collections mélangées | Élevé | Blog/Events/Ebooks affichent EN+FR pêle-mêle | Migration par script |
| 6 | Events en double | Moyen | Chaque event apparaît 2 fois (version EN + FR) | Migration par script |
| 7 | Mauvais slug T&C | Faible | /fr/politique-confidentialite affiche en fait les conditions d'utilisation | Résolu |
| 8 | Title giveaway en anglais | Faible | Le <title> de cette page feature n'est pas traduit | À corriger |
| 9 | Toggle sans changement d'URL | Moyen | Au switch de langue, l'URL reste la même | Résolu |
14 URLs françaises donnent un 404
Des URLs qu'un utilisateur pourrait deviner (/fr/calculateur-trg, /fr/industries/food-beverages, /fr/conditions-generales) n'existent tout simplement pas dans Weglot. Le vrai mapping est documenté dans l'audit technique.
Configuration Localization
Voici les paramètres cibles de Webflow Localization une fois la migration terminée. Le site anglais reste à la racine, le français passe en sous-répertoire /fr, et le SEO multilingue (hreflang, canonical, sitemap) est géré nativement par Webflow.
| Propriété | EN (Primary) | FR (Secondary) |
|---|---|---|
| Tag locale | en-CA | fr-CA |
| Subdirectory | racine | /fr |
| Exemple | worximity.com/pricing | worximity.com/fr/tarifs |
| Hreflang | Automatique (HTML statique serveur) | |
| Canonical | Self-referencing par locale | |
| Sitemap | Multilingue avec xhtml:link (automatique) | |
| Switch langue | Widget natif avec changement d'URL | |
Mapping des URLs existantes
J'ai testé chaque URL une par une le 24 avril. L'objectif est de garder les mêmes URLs FR dans Localization pour éviter de créer des redirections inutiles. Cinq cas de figure ressortent.
| Section | URL EN | URL FR réelle (Weglot) | Type |
|---|---|---|---|
| Traduits — slug FR distinct | |||
| À propos | /about-us | /fr/a-propos | Traduit |
| Tarifs | /pricing | /fr/tarifs | Traduit |
| Démo | /book-a-demo | /fr/planifier-une-demo | Traduit |
| Expert | /talk-to-an-expert | /fr/parler-a-un-expert | Traduit |
| Carrières | /career | /fr/carrieres | Traduit |
| Partenaire | /partner | /fr/partenaire | Traduit |
| Outils | /tools | /fr/outils | Traduit |
| Blog | /blog/slug | /fr/blogue/slug | Traduit |
| Études de cas | /success-stories/slug | /fr/etudes-de-cas/slug | Traduit |
| Events | /events/slug | /fr/evenements/slug | Traduit |
| Produit Connect | /product/connect | /fr/product/connecter | Traduit |
| Produit Mesurer | /product/measure | /fr/product/mesurer | Traduit |
| Produit Améliorer | /product/improve | /fr/product/ameliorer | Traduit |
| Redirigés via 308 | |||
| Product Overview | /product-overview | /fr/apercu (via 308) | Redirect |
| Calculateur TRG | /oee-calculator | /fr/trg-calculateur (via 308) | Redirect |
| Calculateur ROI | /roi-calculator | /fr/roi-calculateur (via 308) | Redirect |
| Devis | /get-a-quote | /fr/demander-un-devis (via 308) | Redirect |
| Nouvelles | /news-articles | /fr/nouvelles (via 308) | Redirect |
| Slugs identiques (mot ~ neutre EN/FR) | |||
| Accueil | / | /fr | Direct |
| Contact | /contact | /fr/contact | Direct |
| FAQ | /faq | /fr/faq | Direct |
| Ebooks | /ebook/slug | /fr/ebook/slug | Direct |
| Gardés en anglais | |||
| Features | /features/slug | /fr/features/slug ou /fr/fonctionnalite/slug | EN conservé |
| Industries | /industries/slug | /fr/industries/slug | EN conservé |
| Privacy | /privacy-policy | /fr/privacy-policy | EN conservé |
| Bug à corriger | |||
| Conditions | /terms-conditions | /fr/politique-confidentialite (308, BUG) | Bug |
Weglot n'est pas cohérent
Cinq stratégies différentes coexistent : 13 traduits (/pricing → /fr/tarifs), 5 redirigés en 308 (/oee-calculator → /fr/trg-calculateur), 4 slugs identiques (/contact → /fr/contact), 3 gardés en anglais (/privacy-policy → /fr/privacy-policy) et 1 bug (/terms-conditions pointe vers /fr/politique-confidentialite). Il faudra choisir une stratégie uniforme pour Localization.
Migration des collections multilingues
C'est la partie la plus complexe : 776 items au total répartis sur 4 collections (Blog 648, Events 83, Success Stories 29, Ebooks 16). Aujourd'hui, les versions EN et FR vivent comme des items séparés dans la même collection. Webflow Localization attend un item unique avec ses traductions, pas deux items distincts. Trois options pour basculer.
Fusionner EN/FR à la main
Je jumelle chaque article FR avec son équivalent EN dans le même item CMS, opération par opération.
- Architecture propre, conforme Localization
- Lent, opération par opération
- Les articles FR sans équivalent EN posent problème
- Coût élevé en heures manuelles
Garder la structure, ajouter un filtre
Je ne touche pas aux items CMS. Je filtre l'affichage par langue selon la locale active.
- Rapide à mettre en place
- Règle visuellement le mélange EN/FR
- Architecture hybride non conforme à Localization
- Dette technique : ne suit pas les meilleures pratiques Webflow CMS
Migration par script
Un script matche les articles EN/FR automatiquement et crée les versions localisées via l'API Webflow. Architecture conforme aux meilleures pratiques CMS.
- Architecture native Webflow Localization (un item, deux langues)
- Résultat propre et durable, sans dette technique
- Automatisé à ~80% via l'API (batches de 100 items, throttle 60 req/min)
- Validation manuelle des cas ambigus
Ma recommandation
Je recommande l'option C dès le lancement - c'est la seule qui respecte les meilleures pratiques de développement Webflow CMS et qui ne crée pas de dette technique. Même approche pour les Success Stories, les Ebooks et les Events.
Plan de redirection
Il y a déjà 1 070 redirections qui datent de la migration de 2023, plus les 5 redirections 308 de Weglot que je dois intégrer.
Redirections par section (plan 2023)
Nouvelles redirections estimées
Plan d'attaque sur les 1 070 redirections existantes
Webflow n'impose pas de limite technique dure mais recommande un maximum de 1 000 redirections (chaque entrée est stockée dans le manifest.json téléchargé côté navigateur). Avec 1 070 entrées + 5 nouvelles 308 de Weglot, on est juste au-dessus du seuil best practice.
Approche retenue : import en bulk via l'API Webflow (script automatisé) après audit et ménage des redirections obsolètes (notamment l'ancien legacy smartfactory.worximity.com). Webflow recommande aussi d'utiliser des wildcard redirects pour consolider plusieurs paths legacy en une seule règle. Cloudflare Workers reste un backup possible si on veut viser bien sous 1 000.
Les 8 phases
Le projet s'étale sur 6 semaines, du kick-off à la mise en ligne, plus 30 jours de support. Les heures indiquées par phase sont une estimation approximative et peuvent varier selon les imprévus.
Cadrage et audit
J'ai analysé le site au complet : structure CMS, URLs, SEO, et j'ai testé chaque page FR une par une.
3h- Analyser la stack technique du site
Matthieu - Inventorier les 16 collections CMS via l'API
Matthieu - Tester 70+ URLs françaises une par une
Matthieu - Rédiger ce cahier des charges
Matthieu
Préparation et extraction
Je sors les traductions de Weglot, je mappe les URLs et j'identifie ce qui manque en français.
6h- Sortir toutes les traductions FR via l'API Weglot
Matthieu - Mapper chaque URL Weglot vers sa cible Localization
Matthieu - Écrire un script pour comparer la parité EN/FR
Matthieu - Vérifier lesquelles des 1 070 redirections de 2023 sont encore actives
Matthieu - Lister les cas spéciaux (articles FR sans équivalent EN, etc.)
Matthieu
Mise en place de Localization
J'active les deux locales dans Webflow et je configure le SEO multilingue.
4h- Activer les locales en-CA (primaire) et fr-CA (/fr)
Matthieu - Configurer le sitemap multilingue
Matthieu - Mettre en place le switch de langue (avec changement d'URL)
Matthieu - Tester le tout en staging avant de toucher à la prod
Matthieu
Migration du contenu français
Je migre les 776 items CMS multilingues (Blog, Events, Success Stories, Ebooks) vers la structure Localization (un item, deux langues) via script API. Orfé copie le contenu FR des ~25 pages statiques à la main.
6h Matthieu + 18h Orfé- Migrer les 776 items CMS vers Localization (un item, deux langues) via script API
Matthieu - Copier/coller le contenu FR dans les ~25 pages statiques
Orfé - Configurer les slugs FR pour chaque page statique
Matthieu - Matcher EN/FR par script sur blog, events, ebooks et études de cas (cas ambigus validés à la main)
Matthieu - Relire et valider les traductions importées
Orfé
SEO et métadonnées
Je migre les titles et descriptions FR, puis je vérifie que tout le SEO technique est correct.
4h Matthieu + 8h Orfé- Copier les meta titles et descriptions FR dans Localization
Orfé - Script pour migrer les meta FR des collections CMS automatiquement
Matthieu
- Corriger le title en anglais de la page giveaway-module
Matthieu - Vérifier que les canonicals et hreflang sont corrects partout
Matthieu - Vérifier que le sitemap contient bien les URLs /fr/
Matthieu
Redirections
Je compile le plan final, j'intègre les 5 redirections 308 de Weglot et j'importe le tout en bulk via l'API Webflow.
8h- Compiler le plan de redirection final (ancien + nouveau)
Matthieu - Intégrer les 5 redirections 308 que Weglot utilisait
Matthieu - Faire le ménage des redirections legacy obsolètes (smartfactory) pour rester sous 1 000
Matthieu - Importer en bulk via l'API Webflow (wildcard quand pertinent)
Matthieu - Importer les redirections et les tester
Matthieu +
Orfé
Tests et mise en ligne
Je teste tout au complet, je désactive Weglot et je publie Localization en même temps.
7h Matthieu + 5h Orfé- Rouler le script QA automatisé (liens cassés, images, switch langue)
Matthieu
- S'assurer que chaque item s'affiche dans la bonne locale
Matthieu - Confirmer qu'aucun canonical FR ne pointe vers EN
Matthieu - Naviguer le site EN et FR au complet
Orfé - Désactiver Weglot et publier Localization en même temps
Matthieu - Soumettre le nouveau sitemap dans Google Search Console
Matthieu
Support après la mise en ligne
Je surveille l'indexation Google pendant 30 jours et je corrige les régressions détectées.
5h- Surveiller l'indexation Google chaque semaine
Matthieu - Corriger les bugs ou régressions qui sortent
Matthieu - Ajuster les redirections si nécessaire
Matthieu - Écrire le rapport final de migration
Matthieu
Risques et mitigations
| Risque | Prob. | Impact | Statut | Mitigation |
|---|---|---|---|---|
| Le trafic FR tombe pendant le switch | Moy. | Élevé | À mitiger | Je bascule en une seule passe, hors heures de pointe |
| Des URLs FR changent par erreur | Moy. | Élevé | À mitiger | Le mapping a été vérifié URL par URL |
| Dépassement du seuil best practice (1 000 redirections) | Faible | Faible | Plan défini | Ménage des legacy + import bulk via API + wildcards |
| Le blog mélange EN et FR | - | Moy. | Plan défini | Migration par script vers Localization (Option C) |
| Les canonicals FR pointent vers EN | - | Élevé | Plan défini | Localization corrige ça automatiquement |
| Zéro URL /fr/ dans le sitemap | - | Élevé | Plan défini | Le sitemap Localization est multilingue par défaut |
| Pas de hreflang dans le HTML | - | Élevé | Plan défini | Localization génère les balises côté serveur |
| Le toggle langue ne change pas l'URL | - | Moy. | Plan défini | Le switch Localization change l'URL |
| Les formulaires HubSpot cassent | Faible | Moy. | À valider | Les forms sont gérés côté HubSpot, pas par Weglot |
Coût et retour sur investissement
Fourchette de 48 à 64h facturées à 125 $/h pour la partie technique, soit 6 000 $ à 8 000 $ CAD avant taxes. Le sous-total de base (48h / 6 000 $) couvre le projet sans imprévu, sur scénario optimal. La fourchette haute (64h / 8 000 $) intègre jusqu'à 16h de buffer dédiées aux phases critiques : Phase 2 (extraction Weglot + audit redirections), Phase 4 (migration script de 776 items CMS) et Phase 6 (ménage et import bulk de 1 070 redirections legacy). Ces heures couvrent uniquement mes interventions. Les ~31h estimées côté Orfé (rédactionnel, validation, copies de pages statiques) sont facturées séparément par Orfé selon leur grille.
Heures par phase (Matthieu)
ROI sur 24 mois
| Phase | Heures | Coût (125 $/h) |
|---|---|---|
| Phase 1 : Audit et cadrage | 3h | 375 $ |
| Phase 2 : Préparation et extraction | 6h | 750 $ |
| Phase 3 : Setup Localization | 4h | 500 $ |
| Phase 4 : Migration contenu (scripts) | 6h | 750 $ |
| Phase 5 : SEO technique | 4h | 500 $ |
| Phase 6 : Redirections | 8h | 1 000 $ |
| Phase 7 : QA et déploiement | 7h | 875 $ |
| Phase 8 : Support 30 jours | 5h | 625 $ |
| Réunions & coordination | 5h | 625 $ |
| Sous-total | 48h | 6 000 $ |
| Buffer phases critiques (P2, P4, P6) & imprévus | 0–16h | 0–2 000 $ |
| Total | 48–64h | 6 000–8 000 $ |
| Le budget inclut déjà la migration par script (Option C) pour blog, events, ebooks et études de cas. | ||
Ce dont j'ai besoin pour commencer
État des accès, validations et confirmations nécessaires avant le démarrage de la Phase 2. Trois éléments encore en attente côté Orfé / Client.
| Prérequis | Statut | Responsable |
|---|---|---|
| Accès Webflow Designer | Obtenu | Orfé |
| Clé API Webflow v2 | Obtenu | |
| Accès API Weglot | En attente | Orfé / Client |
| Google Search Console | En attente | Client |
| Google Analytics (viewer) | En attente | Client |
| Plan Webflow | CMS confirmé | - |
| Site staging | Disponible | Orfé |
| Validation de ce cahier des charges | En attente | Orfé + Client |
| GO formel pour démarrer la Phase 2 | En attente | Orfé |
Comment je saurai que c'est réussi
La migration est terminée quand tous ces points sont cochés.
- Toutes les pages FR sont accessibles sous /fr/
- Les balises hreflang sont dans le HTML (pas injectées en JS)
- Les canonicals FR pointent vers eux-mêmes, pas vers EN
- Le sitemap contient les URLs /fr/ et est soumis à Google
- Le switch de langue change l'URL dans le navigateur
- Le blog, les events, ebooks et études de cas affichent uniquement la langue active
- Aucun lien cassé trouvé en QA
- Weglot est complètement désactivé et son script est retiré
- Le trafic organique français ne baisse pas de plus de 10% sur 30 jours
- Les redirections fonctionnent (aucun 404 sur les URLs connues)
- Les formulaires HubSpot marchent en anglais et en français
- L'audit technique
- Ce cahier des charges
- Le rapport de parité EN/FR
- Les scripts d'extraction et d'injection
- Le plan de redirection final
- La checklist QA
- Le rapport final de migration (30 jours après)