Top FREE WordPress Translation Plugins Compared
Home » BLOG » WordPress » Top FREE WordPress Translation Plugins Compared

Top FREE WordPress Translation Plugins Compared

category:  WordPress

Recently I have had a request from my new client to build a website with multilanguage in WordPress. The goal is to have two languages with the possibility to add more languages in the future. The client prefers to pay a one-time payment if any plugins are needed for the website. Moreover, the client requests the site be able to show the post, page, custom post type, custom field, category, tag, and media files in the search result based on the current language as well. So I did some research based on my key features for comparison.

Contents hide
3 FREE WordPress Translation Plugins

A theme and plugins I use for testing

Key features for comparison

  1. Translate all types of content – Posts, Pages, Categories, Tags, Menus, Theme and Plugin Texts, Site Title and Description, Custom Field, and Media attachments (Image, PDF, DOCX, PowerPoint, and Excel).
  2. The Language Switcher can add to the site.
  3. SEO friendly – Separate URLs for each translated version, ability to translate URL slug, SEO plugin support
  4. Theme and Plugins compatibility – Work with any theme and plugin including the page builder such as Elementor.
  5. Validation text – Form plugin.
  6. Multi-languages – How many languages can add to the site with a FREE plugin version?
  7. Easy to use
  8. Be able to search for each language (I forget to test this feature but I will come back when I have time)

FREE WordPress Translation Plugins

For testing, I install a fresh WordPress on my localhost and install the translation plugins I want to test for each fresh WordPress.

TranslatePress – Translate Multilingual sites

TranslatePress is my first choice in terms of ease to use. Why? Because I can add the text translation via live preview.

The only two limits of the FREE version for me are, I can add only TWO languages and the URL won’t be separated for each translated version. The limit can be terminated if you buy SEO Pack and Multiple Languages add-ons from TranslatePress.

General tab – Where I can config the languages on the site

FREE translatePress - General Settings
FREE TranslatePress plugin
Key features check – Multi-languages -> allow only two languages on the site for the FREE version

I set English as the default language and add Thai as a second language. With the FREE Translatepress plugin, it allows you to add only two languages. If you want to add more than two languages, you have to buy the Multiple Languages add-on from TranslatePress.

Translate Site tab

Key features check – Translate all types of content -> Pages

Once the General tab is set, I start to translate the site by clicking on the “Translate Site” tab, it will redirect to the translation page as shown below.

FREE TranslatePress - Translate Site Tab
FREE TranslatePress plugin – Translate page with live preview

On the translation page, I start to translate the text via live preview.

String list that you can translate on this current page
FREE TranslatePress plugin – Which string you can translate on the current page

On the live preview, I can translate the text by hovering the text. Then click on the edit icon on that text for translation. Really simple, easy, and fast. I can add the text translation without leaving the live preview. Another way to translate, I can select the string from the String List and add the text translation from there.

Tip: I can use the shortcut (clrt+s) for saving the change. It saves more time with the handy shortcut. I like it.

Note: Translatepress plugin works with a default block editor and Elementor (page builder).

How to translate text from FREE TranslatePress plugin
FREE TranslatePress plugin – How to translate text on the Translate page
Key features check – Translate all types of content -> Image metadata (title, alt text, caption, description)

I can also add a new image for each language. This benefit is you can add the alt text, title, caption, and description of the image for each language. See the example below.

Change the image source for each language
FREE TranslatePress plugin – add a new image with metadata (alt text, title, caption, description) for each language
Key features check – Translate all types of content -> Custom Post Type and Custom Taxonomies

For custom post type and custom taxonomies, I use Custom Post Type UI plugin to create a News custom post type as well as custom taxonomies (News Categories and News tags) as shown below.

Custom Post Type UI plugin
Custom Post Type UI plugin

I set the News CPT as post. I also set the News CPT with “has archive” so that I can have a News Archives page to show all news. After testing with TranslatePress, I am able to translate all text from the custom post type as well as custom taxonomies without any issues. See below.

Archives News CPT page - translation with TranslatePress
Archives News CPT page – translation with TranslatePress
Single News CPT page - translation with TranslatePress
Single News CPT page – translation with TranslatePress
Single Custom Taxonomy page - translation with TranslatePress
Single Custom Taxonomy page – translation with TranslatePress
Key features check – Translate all types of content -> Custom Field

For custom field translation tests, I use the Advanced Custom Fields plugin. I create a new custom field for my News custom post type. I found no issue with the custom field translation. See below.

