Cas d'utilisation : une boutique sur Tilda, avec un public dans plusieurs pays. Il semblerait que vous connectiez un widget JS de conversion de devises, les prix sont recalculés dans le navigateur de l'utilisateur — le problème est résolu. Mais lorsque vous regardez dans la Search Console, vous constatez que le trafic organique pour les requêtes étrangères n'augmente pas. La raison en est que le moteur de recherche ne voit pas la même chose que l'acheteur.
Selon une étude sur le shopping transfrontalier, 92 % des acheteurs préfèrent voir les prix dans leur devise locale, et un acheteur sur trois abandonne son panier si le prix n'est affiché que dans une devise étrangère. Cela semble évident, mais ce qui est intéressant, c'est la façon dont la plupart des magasins résolvent ce problème, et pourquoi la solution se transforme en un problème de référencement.
Comment fonctionne la conversion JS
La plupart des widgets et scripts de conversion de devises fonctionnent selon le même schéma : la page se charge avec les prix dans la devise d'origine, puis le JS obtient le taux de change via une API et recalcule les chiffres directement dans le navigateur de l'utilisateur.
Pour l'acheteur, cela semble normal : il est arrivé sur la page, et une seconde plus tard, il a vu le prix en euros. Parfois, il y a un léger scintillement au chargement, parfois non. Visuellement, cela fonctionne.
Le problème n'est pas que l'utilisateur ne voit pas quelque chose. Le problème est que le robot d'exploration voit la page d'une manière complètement différente.
Ce que voit Googlebot
Googlebot indexe les pages lors du rendu initial. Selon Google Search Central, le rendu JavaScript peut être retardé : la version HTML de la page est d'abord indexée, le JS peut être traité plus tard ou pas du tout.
Cela signifie que les prix dans la devise d'origine — les roubles, si le magasin est initialement russe — peuvent apparaître dans les résultats de recherche. Un utilisateur allemand saisit une requête, voit « 4500 ₽ » dans les résultats, clique, et ce n'est qu'après le chargement de la page que le prix est converti en euros.
Ce sont deux problèmes à la fois. Le premier : l'extrait dans les résultats de recherche affiche un prix non localisé, ce qui réduit le taux de clics. Le second : si vous utilisez le micro-balisage (schema.org/Product avec le champ price), il est écrit en HTML avec la devise d'origine. Le moteur de recherche voit les données structurées avec des roubles et les affiche telles quelles dans les résultats enrichis.
Par exemple, si vous utilisez Tilda, le code de la page contient souvent des balises meta ou un balisage JSON-LD du type "price": "4500" et "priceCurrency": "RUB". Même si le script JS en frontend remplace l'affichage par « €45 », le robot d'exploration, qui lit le HTML original, enregistrera le coût en roubles, ce qui entraînera des erreurs dans l'affichage du prix dans les résultats de recherche.
Pour vous assurer que le moteur de recherche voit la devise exacte que vous attendez, nous vous recommandons de vérifier la page via Google Rich Results Test. Cet outil montrera exactement comment Google interprète votre microdonnée en temps réel.
Le format des données structurées pour les produits, y compris les champs de prix et de devise, est décrit plus en détail dans la documentation officielle de Google sur les données structurées pour les produits.
Pourquoi c'est pire qu'il n'y paraît
Supposons que vous promouvez une page pour le marché allemand. Dans Google Merchant Center ou dans les résultats de recherche organiques, l'acheteur s'attend à voir le prix en euros. Si vos microdonnées indiquent « 4500 RUB », ce n'est pas seulement inesthétique — Google pourrait ne pas afficher vos produits dans les résultats de shopping locaux.
Une stratégie SEO pour un marché spécifique implique que le contenu de cette page corresponde à l'audience : langue, devise, contexte. La conversion JS donne l'illusion de la localisation, mais le contenu indexable reste dans sa forme originale.
Conversion Côté Serveur : Comment Cela Devrait Fonctionner
Lors de la conversion de devises sur le serveur, le navigateur de l'utilisateur reçoit une page déjà prête avec les prix dans la devise souhaitée. Tout est calculé à l'avance, le navigateur reçoit un HTML prêt avec les bons chiffres.
Googlebot voit la même chose qu'un client : le prix en euros, les microdonnées correctes, l'extrait correct. La localisation est complète — pour l'utilisateur et pour le moteur de recherche simultanément.
Dans cette approche, le taux de change est tiré d'une source fiable (par exemple, la BCE ou une autre API) et appliqué côté serveur proxy lors de la livraison de la page. Le cache est mis à jour selon un calendrier. L'utilisateur ne voit jamais de "scintillement" pendant le chargement.
Comment Multify résout le problème
Multify fonctionne comme une couche proxy entre le site et l'utilisateur. Lorsqu'une requête provient d'un utilisateur allemand, le serveur renvoie la page avec les prix déjà convertis en euros. Le taux de change est mis à jour automatiquement.
Ceci est important non seulement pour le référencement, mais aussi pour la structure des URL. La version linguistique du site se trouve à l'adresse /de/ ou de.yourdomain.com, et à cette même adresse, Googlebot voit un contenu correct en allemand avec des prix en euros. hreflang est généré automatiquement — aucune configuration séparée n'est nécessaire.
La différence avec l'approche JS est fondamentale : avec JS, vous faites semblant que le site est localisé, avec la conversion côté serveur, le site est réellement localisé – pour les humains et pour les moteurs de recherche.
Que faire si vous avez déjà une conversion JS
Si vous utilisez actuellement un widget de conversion de devises, consultez Google Search Console : que voit Googlebot lors de l'indexation de vos pages produits ? L'outil « Inspection d'URL » affiche le HTML que le robot a reçu — vérifiez si les prix sont dans la bonne devise et si le micro-balisage est correct.
Si vous voyez la devise d'origine — ce n'est pas une catastrophe, mais cela signifie que le trafic organique provenant d'autres pays ne fonctionne pas à plein régime.
FAQ
Googlebot ignore-t-il toujours le JavaScript ?
Non, mais cela fonctionne de manière plus complexe que souhaité. Google rend bien le JavaScript, mais cela se produit dans une file d'attente séparée et peut être retardé. Pour les pages récentes ou les prix qui changent rapidement, un délai d'indexation signifie que le contenu actuel apparaîtra plus tard dans les résultats de recherche. Pour les données dynamiques comme les prix, c'est inacceptable.
Et qu'en est-il de Yandex ?
Yandex rend également le JavaScript, mais avec des limitations. Pour les marchés de la CEI (Kazakhstan, Biélorussie, Arménie), c'est aussi un problème pertinent : le robot pourrait ne pas obtenir le contenu correct lors de la première exploration.
Comment vérifier que le moteur de recherche voit la bonne devise ?
Via Google Search Console : « Inspection d'URL » → « Voir la page indexée » → « Plus d'informations ». Le HTML que Googlebot a reçu y est affiché. Recherchez vos prix — dans quelle devise ils sont spécifiés dans la balise priceCurrency du microformat.
