Skip Navigation

This thread is resolved. Here is a description of the problem and solution.

Problem:
The client is concerned about WPML's WooCommerce Multicurrency feature not creating distinct URLs for each currency, which is recommended by Google for better indexing and structured data management. The client wants to know why WPML uses cookies instead of URLs for currency differentiation and how to configure WPML to create distinct URLs for each currency.
Solution:
1. Google's documentation recommends, but does not require, distinct URLs for each currency. Many e-commerce sites successfully use dynamic currency switching without separate URLs, focusing instead on ensuring that the structured data matches the displayed price.
2. By default, WPML changes currency using cookies and user sessions to avoid duplicate content and simplify store management. WooCommerce itself does not support separate URLs per currency.
3. To display different currencies based on the site's language (resulting in separate URLs), follow these steps:
- Go to WPML > Languages.
- Select "Different languages in directories".
- Go to WooCommerce > WooCommerce Multilingual > Multi-currency tab.
- Enable "Show prices in different currencies based on site language."
This setup links currency to language, but each language must have a unique currency.
4. For custom URL structures like example.com/usd/product/, custom development is necessary. A developer can modify the URL structure, update structured data dynamically, and set up canonical tags to prevent duplicate content issues. We recommend hiring a developer experienced in WooCommerce and WPML customization from https://wpml.org/contractors/.
5. Ensure your structured data is correct by using tools like Google's Rich Results Test and verifying that SEO plugins handle currency display accurately.

If this solution does not apply to your case, or if it seems outdated, we highly recommend checking related known issues at https://wpml.org/known-issues/, verifying the version of the permanent fix, and confirming that you have installed the latest versions of themes and plugins. If further assistance is needed, please open a new support ticket at WPML support forum.

This is the technical support forum for WPML - the multilingual WordPress plugin.

Everyone can read, but only WPML clients can post here. WPML team is replying on the forum 6 days per week, 22 hours per day.

This topic contains 1 reply, has 0 voices.

Last updated by Carlos Rojas 3 weeks, 2 days ago.

Assisted by: Carlos Rojas.

Author Posts
March 15, 2025 at 1:05 pm #16819843

pouryam

Background of the issue:
Hi, I have an issue according to wpml multicurrency and I need to use another plugin for multi currency as yours has obvious weakness in multicurrency according to google's documents:
as you see below having distinct url per currency is mandatory according to google's document and your plugin have a huge bug on that and make a big difference on indexing pages. different currencies = different customers
hidden link
When offering products for sale in multiple currencies, have a distinct URL per currency. For example, if a product is available for sale in Canadian and US dollars, use two distinct URLs, one per currency.

Symptoms:
The plugin changes currency using cookies only, instead of creating different URLs for each currency.

Questions:
Why does WPML use cookies instead of creating distinct URLs for each currency?
How can I configure WPML to create different URLs for each currency?

March 18, 2025 at 9:26 am #16828795

Carlos Rojas
Supporter

Languages: English (English ) Spanish (Español )

Timezone: Europe/Madrid (GMT+02:00)

Hello,
Thank you for reaching out and sharing your concerns regarding WPML’s WooCommerce Multicurrency feature.

I completely understand how important it is for you to ensure your website meets Google’s best practices for structured data and indexing. Let me clarify how WPML handles multicurrency and what options you have.

1. Google’s Recommendation vs. Requirement
You mentioned that having distinct URLs per currency is mandatory according to Google’s documentation. However, Google recommends distinct URLs for currencies but does not require them. Their guidance suggests this approach to help search engines understand localized pricing, but it is not a strict rule or a penalty-triggering issue. Many successful e-commerce websites use dynamic currency switching without separate URLs.

The key point is ensuring that the structured data (Schema.org) matches the price displayed on the page—this is what affects Google’s indexing and rich results.

2. How WPML Handles Multicurrency
By default, WPML’s WooCommerce Multicurrency feature changes currency using cookies and user sessions, rather than separate URLs. This is a common and efficient way to handle pricing in WooCommerce stores because:
- It ensures users see prices based on their preferred or local currency.
- It avoids duplicate content issues that may arise from having multiple URLs with only price differences.
- It simplifies store management, as WooCommerce itself does not natively support separate URLs per currency.

That said, I understand that you prefer distinct URLs per currency, and I’d be happy to guide you on what is possible with WPML.

3. Your Options for URL-based Currency Display
While WPML does not natively create separate URLs per currency, there are two possible solutions:

Option 1: Linking Currency to Language (Built-in WPML Feature)
If your site uses different languages, you can configure WPML to display different currencies based on the site’s language, which results in separate URLs.

How to set this up:

Go to WPML > Languages.
Under "Language URL format," select "Different languages in directories" (e.g., example.com/en/ and example.com/fr/).
Then, go to WooCommerce > WooCommerce Multilingual > Multi-currency tab.
Enable "Show prices in different currencies based on site language."
Now, users visiting different language versions of your site will see different currencies, and each language will have a distinct URL.
- Limitation: This approach works only if each language has a unique currency. If you want the same language but different URLs for different currencies, a custom solution is needed (see below).

Option 2: Custom Development for Currency-Based URLs
If you need URLs like example.com/usd/product/ and example.com/eur/product/, this is not a standard WooCommerce or WPML feature, but it can be achieved with custom development. A developer could:
- Modify the URL structure to include currency parameters.
- Ensure that structured data dynamically updates to match the displayed price.
- Set up proper canonical tags to avoid duplicate content issues.
- If this is something you’re interested in, I recommend working with a developer experienced in WooCommerce and WPML customization: https://wpml.org/contractors/

4. Ensuring Your Structured Data is Correct
Regardless of how your currency is displayed, the most important thing for Google indexing is that the structured data price matches what users see on the page.

To verify this:
- Use Google’s Rich Results Test (link here) to check your structured data.
- If you’re using an SEO plugin (Yoast SEO, Rank Math, etc.), ensure it correctly handles currency display in structured data.

Conclusion
WPML uses cookies for currency switching by design to ensure a smooth user experience.
Google recommends separate URLs for currencies but does not require them.
If you want currency-specific URLs, you can link currency to language (built-in feature) or use custom development.
The most important factor for Google indexing is ensuring structured data price matches the displayed price.

I hope this explanation helps! Let me know if you’d like more details or assistance setting up the best approach for your store.

Best regards,
Carlos