# Antipatterns d’un site multilingue pensé pour un marché puis étendu

> Un site pensé pour un seul pays accumule des rustines à chaque langue ajoutée. Voici les signes à repérer avant que la refonte ne devienne inévitable.

- Auteur : Clément Hadrot
- Publié le : 2025-02-20
- Mis à jour le : 2025-02-20
- Catégorie : Multilingue
- URL : https://wpmoderne.dev.wordpress-developpement.fr/multilingue/antipatterns-site-multilingue-marche-unique-etendu/

## L’essentiel

- Les textes codés en dur dans le thème sont le premier signal d'alerte
- Une taxonomie de pays ajoutée après coup masque le vrai problème
- Chaque nouvelle langue qui prend plus de temps que la précédente est un symptôme

Un site conçu pour un marché unique, puis étendu langue après langue au fil des opportunités commerciales, développe presque toujours les mêmes symptômes. Un audit mené récemment sur un site e-commerce B2B, passé du français à quatre langues en trois ans sans jamais revoir son architecture initiale, permet de dresser une liste de signaux qui auraient dû alerter bien plus tôt.

Aucun de ces signaux n'est spectaculaire pris isolément. C'est leur accumulation, et surtout leur tendance à s'aggraver à chaque nouvelle langue ajoutée, qui indique qu'une refonte structurelle devient nécessaire plutôt qu'une nouvelle rustine ponctuelle.

## Antipattern n° 1 : le texte codé en dur dans le thème

Le thème du site, développé sur mesure pour le lancement français, contenait des dizaines de chaînes de texte codées en dur directement dans les fichiers PHP du thème : libellés de formulaires, messages de confirmation, textes de pied de page. Ce choix, anodin sur un site monolingue, s'est transformé en dette technique croissante à chaque langue ajoutée, puisqu'aucune de ces chaînes n'était traduisible via `__()` ou `_e()` avec un domaine de texte correctement enregistré.

Pourquoi c'est un problème : chaque nouvelle langue nécessitait de retrouver manuellement ces chaînes dans le code, de créer une variante conditionnelle par langue avec des tests sur `pll_current_language()`, ce qui a multiplié les branches `if` dans le thème au fil du temps, rendant chaque modification ultérieure plus risquée que la précédente.

Quoi faire : enregistrer un domaine de texte dès le développement du thème, même sur un site initialement monolingue, et systématiser `__()` pour toute chaîne visible par l'utilisateur. Le coût de cette discipline est nul sur un site à une langue ; son absence coûte cher dès la deuxième langue.

## Antipattern n° 2 : une taxonomie « pays » ajoutée après coup

> L'essentiel à retenir : Les textes codés en dur dans le thème sont le premier signal d'alerte ; Une taxonomie de pays ajoutée après coup masque le vrai problème ; Chaque nouvelle langue qui prend plus de temps que la précédente est un symptôme

Face à des besoins d'affichage différents par marché, l'équipe avait ajouté une taxonomie personnalisée « pays cible », distincte de la langue gérée par Polylang, pour filtrer certains contenus commerciaux. Sur le papier, cette séparation entre langue et marché est une bonne pratique reconnue. Le problème n'était pas la taxonomie elle-même, mais son ajout tardif, sans migration des contenus existants : la moitié des articles anciens ne portait aucun terme de cette taxonomie.

Pourquoi c'est un problème : les filtres construits sur cette taxonomie, dans les templates d'archive, traitaient silencieusement l'absence de terme comme signifiant « tous les marchés », ce qui affichait par erreur des contenus destinés à un seul pays sur les pages d'accueil des autres marchés.

- Une taxonomie ajoutée après coup doit systématiquement inclure un plan de migration des contenus existants.
- Une valeur absente ne doit jamais être interprétée implicitement comme « toutes les valeurs ».
- Un audit périodique des contenus sans taxonomie renseignée évite l'accumulation silencieuse.

### Antipattern n° 3 : la traduction des slugs jamais anticipée

Les URL du site suivaient le schéma `/produit/nom-du-produit/`, avec des slugs français jamais traduits, même dans les versions anglaise et allemande. Ce choix, souvent motivé par la peur de casser des liens existants, a produit des URL anglaises contenant des mots français, nuisant à la fois à la lisibilité pour l'utilisateur et au référencement naturel dans les langues cibles.

## Antipattern n° 4 : chaque nouvelle langue plus lente que la précédente

L'indicateur le plus révélateur de cet audit reste chronologique : l'ajout de l'anglais avait pris six semaines, l'allemand onze semaines, l'italien dix-huit semaines, la dernière langue en date près de vingt-cinq semaines pour un périmètre fonctionnel comparable. Cette dégradation progressive signale une dette technique qui s'accumule plus vite qu'elle n'est remboursée, chaque langue ajoutant sa couche de contournements sur les précédentes sans que rien ne soit jamais nettoyé.

> Quand ajouter une langue prend systématiquement plus de temps que la précédente, le problème n'est plus la langue : c'est l'architecture qui a atteint sa limite.

## Ce que l'audit a recommandé

Plutôt qu'une cinquième langue ajoutée dans les mêmes conditions, l'audit a recommandé une refonte ciblée en trois temps : extraction systématique des chaînes codées en dur vers un domaine de texte, migration complète de la taxonomie pays sur l'ensemble du contenu existant, et traduction rétroactive des slugs avec redirections 301 pour préserver le référencement acquis.

| Signal | Coût si ignoré |
| --- | --- |
| Texte codé en dur | Multiplication de branches conditionnelles fragiles |
| Taxonomie ajoutée sans migration | Contenus mal ciblés silencieusement |
| Slugs jamais traduits | Référencement naturel affaibli durablement |

## En résumé

Un site multilingue né d'une extension progressive, marché après marché, accumule presque inévitablement ces trois antipatterns si personne ne prend le temps de revoir l'architecture entre deux lancements. Le signal le plus fiable à surveiller reste la durée d'intégration de chaque nouvelle langue : si elle augmente à chaque fois, la prochaine langue ne doit pas être ajoutée avant un nettoyage structurel.