Custom Field translation by FREE TranslatePress plugin

FREE TranslatePress plugin should work with other custom field plugins as well.

Key features check – Language Switcher

I add the language switcher that the TranslatePress plugin provides from the Menus at Customizer. See the screenshot below. I can also use the shortcode [language-switcher] to display the language switcher anywhere on the site as well.

FREE TranslatePress plugin – Add language switcher to the menu

After adding the language switcher on the menu, I can see the flag language switcher as shown below. I can config how the language switcher looks via the General tab if I don’t want to show the flag language.

Opposite Language Switcher
FREE TranslatePress plugin – Opposite Language Switcher

Click on the flag, and the site will switch the text to a second language. From the screenshot above, it will switch from Thai to English.

On the frontend, while you are still logged in, you can access the translate page from the admin topbar as shown below.

Key features check – Translate all types of content -> Posts, Categories, Tags, Media metadata

I test the text translation for posts, categories, tags, and media metadata as shown below.

TranslatePress - translate posts, categories, tags, media metadata
FREE TranslatePress plugin – Translate posts, categories, tags, and media metadata (PDF, DOCX, Excel, Powerpoint)

1, 2, and 3 are the text translations for comments, categories, and tags.

4,5,6, and 7 are the text translations for the file title attribute.

Tip: With the FREE Translatepress plugin, you can use the Duplicate Page plugin in order to duplicate the posts, pages, and custom post types along with the text translation you did.

Key features check – Theme and Plugin Translation & Validation text
  • Form

Here is the form translation including the validation text from the form. I use the WP form Lite plugin for testing.

FREE Translatepress plugin - Translate form and validation text
FREE Translatepress plugin – Translate form and validation text

1,2 and 3 are the input text, validation text, and button text from the WP Form Lite plugin. So you can see that Translatepress can find those texts and allow me to add the text translation for them.

In general, if the plugin or theme is translation-ready, Translatepress should be able to translate the text from it.

  • Theme, Plugin, Site Title, and Site Description

For Theme, other plugins, and emails, you can translate via String Translation. Basically, on the translate page, you will see two choices at the bottom left of the screen. The default selected choice is “Visual Editor” and another one is “String Translation“.

On the String Translation page, you can translate Slugs if you buy a Pro version. For the FREE version, you can translate the text of Plugins and Theme as well as Emails.

For the Site title and description which are shown in the browser tab, you have to buy SEO Pack add-ons.

Key features check – SEO Friendly

You need to buy SEO Pack add-ons. So you can translate the slug for each language. For the FREE version, the site will use the same URL but add an extra language code after the domain name.

For the main language site (English), the URL looks like “example.com“. For the news page, the URL looks like “example.com/news

For the second language site (Thai), the URL looks like “example.com/th“. For the news page, the URL looks like “example.com/th/news

Wrap up for FREE TranslatePress plugin

What the FREE version can not do:

What the FREE version can do:

  • Translate all types of content (Pages, Posts, Categories, Tags, Menu, Media, Custom Post Type, Custom Taxonomies, Custom Field)
  • Provide the language switcher (Be able to add to the Menu or use Shortcode anywhere)
  • Translate theme, other plugins, and emails (using String Translation)
  • Translate validation text from the form plugins

Useful link from the TranslatePress plugin:

FREE Polylang plugin

The Polylang plugin (FREE and Paid versions) won’t support the page builder completely (no mention of page builder support on the official PolangLang website as well). To avoid the issue, I will use the WordPress Block Editor to create the pages and posts for testing.

I will test based on my key features.

Install and Setup

After installing and activating the Polylang plugin, it brings to the wizard setup. I follow the instructions.

FREE Polylang plugin - Wizard setup
FREE Polylang plugin – Wizard setup

Visit Polylang – Getting Started

Key features check – Language Switcher

Following the wizard’s instructions, I will create the menus manually in each language. Then add a language switcher to the menu.

Basically, just go to Appearance then Menus. On the Menus page, click on the “Screen Options” tab at the top then select “Language switcher” elements. So I can add the “Language switcher” to the menu for each language.

So I have two languages which are Thai and English. I will create two menus for each language. The menu will display based on the selected language by visitors.

The Polylang Language Switcher provides some options for displaying on the frontend. See the screenshot below.

Language switcher displaying option - FREE Polylang plugin
Language switcher displaying option – FREE Polylang plugin

Compared with the TranslatePress plugin, I don’t need to create menus for each language. The TranslatePress plugin still makes things fast and easy to use.

