The Best Multilingual Plugin for WordPress: Polylang vs. TranslatePress vs. WPML

If you want your WordPress site to be in different languages, there are a lot of plugins to choose from. Here’s my take on three of the most popular ones.

TranslatePress – Recommended!

TranslatePress is my #1 recommended translation plugin for WordPress. It is a great solution for keeping different language layouts synced to each other. In fact, they have to be.

To create a page in a different language, you use an editor that resembles the WordPress Customizer, with a toolbox and translation fields in the left sidebar and a preview of the front end of the page on the right. All of the editing is done on this front-end editor, including editing of the main menu and footer.

To translate, hover on the preview section and click on the pencil icon. Then, you can enter the translated text in the left sidebar. Easy!

This is pretty cool and pretty intuitive. Here’s a great YouTube video that demonstrates TranslatePress. Here’s an example of a site I designed for a client that uses TranslatePress.

The free version of TranslatePress supports two languages and does not translate metadata (for SEO, social tags, etc.) It does not have automatic language detection. There are paid add-ons that give you these features though.

The only issue I’ve found with TranslatePress is with Siteground’s file-based caching. If that is turned on, the translated pages show up in English. I simply turn off file-based caching when using TranslatePress on Siteground (other translation plugins may have caching issues as well).

WPML – Recommended for Pro Applications!

WPML is the most popular WordPress translation plugin. I would say it has the most “pro” features.

There is no free version, but the paid version resembles that of TranslatePress in the way it works. Like TranslatePress, you work with a single version of the page; only the translated text differs.

WPML really shines with features to get pages translated by a translation service, either yours or one of theirs.

They also boast tech support availability 19 hours a day in 10 languages – pretty amazing for a WordPress plugin!

Polylang

Polylang has both free and paid versions. Polylang sets up alternate versions of pages for each language that you want to translate. These alternate pages are completely independent. If you make a structural change to a page in one language, you have to manually make that change to the pages in the other languages if you want them to have that change.

This may be a good thing if you want each translation of your site to have different structures. In most of my use cases, however, it’s a bad thing, as I usually want the structure of each translation to be the same as the others; just the text should differ.

In the free version of Polylang, you are responsible for initially copying the layout and content for each page to the alternate language versions. If you re-copy page content from one language’s page to another, you’ll blow away the translations on that page.

If you want your different language pages to be mirrors of each other, differing only in translation, keeping different translated pages in sync with each other can be a huge pain.

Here’s a great YouTube video that demonstrates these limitations.

Polylang might be a good choice if the pages in different languages also differ in layout and structure. I find this to be a rare situation though, so I’d recommend one of the translation plugins above instead in most cases.

Bonus: qTranslate XT

A translation plugin you might not have heard of is qTranslate XT. This used to be in the WordPress repo as “qTranslate X”. It was abandoned and resuscitated by another developer under the name “qTranslate XT” and is available on github now.

I like the simplicity of this plugin. You do your language edits right in the WP classic editor. You switch between languages using buttons at the top.

The different languages are stored in the database separated by shortcodes. Here’s an example of what the database record would look like for a post title with ten translations:

[:en]The Post Title[:uk]Заголовок запису[:ru]Заголовок записи[:fr]Le titre du message[:de]Der Beitragstitel[:it]Il titolo del post[:sv]Inläggets titel[:nl]De titel van het bericht[:ee]Postituse pealkiri[:ro]Titlul postului[:]

Note that the developer actually doesn’t recommend using this plugin for sites with ten languages. He recommends using it on sites with just two to three languages.

The plugin also works on Advanced Custom Fields text fields, but I couldn’t get it to work on other types of fields such as URL or image, even though those claim to be supported. I was able to implement different images for different languages by using text fields to store the image URL and alt text instead of the ACF image field.

A language switcher menu item can be configured to show language flags or not, with other configuration options.

As for the development status of this plugin, one of the plugin developers posted on Github:

Sorry again I’m still in a very busy situation giving little time for side projects but just to let you know I’m still around. I’ll try to do some minimal updates for “low-hanging fruits”. – 1/12/2025

So, at least someone is home and answering the phone, so to speak. I’m not sure how long this plugin will be supported, but then again that is the case with any free WordPress plugin – even those in the WordPress repo.

Conclusion

The free TranslatePress plugin might be the right choice if you only need two languages.

For more languages, either the paid TranslatePress or WPML plugins might be the right choice.

For lots of translation service options (i.e., you don’t want to enter the translated text yourself), WPML is a great choice.

Polylang might be the right choice if your translated pages are different from each other. It’s not a good choice if the translated pages need to be kept in sync with respect to layout and structure.

Shares

Discover more from Web Developer Tips and Tricks

Subscribe to get the latest posts sent to your email.

Please Leave a Question or Comment

Subscribe
Notify of
guest

This site uses Akismet to reduce spam. Learn how your comment data is processed.

2 Comments
Inline Feedbacks
View all comments
Pavlos Giorkas
1 year ago

Hello Brian,

Thanks for the quick and to the point comparison. I think the best solution for me, based on your post, is Polylang’s free version.

You see, I own two blogs with the same thematology, one in Greek and one in English.

I am planning on translating the content of my Greek website from Greek to English and moving the English content from my English website to the Greek website and translating it to Greek.

So, just two languages..

Of course, proper redirects will be set-up for SEO purposes.

My only problem at the moment is that I don’t know what I should do with the Google search console..

Nicolas
Nicolas
1 year ago

Thanks a lot Brian

this is the most important to know : “Polylang might be the right choice if your translated pages are different from each other. It’s not a good choice if the translated pages need to be kept in sync with respect to layout and structure”

as we work with Elementor this is very important for us

so we will stick with WPML

thanks