French, English, Spanish, Chinese, German: whether it’s to address various audiences, or to be present internationally, sometimes we need to offer content in several languages on our site.
I’m thinking in particular of the tourism sector, for which this is very important.
But how to make a multilingual WordPress site? Can it be done natively? With plugins? Which ones will be the most appropriate?
We answer to all these questions in this article, in order to guide you in the right direction.
- What is a multilingual WordPress site?
- Multilingual best practices
- How to manage multiple languages with WordPress?
- Single site plugins
- The must-have WordPress multisite plugin: MultilingualPress (premium)
- Weglot, a totally different approach (freemium)
- What about ecommerce?
- Conclusion: your project is unique
Originally written in 2016, this article was last updated in October 2021.
Your best WordPress projects need the best host!
WPMarmite recommends Bluehost: great performance, great support. All you need for a great start.
What is a multilingual WordPress site?
Let’s start with the basics. We may not have the same understanding of “multilingual” so I’ll give you my definition in a few points.
1 – The content of each language exists on a different URL
In other words, if you put your French text and your Spanish text on the same page, with a separation between the two, for example, it is not valid.
You need a page with the French content, and a page with the Spanish content. And each of them will be accessible on a different URL.
2 – There are content equivalences (or not)
Let’s take another example: you have an “About” page. This one will exist in English, but it may have an equivalent page called “Sobre mí” in Spanish.
Well… maybe not! You may have completely different content for each language. In that case, some pages will not have equivalents.
3 – There are bridges between languages
In the same example, if I’m on the “About” page, I need to be able to access an option that allows me to switch to Spanish. If there is an equivalent page, I will be led there. Otherwise, I will land on the home page of the Spanish site.
4 – Translation can be done by humans or machines
And here I’m going to take a stand: a human translation will always be better (that’s why I won’t present in detail the plugins that only do machine translation).
If you talk to real people behind a computer, they will recognize quality texts. This will affect their browsing behavior, but also their SEO (Search Engine Optimization).
5 – Multilingual but not necessarily multi-country
By proposing an English version of my content, I am not targeting the UK or the US. I simply target all English-speaking people.
For multi-country issues, it becomes more complex, since we will create different sites per country, even if they share the same language.
So this is not a subject covered by this article.
Multilingual best practices
Beyond these “rules”, there are also good practices you will have to follow to create a multilingual site with WordPress that is worthy of the name.
The best multilingual URL structure
First, you’ll need to choose the URL structure (the address of a page on your website) that you will use to distinguish between countries. There are 4 options:
- The query string like
?lang=en, which is to be avoided.
- The directory where we will have for example
- The sub-domain with for example
- Separate domains like
If you are on a multi-country project (with a local presence), different domain names are the most interesting. They will allow you to work on the brand locally and to produce specific content.
But at this point, it is also possible to imagine that the sites have no equivalence between them… Each local branch could have its own site, without any question of multilingualism.
On the other hand, if you want to offer content in several languages, but you are not established abroad, the best thing to do is to choose a generic, non-localized domain name.
For example, a
.comwill be easier to decline on several languages, unlike a
which will become strange for a Spanish user.
If we remove the query string (bad for SEO) and separate domain names, there are only two choices of URL structure for classic multilingualism: the directory structure or the sub-domain structure.
The choice of one or the other will depend on your project and your needs.
The easiest, but also the most efficient in terms of SEO, will probably be the directory structure.
For the record, Google often prefers a subdirectory or subdomain, as the engine recommends using dedicated URLs with a language indicator.
Concerning WPMarmite, now, let us specify that its English version is presented in this format
Alex has therefore chosen to use a URL structure determined by the name of the directory, keeping the name of the main domain with a language slash.
Want to learn more about multilingual SEO? Find out some expert advice and best practices for optimizing your site in this article.
Beware of language selectors
A multilingual site can be recognized by a language selector – also called a switch – that can be found in the navigation, in the sidebar, or in the footer.
But beware, there are two small details that can be frustrating for your visitors.
Detail #1: the flag. Nothing like a visual clue to understand that you can change languages, right? But as much as it certainly is interesting for multi-countries, it doesn’t make as much sense for a multilingual WordPress site.
Will a Brazilian click on a Portuguese flag? An Australian on a British flag? A Belgian on a French flag?
As you can see, flags are actually a bad practice if you don’t do multi-country. The name of the language will be more appropriate.
Let’s talk about detail #2: the name of the language. Will a French Internet user prefer to browse in “French” or in “Français“?
Chances are, they will prefer the name of their language as they call it every day (“Français “) and not as we translate it. So leave the name in the original language.
Automatic redirects can be a problem
Finally, you will see that all the plugins presented in this article offer an option to redirect users in their browsing language.
That is to say, most of the time, it will be the settings of their internet browser that will be used to determine whether to send them on a different language.
Thus, a Spanish user who wants to access an article that you have written in English will be redirected to a version in his language, if it exists.
Everything starts with good intentions: we want to offer our visitor the content he is most able to understand. But it is also possible that he wants to access a specific page and that a redirection prevents him from doing so.
The only thing I can invite you to do here is to check the documentation of each of the solutions presented, to see how they work.
Your case is probably different from another, so anticipate what would be best for your users, and activate this option accordingly.
We have seen the 3 good practices to respect:
- The best URL structure according to your project.
- The traps to avoid with the language selector.
- And the potential risk of language redirects.
Let’s move on to the technical side, if you don’t mind.
Join the WPMarmite subscribers
Get the last WPMarmite posts (and also exclusive resources).
How to manage multiple languages with WordPress?
Natively, WordPress does not allow multilingualism. It does not meet requirements 2 and 3 mentioned above: you cannot establish equivalences or propose bridges between contents in an automated way.
You will therefore have to rely on plugins to add these features.
You are also wondering how to make a multilingual WordPress site without a plugin? Well, it’s obviously possible, but you’ll have to get your hands dirty and opt for custom development. This is not really the easiest and fastest solution for an uninformed user, which is why I’m focusing here on plugins, which will make your life easier.
But before mentioning them, I’d like to come back to the multi-country issues.
If you have sites managed by different teams for each country, it will probably be better if they all have a different domain name and WordPress installation.
This is called a “single site” installation. But you could also imagine another approach, if the sites are managed by the parent company (for example): multisite.
The single site/multisite distinction
Multisite is a native feature of WordPress (but a bit hidden) to manage several sites from a single dashboard. We will in fact create a “network” of sites and they will share the same WordPress installation.
That way, it becomes very easy to switch from one to another from the same interface and we also gain in maintenance efficiency.
The multisite is therefore a viable lead to do multilingualism. But if we stop there, we still don’t have the management of equivalences and gateways.
Indeed, the contents of each language exist on each sub-site but without any link between them. That’s why we will add a plugin.
This being said, you can also make multilingual on a single site installation thanks to the addition of plugins. This way, you will be able to manage each language from a single WordPress site.
It is the plugin that makes it possible for the different languages to coexist and to create equivalences and bridges.
To better understand, here is a diagram:
How is it technically managed with a single site?
If I make a quick incursion into the technical aspect, it is because not all plugins work in the same way when it comes to managing the contents of other languages.
Some do it through taxonomies, others by creating their own tables in their database.
But the most important thing, beyond the way it is managed, is that the content is clean if you decide to change solution.
Unfortunately, this is not the case with qTranslate and its successor plugins such as qTranslate-X. Rather than storing the information elsewhere, they prefer to put the different languages in the same content.
This means that if you disable the plugin, you will have all the content of the different languages in your articles and pages one after the other. It’s not clean, that’s why I won’t talk about this solution, which, anyway, is no longer available on the official directory since the end of August 2021…
The others, in comparison, take advantage of the WordPress architecture or put their data “on the side”. At least you don’t have to rewrite all your content if you disable multilingualism or change your solution.
Which direction to choose to make WordPress multilingual?
Which way? Should you go for single site or multisite?
(We will voluntarily put aside the multiplication of single sites. We are leaving the topic of multilingualism.)
To decide, you will have to base your decision on two factors:
- The similarity between your content in each language.
- And the number of pages and articles you plan to write.
For example, if your content is strictly identical (but translated) from one language to another, you will be able to do a single site without any problem. But if you have great disparities between your sites, multisite would probably be more practical.
But more importantly, if you intend to make an online magazine in several languages, it means that you will eventually have thousands of articles. And after a while, the performance will degrade.
Is it better to have one site with 4,000 articles, or 4 sites with 1,000 articles?
Answer B! Dividing the content into different sub-sites will make the whole thing stronger and sustainable.
So if you want to decline a showcase site in several languages, the single site will be appropriate. But if you are launching an editorial project, the multisite will be better.
And depending on your orientation, you will have different plugins.
Single site plugins
Let’s start with single site plugins, because this is the most common case. We have two challengers that are not easy to choose between: WPML and Polylang.
The “battle” is played out on the side of code cleanliness, for the purists, and Polylang is the winner in this game. But that’s not all: compatibility, ease of use and price are equally (if not more) important factors!
There are many other plugins, but these two are a must. There is no need to look any further.
WPML, the most popular multilingual WordPress plugin (premium)
When I first looked into multilingual plugins back in 2013, it was a jungle. There were many solutions available and the landscape was not as clear as it is today.
But already back then there was one name that kept coming up: WPML.
If this plugin has been around for so long, it is perhaps because of its business model: despite the criticism it may have received over the years, it is still around. The developers are still improving it and offering support.
By the way, I’m talking about criticism, but I could have said “attacks”. Indeed, the plugin had the reputation of being not very compatible with other themes and plugins (list of compatible themes on their site), or even of slowing down the loading speed of sites.
It has also been blamed for being outdated, because it adds its own tables to your database, rather than relying on WordPress taxonomies to handle multilingualism.
While this mode of operation is outdated at the time of updating this article, it was the right solution when it was launched, because custom taxonomies did not exist yet.
However, WPML is not an ugly duckling and has proposed many improvements over the years, as the release of its version 4.5, in October 2021.
For what WPML considers its most important update since its creation, the plugin is now able to automatically and immediately translate all of your site’s content (pages, posts, products, custom fields, etc.) as soon as you publish or update them, thanks to its “Translate Everything” feature:
A million sites already know about it
In the end, WPML remains the most used plugin for multilingualism, according to the usage statistics provided by the plugin’s developers. According to them, “almost a million sites use WPML “.
The plugin even has 14 official add-ons and a large number of unofficial ones.
Getting to grips with the plugin won’t be easy and you’ll need to understand the role of each add-on.
However, WPML remains a very solid player, as it is one of the pioneers on its market: it launched in the late 2000s.
This experience will guarantee that you will be able to manage your site as you wish.
WPML offers three different licenses (with a 30-day money back guarantee):
- The annual license to manage one multilingual blog costs $39.
- The annual license to manage up to 3 WordPress sites costs $99.
- The annual license for agencies that want to manage an unlimited number of sites costs $199.
By the way, switching from one offer to another will only cost you the difference.
Thanks to it, you will be able to translate your site’s translation strings, i.e. “texts that are not in the posts, pages and taxonomy”, says WPML (e.g. site slogan, widget titles, etc.).
Polylang, the French challenger (freemium)
Polylang, whose development began in 2008, has not had the same success. It took much longer to become known, but it then managed to overshadow WPML, especially because it was free.
The plugin then moved to a freemium model, but with a very substantial free part already.
In fact, it’s a bit of a David vs. Goliath (WPML) battle if you look at the numbers and the commercial success. But Frederic Demarle, the French developer, really has nothing to be ashamed of.
With 600,000+ active installations, Polylang is a plugin that keeps its promises.
It manages multilingual content properly, using the WordPress taxonomy system to find your content.
And not to spoil the fun, it has a simpler interface than WPML.
One of the advantages of Polylang is that you can probably settle for the free version of the plugin. And in the worst case, if you are not satisfied with it, you can always consider the premium version, or switching to another solution.
By the way, the price of licenses is higher than WPML. If you want to take advantage of more advanced features, you should opt for Polylang Pro.
The annual license fees change according to the number of sites you want to use Polylang Pro on:
- €99 i.e. ± $115 for one site.
- €198 i.e. ± $231 for 3 sites.
- €297 i.e. ± $346 for 5 sites.
- €495 i.e. ± $576 for 25 sites.
First, check that the “pro” features make sense for you by looking at the comparison on this page.
Personally, I find that the pro features are quickly necessary as soon as you are picky (at least, I am). And then, you end up with more expensive licenses than WPML, especially if you have to manage several sites.
The developers will protest by telling me that the documentation is rich and that you can do a lot of things thanks to the functions and hooks.
Download the Polylang plugin:
Are you interested in Polylang? Learn how to set it up like a pro by checking our dedicated guide.
Which plugin to choose for a single site?
Thanks to the free Polylang package, it is easy to “test the waters”. This is what I invite you to do: test it to see if it is compatible with your project.
If it is, don’t touch anything else! If not, see if its add-ons or its pro version could help you.
And if that’s still not enough, I invite you to give WPML a chance, while adding its official add-ons if necessary.
Polylang and WPML are two first choice solutions. However, if you want to dig deeper, there are other plugins that can make WordPress multilingual, like TranslatePress.
The must-have WordPress multisite plugin: MultilingualPress (premium)
Once your multilingual project is ambitious, a multisite installation will become attractive. At that point, there is a plugin that will make equivalencies and bridges possible: it’s MultilingualPress.
Launched in 2011, MultilingualPress is recommended by several experts, including the Yoast SEO and WooCommerce teams. We have to say that it’s solid.
Its main strength is that it allows you to translate your content without even having to change your site.
But it doesn’t stop there. It also combines several welcome advantages:
- The plugin takes care of the loading speed of your pages, by loading only one language per site (instead of loading all languages).
- Each language can have its own design, features and plugins. It’s up to you.
- It is compatible with page builders, especially Elementor and Beaver Builder.
- It is optimized for WooCommerce.
You’ll also be able to duplicate entire sub-sites the day you want to add a new language. The features are really interesting and convenient.
But it’s still a multisite with a heavy administration that you can’t escape.
It also means that you will have to check the licenses of your themes and plugin since each sub-site will count as a site.
As far as pricing is concerned, you won’t have much choice: you’ll have to pay to use MultilingualPress, which no longer offers a free version.
3 licenses are available:
- The Standard license (1 multisite network, 3 languages) costs $99.
- The Pro license (3 multisite networks, 6 languages) costs $299.
- The Agency license (9 multisite networks, 18 languages) costs $599.
As you can see, the choice between one license or another will depend on 2 major criteria, which make the prices go up: the number of languages to create and the number of multisite networks to manage. The more languages you have, the more expensive it will be.
If you prefer a free plugin only, you can try Multisite Language Switcher (not tested). Depending on your needs, it might be enough for occasional adjustments, but keep in mind that it is still much less rich in options than MultilingualPress.
Weglot, a totally different approach (freemium)
What if we reinvented multilingualism? This is the idea that Augustin Prot and Rémy Berda (two Frenchmen, again) had when they launched Weglot. And it must be said that their approach is so radical that it completely breaks the single site/multisite distinction.
In fact, they didn’t even imagine Weglot for WordPress in the first place. Their technology is based on a script that translates your site’s pages, without them appearing in your site’s interface.
Their service is cloud-based, but they still offer a free plugin on the official directory, Weglot Translate, which allows you to translate from your WordPress dashboard.
While the plugin is free for small websites, it does have limitations. You can only translate a maximum of 2,000 words, and choose only one translation language.
For the rest, everything happens in their interface where you will automatically have a machine translation available.
This is where it gets much more interesting. You can choose the pages to translate and you don’t have to translate the whole site.
Even if you have to manually go back over the translations to get them right, the automatic side will save you precious time.
Because yes, their bias is that automatic translations are at such a high level of quality that they can serve as a basis for your site. If a human validation is still necessary, let’s say that the work is premade.
Moreover, with them, you won’t have to worry about incompatibilities with your themes or plugins: there won’t be any! Their solution retrieves all the sentences that appear on your page and translates them on the fly.
All translations are updated in real time, and each new content is automatically translated.
Frankly, I think that their solution will not suit all needs. But if you want to have identical versions of your site in multiple languages without worrying about technical issues, go for it.
You will be able to translate your site with ease… as long as you fit into their mold.
On the other hand, this facility has a cost and it will be in the form of a subscription. But you still have the possibility to test their service for free during 10 days to make an opinion.
There are then several offers (annual or monthly):
- Starter (€99/year i.e. ± $115/year ), to translate your site into a language up to 10,000 words.
- Business (€190/year i.e. ± $221/year), to translate your website in 3 languages up to 50,000 words.
- Pro (€490/year i.e. ± $570/year), to translate your site into 5 languages, up to 200,000 words.
- Advanced (€1,990/year i.e. ± $2,314/year), to translate your site into 10 languages, up to 1 million words.
- Enterprise (€4 990/year i.e. ± $5,800/year), for unlimited use.
Download the Weglot plugin:
Beyond Weglot, there are other machine translation plugins/services:
- Translate WordPress with GTranslate, Google Website Translator and Translate WordPress – Google Language Translator help you translate your WordPress site using Google’s machine translation service.
What about ecommerce?
Ouch, we’ve reached a sensitive point.
Because yes, if you’re launching translated versions of your site, it may be to sell your products. But, once again, this becomes much more complex.
Each of the solutions mentioned will work more or less well with WooCommerce. Here is the state of play:
- WPML has an add-on for WooCommerce (called WooCommerce Multilingual), which you can access automatically by purchasing the “Multilingual CMS” or “Multilingual Agency” license. It allows you to translate your products, categories, attributes and even to go to multi-currency. This can be very practical in some cases.
- Polylang also offers its own Polylang for WooCommerce plugin (€99/year i.e. $115/year for use on 1 site). It works with both the free and paid versions of the plugin, and allows you to translate products, categories, tags and global attributes of your online store.
- MultilingualPress will have no problem managing WooCommerce on each of the sub-sites. But this means that you don’t manage one store but several… What about inventory management? It will not be possible.
- And Weglot ignores any problem: you manage only one store with texts translated on the fly. You only have to worry about configuring WooCommerce to handle all the payment and delivery issues inherent to international commerce.
Conclusion: your project is unique
I’d like to point you in the right direction right now, really. But just like in ecommerce, your project is probably different from the one next door.
That’s why there are so many different solutions for multilingualism.
How to make a #multilingual site with #WordPress? WPMarmite gives you the keys and the best #plugins to achieve your goals.
Next, do extensive testing on your site. Check every sentence, every widget, every navigation scenario. Also change your browser language to test automatic redirects. This is the only way to see the limits of each solution.
Finally, if for any reason you need to change your plugin, you should know that there are migration plugins for almost every solution:
- WPML to Polylang, to migrate a site using WPML to Polylang.
- Migrate Polylang to WPML, to move from Polylang to WPML.
Rather than starting from scratch, you can continue your work easily!
Be sure to make a backup of your site before you start. You never know.
What is your favorite solution for making WordPress multilingual? Why or why not? The conversation continues in comments!
Receive the next posts for free and access exclusive resources. More than 40,000 people have done it, why not you?