Key features check – Multi-languages

The FREE Polylang plugin allows me to translate unlimited languages.

Key features check – Translate all types of content

Duplicate content for each language

I notice after the wizard setup, the new front page for the second language is created by the plugin. Nothing is added to the new front page. I have to add the content for my second language manually. Compared with the TranslatePress plugin, it never created the content for each language. The TranslatePress plugin provides only the text translation which stores in the database. So you never had duplicate pages or posts for each language just like Polylang.

Code Editor in WordPress Block Editor

You can copy all content from the default language page by using the code editor. Basically, on the default language page edit mode, change from Visual editor(default) to Code editor. Then copy all HTML code and paste it to the new language page. Then the new language page will have the content and layout as same as the default language page. What you have to do next is to change the text from the default language to the new language. This method works for WordPress Block Editor.

Code editor in WordPress Block Editor
Code editor in WordPress Block Editor

Note that, the duplicate content for each language will cost your database storage. If your site is large or your site uses WooCommerce, I suggest checking WPML or TranslatePress paid versions.

How to translate the content (pages, posts, categories, tags) with FREE Polylang plugin

Basically, I have to add new content for each language. See the screenshot below.

How to translate the page using FREE Polylang plugin
How to translate the page using FREE Polylang plugin

Let’s say I want to add Thai content on the About page which is English content. I navigate to the About page at the backend(1) and click on the plus icon of the About page (2). WP will redirect to the edit About page mode. In the edit mode, I see nothing on the new About page. It is empty.

In order to have the same layout or content that I already created on the About page in English, I can copy the HTML code from the About page in English by using the code editor from WordPress Block Editor. Then copy the HTML code and paste it into the About page in Thai. After that, I will change the English text to Thai text line by line.

Back to the backend, I can see no plus icon on the About page in English. It changes to the pencil icon which means the translated page is created.

At this point, I see time consumption for using the Polylang plugin. Compare with the TranslatePress plugin, I can translate the text much faster by using live preview. Moreover, the TranslatePress plugin won’t create duplicate content (pages and posts) just like Polylang plugin does.

I translate the text for the pages, posts, categories, and tags. The way to translate is the same. I have to create the content for the Thai language. In the end, I will have two sets of content. One is for English and the other is for Thai.

In the end, I will have two sets of content. One is for English and the other is for Thai. - Pages, Posts, Categories, and Tags
In the end, I will have two sets of content. One is for English and the other is for Thai. – Pages, Posts, Categories, and Tags
How to translate the content (custom post type and custom taxonomies) with FREE Polylang plugin
  • Create custom post types and taxonomies

Next, I will create the custom post type and custom taxonomies using the Custom Post Type UI plugin.

I create a News custom post type. I also create News Categories and News Tags for the News custom post type. See the screenshot below.

News custom post type and taxonomies
  • Config Polylang plugin for translating the custom post type and taxonomies

Back to the backend, then navigate to Polylang settings. Next, click on the “Custom post types and Taxonomies” module settings. Then tick on News custom post type and taxonomies for activating languages and translations for custom post type and custom taxonomies. See the screenshot below.

Activating languages and translation for custom post types and custom taxonomies in FREE Polylang plugin
Activating languages and translation for custom post types and custom taxonomies in FREE Polylang plugin

Official Polylang doc: How to set up multilingual custom post types and taxonomies in Polylang.

After I set the “Custom post types and Taxonomies” module, I go back to my custom post type, and here is what I see.

Language columns are shown on the custom post type and custom taxonomies page but no add or edit icon
Language columns are shown on the custom post type and custom taxonomies page but no add or edit icon

In order to make the translation icons available for custom post types. I have to edit the custom post type and just click the Update button. So that the database gets to update the default language for my custom post type. See the screenshot below.

  • Update menus

Every time you add a new custom post type and want to show it on the frontend, don’t forget to add them on the menus for each language.

Update the custom post type so the database gets to update the default language
Update the custom post type so the database gets to update the default language
After updating the custom post type, now the add icon shows for my second language. Then I can add my Thai translation on “News 2” which is my custom post type. See the screenshot below.
Add Thai translation for the custom post type

For the custom taxonomies, it works the same way as the custom post type. After activating the language and translation for the custom post type and custom taxonomies, I will need to edit the custom taxonomies and just hit the Update button.

Then I will be able to add the Thai translation for them.

