Points clés à retenir
- La vitesse d’un Shopify multi-devises se résume à un seul choix : convertir les prix sur les serveurs de Shopify avec Markets natif, ou les convertir dans le navigateur avec une application tierce.
- Shopify Markets natif avec Shopify Payments affiche les prix dans la devise de présentation de l’acheteur côté serveur, il n’y a donc pas de script supplémentaire ni de clignotement des prix.
- La plupart des applications de conversion de devises injectent du JavaScript render-blocking et un appel de géolocalisation sur chaque page, puis réécrivent les prix côté client, ce qui est une source fréquente de layout shift.
- Les règles d’arrondi, le sélecteur de devise, les redirections par géolocalisation et la mise en cache affectent les performances multi-devises de Shopify bien plus que ce que pensent les marchands.
- Fudge crée le sélecteur et le formatage des prix sous forme de code de thème natif, de sorte que l’UI de vos devises n’ajoute pas le poids d’un widget et reste en place si vous désinstallez l’app.
Vendre dans plusieurs devises est l’un des moyens les plus rapides de développer une boutique Shopify, mais c’est aussi l’un des plus faciles pour plomber votre page speed. Le problème vient rarement des devises elles-mêmes. C’est la façon dont les prix sont convertis et l’endroit où ce travail s’effectue.
Gérer la vitesse d’un Shopify multi-devises correctement implique de garder la conversion sur les serveurs de Shopify et en dehors de l’appareil de l’acheteur. Faites cela, et gérer dix devises ne vous coûtera presque rien. Faites-le mal avec une lourde application de conversion, et chaque page produit portera un script supplémentaire qui réécrit les prix après que la page a déjà été affichée.
Ce guide explique pourquoi les configurations multi-devises nuisent aux performances, comment Shopify Markets natif évite les dégâts, et ce qu’il faut vérifier pour garder les performances multi-devises de Shopify dans le vert.
Pourquoi vous pouvez nous faire confiance
Jacques a plus de 15 ans d’expérience en développement et a créé des vitrines internationales pour des centaines de boutiques Shopify. Nous développons Fudge, un éditeur de boutique IA noté 5.0 sur le Shopify App Store, nous travaillons donc directement sur la couche du thème où vivent les sélecteurs de devises et le formatage des prix, et nous voyons l’impact qu’un mauvais composant peut avoir sur les Core Web Vitals.
Pourquoi les configurations multi-devises nuisent à la vitesse
Un prix sur une page produit semble anodin. Convertir ce prix dans la bonne devise pour chaque visiteur ne l’est pas.
Il y a deux endroits où la conversion peut avoir lieu. Sur le serveur, avant que Shopify n’envoie le HTML au navigateur. Ou dans le navigateur, après le chargement de la page, à l’aide d’un JavaScript qui lit l’emplacement de l’acheteur et réécrit chaque prix sur la page.
C’est avec la deuxième approche que les dégâts commencent. Un convertisseur côté client doit faire trois choses coûteuses sur chaque page :
- Charger son propre JavaScript, souvent render-blocking, avant que les prix ne soient corrects.
- Faire une recherche de géolocalisation pour deviner le pays du visiteur, généralement via un appel réseau à un point de terminaison tiers.
- Réécrire le DOM, en trouvant chaque élément de prix et en modifiant le texte après coup.
Chaque étape coûte du temps, et la troisième coûte en stabilité. Lorsque les prix sont réécrits après le premier affichage, les chiffres changent de largeur, les éléments se réorganisent, et vous obtenez un Cumulative Layout Shift (CLS). Google mesure le CLS comme un Core Web Vital, et le « bon » seuil est de 0.1 ou moins.1 Un prix qui saute de « 49 $ » à « 1 299 kr » après le chargement est exactement le type de décalage qui vous fait basculer du mauvais côté de la ligne.
La page speed est directement liée à la conversion, et elle est liée aux classements SEO. Pour une vue d’ensemble sur les raisons pour lesquelles les boutiques perdent du temps, consultez notre rapport sur l’état des performances Shopify.
Shopify Markets natif vs applications de conversion de devises
Shopify a une réponse native à cela, et elle supprime entièrement le travail côté client.
Shopify Markets vous permet de vendre dans différents pays et régions avec des devises locales. Lorsqu’un marché utilise une devise locale, Shopify convertit les prix de votre boutique dans la devise de présentation de l’acheteur et les rend côté serveur, de sorte que le navigateur reçoit les bons prix dans le HTML initial.2 En combinant cela avec Shopify Payments, l’acheteur paie également dans cette devise de présentation au checkout, la plateforme gérant la conversion.3
C’est la différence clé. Markets natif fait la conversion avant que la page ne soit envoyée. Une application de conversion le fait une fois la page arrivée.
Voici comment les deux approches se comparent sur les éléments qui déterminent la vitesse.
| Facteur | Shopify Markets natif | Application de conversion de devises |
|---|---|---|
| Où se fait la conversion | Serveurs de Shopify | Navigateur de l’acheteur |
| JavaScript supplémentaire par page | Aucun | Son propre script, souvent render-blocking |
| Recherche de géolocalisation | Gérée par la plateforme | Généralement un appel réseau côté client |
| Prix dans le HTML initial | Correct dès le first paint | Réécrit après le chargement |
| Risque de layout shift | Minime | Élevé, les prix changent après le rendu |
| Devise au checkout | Native, via Shopify Payments | Revient souvent à la devise de la boutique |
| Coût | Inclus dans votre forfait | Abonnement mensuel à l’app |
La solution via une app peut sembler pratique car vous l’installez et « ça marche tout seul ». Le coût caché est un script sur chaque page et un clignotement du prix qui nuit à la fois au CLS et à la confiance des acheteurs. Pour découvrir comment configurer cela de A à Z, consultez notre guide de configuration multi-devises Shopify.
Comment Markets natif garde des prix rapides
Si Markets natif est plus rapide, ce n’est pas un tour de magie. C’est simplement que le travail coûteux n’atteint jamais le navigateur.
Les prix arrivent déjà convertis et déjà formatés dans le HTML, il n’y a donc aucun script render-blocking qui attend de les corriger et aucune réécriture des prix côté client pour causer un layout shift. Le navigateur affiche le bon chiffre une fois et n’y touche plus.
Dans votre thème, les prix passent toujours par les filtres money de Liquid. La différence est que Shopify résout la devise de présentation sur le serveur et que le filtre sort la valeur locale :
{% comment %} S'affiche dans la devise de présentation de l'acheteur, côté serveur {% endcomment %}
<span class="price">{{ product.price | money }}</span>
Pas d’élément enveloppant (wrapper), pas d’attribut de donnée (data attribute) pour qu’un script le trouve plus tard, pas d’état « de chargement » sur le prix. C’est la forme que doit prendre chaque prix sur votre page.
Arrondi et formatage des prix
Les prix convertis tombent rarement juste. Un produit à 49,00 $ avec un taux de change en direct pourrait atterrir sur 1 287,43 dans une autre devise, ce qui semble cassé à côté d’un catalogue de chiffres ronds.
Shopify Markets vous permet de définir des règles d’arrondi par marché, afin que les prix convertis se terminent de façon logique par .00 ou .99 pour chaque devise.3 C’est une décision d’affichage et de tarification, pas de performance, mais cela compte : l’arrondi est appliqué côté serveur, il ne coûte donc rien au moment du rendu et permet à vos prix de paraître intentionnels plutôt que générés par une machine.
Le formatage suit la même logique. Les séparateurs de milliers, les marques décimales et le symbole de la devise proviennent tous des paramètres de format de devise de Shopify et sont rendus dans le HTML. Une application de conversion qui reformate les nombres en JavaScript refait un travail que la plateforme fait déjà gratuitement.
Le sélecteur de devise et son coût
Les acheteurs ont besoin d’un moyen de changer de devise ou de pays, et c’est là qu’une configuration native peut encore mal tourner.
Le sélecteur lui-même doit être un simple formulaire rendu par le serveur, et non un widget JavaScript qui récupère des options au chargement. Le formulaire de localisation de Shopify vous offre exactement cela :
{% form 'localization' %}
{{ localization.available_countries | ... }}
<button type="submit">Mettre à jour</button>
{% endform %}
Un sélecteur natif comme celui-ci n’ajoute que quelques éléments de balisage et aucun script supplémentaire. À l’inverse, un widget tiers pour changer de devise est souvent l’élément le plus lourd de la page : il a son propre bundle, ses propres styles et son propre appel de géolocalisation. Si vous ne retenez qu’une chose de ce guide, c’est que le sélecteur est l’endroit où se cache le poids.
Géolocalisation, mise en cache et contenu dupliqué
Au-delà du prix sur la page, trois détails au niveau de la plateforme façonnent les performances et le SEO multi-devises.
Redirections par géolocalisation. De nombreuses boutiques redirigent automatiquement les visiteurs vers une URL spécifique à leur pays en fonction de leur IP. Fait côté client, cela ajoute une recherche et une redirection avant que l’acheteur ne voie quoi que ce soit. Shopify Markets peut suggérer le bon marché avec une recommandation légère au lieu de forcer une redirection stricte, ce qui évite l’aller-retour. Préférez une suggestion que l’acheteur peut rejeter plutôt qu’une redirection automatique qui bloque le first paint.
Mise en cache et CDN. Les prix rendus par le serveur peuvent être mis en cache, ce qui explique en partie pourquoi la conversion native est rapide. Les convertisseurs côté client sapent cela en rendant la « bonne » version de la page dépendante d’un JavaScript qui s’exécute après la livraison du HTML mis en cache. Garder la conversion côté serveur permet au CDN de faire son travail.
Contenu dupliqué. Gérer le même catalogue sur plusieurs marchés peut créer des pages presque identiques qui se font concurrence dans les résultats de recherche. La configuration de Shopify Markets gère la structure des URL et le routage localisé pour que chaque marché soit résolu proprement. Le lien avec les performances ici est indirect mais réel : moins de chaînes de redirection et un routage plus propre signifient moins de requêtes gaspillées.
Considérations sur les balises hreflang et les locales
La devise et la langue sont des axes distincts, mais ils voyagent ensemble dans les boutiques internationales.
Globalement, les balises hreflang indiquent à Google quelle URL sert quelle langue et quelle région, afin que la bonne version se classe pour le bon public. Shopify Markets émet ces balises pour vos marchés configurés lorsque vous utilisez ses URL localisées. Vous n’avez pas besoin de créer les balises à la main, mais vous devriez confirmer qu’elles sont présentes, car un ensemble hreflang manquant ou erroné envoie les moteurs de recherche vers la mauvaise page régionale. Pour une vision stratégique de la façon dont les marchés, les langues et les devises s’articulent, consultez notre guide sur Shopify Markets.
Une checklist pour garder vos Core Web Vitals au vert avec plusieurs devises
Utilisez ceci pour auditer une boutique multi-devises existante ou pour en planifier une nouvelle. L’objectif est d’atteindre les trois seuils des Core Web Vitals : un LCP en moins de 2,5 secondes, un CLS de 0.1 ou moins, et un INP de 200 millisecondes ou moins.1
- Convertissez sur le serveur, pas dans le navigateur. Utilisez Shopify Markets natif avec Shopify Payments pour que les prix arrivent corrects dans le HTML.
- Supprimez toute application de conversion de devises côté client si Markets natif couvre vos devises. C’est généralement un poids redondant.
- Affichez le sélecteur de devises comme un formulaire côté serveur, pas comme un widget JavaScript.
- Définissez des règles d’arrondi par marché pour que les prix semblent intentionnels et soient résolus côté serveur.
- Évitez les redirections strictes par géolocalisation. Préférez une recommandation de marché qu’il est possible de fermer plutôt qu’une redirection bloquante.
- Vérifiez s’il y a un layout shift sur les éléments de prix. Si un prix change après le chargement, quelque chose le réécrit côté client.
- Confirmez que les balises
hreflangexistent pour chaque marché afin que les pages régionales soient correctement référencées. - Corrigez d’abord la vitesse de base du thème. Le multi-devises ne sauvera pas un thème lent.
Ce dernier point est important. Si votre boutique est déjà lente, la gestion des devises n’est pas votre premier problème. Commencez par découvrir comment accélérer un thème Shopify, et si de gros médias sont en cause, le lazy loading des images est souvent le plus grand gain individuel.
Où Fudge entre en jeu
Markets natif gère la conversion. Ce qu’il ne fait pas, c’est construire l’UI de la vitrine autour : le sélecteur de devises, le formatage des prix, l’apparence de l’ensemble dans votre thème. Ce travail retombe toujours sur quelqu’un.
Fudge est un éditeur de boutique IA qui écrit du code de thème natif. Vous décrivez ce que vous voulez, « ajoute un sélecteur de devises et de pays à mon header qui correspond à ma marque, et formate les prix pour chaque marché », et il écrit le Liquid, le CSS et le JavaScript directement dans votre thème.
Parce que le résultat est natif, il n’y a aucun widget de devise tiers qui se charge sur chaque page, aucun script render-blocking supplémentaire, et aucun appel de géolocalisation greffé par une application. Le sélecteur est un balisage que votre boutique comprend déjà, il n’ajoute donc concrètement aucun poids.
Et comme il s’agit du code du thème, il survit à la désinstallation. Si vous annulez votre abonnement Fudge, le sélecteur et le formatage restent exactement là où ils sont, contrairement à un élément rendu par une app qui disparaît lorsque vous la supprimez. Il en va de même pour tout ce que vous créez avec le générateur de pages Fudge.
FAQ
Il ne ralentit la boutique que lorsque la conversion se fait dans le navigateur. Shopify Markets natif convertit les prix sur les serveurs de Shopify et les envoie déjà formatés dans le HTML, il n'y a donc pas de script supplémentaire ni de coût en termes de page speed. Les applications de conversion tierces sont celles qui ajoutent du JavaScript et du layout shift sur chaque page.
Oui. Markets natif rend les prix convertis côté serveur, le navigateur affiche donc le bon chiffre une seule fois, sans réécriture côté client. Une application de conversion charge son propre JavaScript, fait un appel de géolocalisation et réécrit les prix après l'affichage de la page, ce qui est une cause fréquente de Cumulative Layout Shift.
Avec Shopify Markets et Shopify Payments, les prix de la boutique sont convertis automatiquement dans la devise de présentation de l'acheteur en utilisant le taux de change actuel, et l'acheteur paie dans cette devise lors du checkout. Vous pouvez définir des règles d'arrondi par marché afin que les prix convertis se terminent par des chiffres ronds plutôt que par des décimales bizarres.
Généralement non. Si Markets natif avec Shopify Payments couvre déjà vos devises, une application de conversion est un poids redondant qui duplique le travail que la plateforme effectue côté serveur. La supprimer améliore souvent les Core Web Vitals sans perte de fonctionnalité.
Un sélecteur natif rendu sous forme de formulaire de localisation côté serveur n'ajoute qu'un peu de balisage et aucun script supplémentaire. Le coût en vitesse vient des widgets de changement de devises tiers qui embarquent leur propre bundle et une recherche de géolocalisation côté client. Créez le sélecteur sous forme de code de thème natif et son coût sera négligeable.
Cela peut arriver si les pages régionales sont presque identiques et manquent des bons signaux. Shopify Markets gère le routage d'URL localisé et émet des balises hreflang pour vos marchés configurés, ce qui indique aux moteurs de recherche quelle page sert quelle région. Confirmez que les balises hreflang sont présentes pour que la bonne page régionale soit bien positionnée pour le bon public.
Footnotes
-
web.dev, “Web Vitals” - les « bons » seuils sont un LCP en moins de 2,5 secondes, un CLS de 0.1 ou moins, et un INP de 200 millisecondes ou moins, mesurés au 75ème percentile. https://web.dev/articles/vitals ↩ ↩2
-
Shopify Dev, “About Shopify Markets” - la devise de présentation (client) est celle qui s’affiche et dans laquelle le client paie, tandis que la devise de la boutique est utilisée dans l’admin ; avec les devises locales activées, les prix de la boutique en ligne sont convertis automatiquement dans la devise du client grâce aux taux de change du marché. https://shopify.dev/docs/apps/build/markets ↩
-
Shopify Help Center, “Setting up currencies for markets” et “Currency conversions and exchange rates” - Shopify Payments convertit les prix dans la devise locale d’un client, les marchands peuvent personnaliser l’arrondi par marché, et un sélecteur de pays ou de devises permet aux clients de choisir leur région. https://help.shopify.com/en/manual/markets/customizations/local-currencies ↩ ↩2