Why I Switched from WPML to Polylang

Part of the beauty of e-commerce is that business owners can take their products international and sell to customers all over the world. However, in order to fully take advantage of this opportunity, they need their online stores to be both multilingual and well-optimized for performance.

I’ve helped many of my clients translate their WooCommerce sites and add multi-currency functionality. Initially, I used WPML to accomplish this. However, after running into serious performance issues because of it, I decided to switch to Polylang and create my own multi-currency extension to use alongside it.

In this post, I’ll discuss some of the issues I’ve encountered with WPML, particularly when using it on clients’ WooCommerce sites. Then I’ll tell you about my Polylang WooCommerce multi-currency extension, and how I’ve been using it to help my clients succeed. Let’s dive in!

Why I switched from WPML to Polylang

When I first started working on multilingual WooCommerce sites for clients, WPML seemed like the best solution. It’s a very popular translation plugin and offers the advantage of being compatible with many themes and other plugins, including WooCommerce.

However, I quickly ran into some problems when working with WPML. Specifically, in my experience, it has a serious negative impact on site performance.

With the help of IT Concept which helps me manage my clients’ servers, they set up monitoring tools and thus have a more precise idea of what was going on.

Here you can see the extremely high CPU usage on one of my client sites while it was running WPML, with a spike hitting well over 50 percent:

On another client site, we started seeing abnormal CPU usage with huge spikes when crons were running:

As a result, several of my client sites experienced drops in their sales after installing WPML. Obviously, the business owners were not happy about this. Plus, the servers crashed regularly due to high CPU usage and SQL queries.

So, I started looking for an alternative. Unfortunately, this was not as easy as you might expect. I struggled to find a translation plugin that would provide the same level of WooCommerce compatibility as WPML without the excessive resource usage.

I ultimately decided to switch my multilingual client sites from WPML to Polylang. It uses the taxonomy relationships already available in WordPress core, which minimizes the number of queries that need to be made to the database.

Here you can see normal CPU usage on a site running Polylang – note that the highest spike here only reaches eight percent:

Polylang saves resources and prevents the increased loading times my clients were experiencing with WPML. As a result, it’s now my go-to translation solution.

How I translate multi-currency WooCommerce sites with Polylang (in 4 steps)

The drawback of switching from WPML to Polylang is that its WooCommerce support is not up to my standards. In particular, it’s lacking in multi-currency support, which is highly important to some of my clients.

After carrying out some research, I found that most of the multi-currency extensions available are not well-adapted to Polylang. So, I made my own. Here’s how it works.

Step 1: Set the currency for each language on your WooCommerce client site

When the plugin is installed and activated, you can set the currency for each language you’ve added to WooCommerce using Polylang. Just go to WooCommerce > Settings > General and select the relevant language from the admin toolbar:

Then scroll down and set the currency as you normally would using WooCommerce’s settings:

Remember to save your changes. You can repeat this process for each language so that the relevant currency is associated with each one.

Step 2: Specify product prices in each language and currency

Once you’ve set your client site’s languages and currencies, you can start translating products using Polylang. When you add a product in a new language, you’ll notice the price settings in the editor use the currency you specified in the WooCommerce settings:

Once the product and its translations are published, the plugin displays prices in the corresponding currency based on which language is in use:

This gives you all the advantages of using Polylang to translate WooCommerce sites with multi-currency support built in. You don’t even need separate language and currency switchers.

Step 3: Provide exchange rates to enable currency translation for discounts and fees

My Polylang multi-currency extension also enables you to set exchange rates for the different currencies you’ve added to your site. In turn, this makes it possible to offer comparable discounts and fees across languages.

Exchange rates are based on the default language as set up in Polylang. To specify them, go to Languages and click on the Edit link below the secondary language you wish to provide a rate for.

Scroll to the bottom of the settings, enter the exchange rate, and save your changes:

Now you can set up ‘translatable’ coupons. For example, here I have a fixed amount coupon for $10:

If I apply this coupon code on the checkout page while the language is set to Korean, it will apply the equivalent discount in South Korean won using the exchange rate:

This makes managing discounts for multi-currency WooCommerce sites extremely simple. Similarly, fees such as shipping will be ‘translated’ based on the exchange rate, too:


So, if you want to charge a flat rate for shipping, you can be sure customers are paying a fair amount in fees every time. Plus, you can avoid juggling an unruly number of shipping zones and methods in WooCommerce.

Step 4: Track sales and analytics in each currency

Finally, my Polylang WooCommerce multi-currency extension also enables users to track sales and monitor analytics for all the currencies supported by their sites. There’s a simple dropdown selector on the Analytics > Overview screen:

This lets you (or your client) to easily compare sales for different audiences based on currency.


Over the past year, I’ve switched several of my client sites from WPML to Polylang. Across the board, results have been very positive. The online stores are highly optimized and running smoothly. Most importantly, my clients are happy.

I’m now assisting international companies with implementing a multi-currency WooCommerce translation solution. I’m also working on developing improved compatibility between Polylang and third-party plugins so that it integrates seamlessly with my client sites.

How are you handling WooCommerce site translation? Share your thoughts with me in the comments section below!







5 responses to “Why I Switched from WPML to Polylang”

  1. LauGau Avatar

    Looks really nice ! Thanks for your work !
    Unfortunatly I cannot use it for my current project : a website for a business in Switzerland. There, people have one currency (“Swiss Franc” CHF ) but multiple languages (french, italian, german, etc…). Also they are shipping to France (where the currency is “euro” EUR)… So associate a language does’nt work (ex: some readers in the “french” language will want to pay in EUR other in CHF)…

    Can your plugin adapts to this case ? If not any recomandation ?
    Thank you again ! 🙂

  2. Tomi Avatar

    Interesting. Do you have a source code for your plugin? Or is it for sale?

  3. Alex Avatar

    Is it for sale yet or download??

  4. Piotr Avatar

    Nice! Same question here. Do you offer your custom code for sale or for download?

  5. Olga Avatar

    Hi there,
    I have the same problem in Step 1 – with saving changed currency. I want to use Polish zloty (PLN) and Euro but when I save the PLN in Polish language, the PLN is also visible in English version. And vice versa: when I save euro in English version, I see euro in Polish translation 🙁
    Any solution to this?

Leave a Reply

Your email address will not be published. Required fields are marked *

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.