The taxonomies and custom taxonomies will be available on their custom post type based on the language. So I don’t see the taxonomies in English are available on the custom post type in Thai for example.

How to translate the content (custom field) with FREE Polylang plugin

For creating the custom field, I will use the FREE Advanced Custom Fields plugin.

I add the custom field to the posts, pages, and custom post types. They are working with Polylang. This is because Polylang duplicates the content (posts, pages, and custom post type) from the default language. When you add the custom fields to any posts or pages or custom post types, they will be added to all the content of these post types. It should NOT have any issues with other custom field plugins as well.

How to translate the content (media) with FREE Polylang plugin

Basically, I want to change the media metadata (title, alt text, caption, and description). In FREE Polylang, I can activate the Media module in Languages Settings from Polylang at the backend. Once I activate the module. I navigate to Media Library and click on the media which is the image in this case. Then I click on “Edit more details” at the bottom right on the popup.

From the “Edit Media” page, I can add the Thai translation to the Languages meta box. I just click the plus icon then I start to add the Thai text translation for the image. With this method, I can translate the metadata and the image won’t be duplicated.

When I add the image to my pages or posts, I will see only one image in the Media library. The media metadata will display following the selected language by visitors.

Visit How to work with media in Polylang plugin.

Key features check – SEO Friendly

For the URL will separate based on your selected language. For example, the default Front pate will be “http://localhost/example“. The Thai Front page (my second language) will be “http://localhost/example/th/home-ไทย/“.

For the FREE TranslatePress plugin, the URL won’t separate based on the selected language. The URL will use from the default language URL only. If you need to separate the URL based on the selected language, you need to buy an SEO Pack add-on.

For the archive URL (archive custom post type, archive categories, archive tags pages), You need to buy the Polylang Pro version. It will come with the “URL slug Translation”.

Key features check – Theme and Plugin Translation & Validation text

For the FREE Polylang plugin, I can translate the text via Strings translations at the Languages setting from the Polylang plugin. I can filter the group (text domain) to narrow down the result.

Visit Strings Translation Doc

  • Site title and description

I can translate the site title and site description that shows on the browser tab via Strings translation. I also can change the date and time format for my second language via Strings translation.

  • Hardcoded in PHP files

Other strings that are hardcoded in PHP files will store in .po/.mo files. I either use Poedit or the Local translate plugin for translating the text for that.

  • Form plugins such as contact form, newsletter form, and form validation text

I don’t see any possible way to add the translation for the form plugins except by adding more code by developers. However, adding more code by developers doesn’t guarantee will work with any text in the form. I see some issues people ask about various issues in the communities.

Wrap up for FREE Polylang plugin

What the FREE version can not do:

  • Can not separate archive URLs for each translated version – Need Polylang Pro
  • Can not translate the text from the form plugins including validation text. May use only custom code by developers
  • Some plugins won’t work with Polylang such as Event Calendar. Basically, you will need to check which plugins work with Polylang

What the FREE version can do:

  • Translate all types of content (Pages, Posts, Categories, Tags, Menu, Media, Custom Post Type, Custom Taxonomies, Custom Field)
  • Provide the language switcher  (Be able to add to the Menu or use PHP anywhere on the template)
  • Translate theme and widget (using Strings Translation)

Useful link from the Polylang plugin:

FREE Weglot plugin

Last free translation plugin that I test today. It is a FREE Weglot plugin. With the Free plan, I can translate only 1 language with 2000 words limit. And I can use only 1 website for one plan. Check Weglot price plans.

I install and activate the FREE Weglot plugin. The plugin requests to signup to the Weglot website in order to get the token and paste it into my website. This is because all translations will store in Weglot. I can edit my translations directly in my Weglot account only. I assume Weglot stores the translations on their server so they can track how many translation words you use regarding your signup plan. For my personality, I prefer to keep my translation on my website (database) so if I cancel the license of the translation plugin, my translation is still on my website.

FREE Weglot plugin - after activating the FREE plan
FREE Weglot plugin – after activating the FREE plan

This is what the Weglot dashboard looks like for a FREE plan.

Weglot dashboard – FREE plan
Weglot dashboard - numbers are changed every time the page is viewed
Weglot dashboard – numbers are changed every time the page is viewed

My test website has only four pages.

Automatic translation

After choosing the language you want to translate and activating the Free plan. Weglot will automatically translate from the source language to the destination language for you. Then you can manually edit the destination language for correction via the Weglot website.

How does automatically translate from Weglot? For the Thai language, automatic translation has never been ready to use. I always need to go through every Thai translation and change them 90%. Google translation or other AI translations never made the Thai translation right.

Key features check – Language switcher

After activating the plugin, the language switcher dropdown menu will show up at the right bottom on the screen. You can also add the language switcher from the Menus via Appearance.

Key features check – Translate all types of content

  • Pages, Posts, Categories, and Tags

Weglot will translate the page, post, category, and tag to the second language automatically after adding the content. It works out of the box.

  • Custom Post Types and Taxonomies

Weglot will translate the custom post type and custom taxonomies to the second language automatically after adding the content.

  • Media metadata (title, description, caption, and alt text)

Weglot will translate the media metadata to the second language automatically after adding the content.

  • Custom field

I add the custom field via the FREE ACF plugin. Weglot will translate the custom field value to the second language automatically after adding the content.

Key features check – Theme and Plugin Translation & Validation text

I can translate the site title and description via the Weglot dashboard. I also translate the Form and validation text via the Weglot dashboard.

Key features check – SEO Friendly

For the FREE Weglot plan, the URL doesn’t separate for each language. In order to translate URL slugs, you need to upgrade to Advanced plans.

For the default English front page, the URL will be “https://example.com“. For a second language such as Thai, the URL will be “https://example.com/th/“.

Wrap up for FREE Weglot plugin

Weglot is easy to use as same as the TranslatePress plugin. They both offer automatic translation. Weglot does it automatically while TranslatePress has the option to enable this feature and using for FREE. For the Polylang offers Lingotek to integrate with the plugin.

What the FREE version can not do:

What the FREE version can do:

  • Automatically translate the content after adding the content – Manually edit the translation via the Weglot website
  • Be able to enable search for each language. For example, search on the Thai site, and the search result will show only Thai content.
  • Translate all types of content (Pages, Posts, Categories, Tags, Menu, Media, Custom Post Type, Custom Taxonomies, Custom Field)
  • Provide the language switcher  (Be able to add to the Menu, Widget, Footer, and link)
  • Automatically translate the form plugin and validation text – Manually edit the translation via the Weglot website

Note that, Weglot sets the limit on how many translated words your site use. What does it mean? Every time someone views your page on your site, those translation words on the viewed page are counted (count from both the default and second language pages). Even though you are the WP user and add the content on the backend and view the page on the frontend to see your changes, those translation words on that page will be counted too. I install the FREE Wedlot plugin and use the FREE plan. It said the FREE plan is limited to only 2,000 words. I use my site to perform the test based on my key features for this post. Currently, on my Weglot dashboard, I already used 1,002 out of 2,000 words already. My test site has six pages (4 pages and 2 posts). The content is very short like 2-3 paragraphs per page.

If I use the Weglot plugin, I would be concerned about how much budget I will have for using this Weglot plugin. Because when my site stops the translations because the translation words are over the limit. Then I have to upgrade the plan. In my view, it is not easy to control the budget. I would go to TranslatePress paid version or set up a multisite instead.

Useful links from the Weglot plugin:

WPML plugin

WPML is another popular paid plugin that some of my clients use with Woocommerce. They said it works great. But some agencies said there are some issues in terms of compatibility with WPML. I assume the issues may come from the plugins that work together with the website. For example, using the Event Calendar plugin and the filter doesn’t translate.

Here are the known issues from WPML.

Alternative Setup for Multilingual Website with WordPress

Basically, you set up the multisite in WordPress. Each mini-site is for each language. The mini-site is a single WordPress site. Meaning you will add the content for each language which is a similar concept to the Polylang plugin.

Then you will use the Multisite Language Switcher plugin to switch the language. If this plugin is useful, please consider donating to the plugin owner. The donate link will redirect to the Official Greenpeace website. I assume it is the plugin owner’s intention. So your donation is helpful to others.

With this method, every single mini-site is separated from the others. You will have your own content on each mini-site. If you want some content displaying the same across the multisite, you will need to find the plugin that does synchronize the content for you. Or you just need to add the same content for all mini-sites in your network. For shopping online sites that want to translate more than one language, I don’t recommend this method. I suggest checking WPML or TranslatePress paid version instead.

Wrap Up

Creating a multilingual website is simple in WordPress. You have the choices with FREE plugins, Paid plugins, and Multisite with language switcher plugin. What you need to do is, come up with your key features and start to find the right plugins for you. If you find my post useful and save you time, please consider buying me some coffee it will make me smile.