Having a multilingual WordPress website which is optimized for SEO can really help boost your traffic. It naturally expands your site’s audience by showing up in search results for multiple languages, some of which have much less competition than English-language results.
There are a number of ways to create a multilingual site, and you can even integrate Google Translate into your site if you really want – it’s the worst way to translate your site, so please don’t do this. While Google provides a plethora of outstanding products, Google Translate leaves a lot to be desired.
Machine translations will NEVER be as good as those done by humans, period. Computers do a pretty good job with simple terms and sentences, but fail big-time when it comes to interpreting everything accurately.
Check out the video below if you’d rather watch a tutorial for creating a multilingual site with WordPress + Polylang:
In this post, I will teach you how to use Polylang in conjunction with Yoast SEO to create an optimized multilingual WordPress website. I strongly suggest hiring professional translators to create the other language versions of your site (unless you’re like Pope John Paul II and speak a whole bunch of languages).
Please keep in mind that you will need proper translations for all posts, pages, media items, categories, tags, custom post types, custom taxonomies, widgets, navigation menus and URLs. Your site may not use all of the previously-mentioned items, but I included them anyway.
Table of Contents
1. Installing Polylang
2. Setting the default language
3. Strings translations
4. Translating widgets
6. Creating translations for pages, posts, categories and tags
7. Language switcher
8. Optimizing your multilingual site with Yoast SEO
Do your site visitors a favor, and use quality, human translations. It has such a huge impact on the quality and readability of your site and its content, and your readers will greatly appreciate it.
I think it’s better to ONLY have your site in one language than to use inaccurate machine translations.
The first step is to install and activate the Polylang plugin. Make sure you are using WordPress 4.0 or later before you perform the installation. You should always keep WordPress up to date, but that’s beside the point.
If you were using any other multilingual plugins, make sure you deactivate them before you activate Polylang. If you don’t, things can go awry.
Head over to Plugins in your WordPress Dashboard, then click Add New. Search for Polylang and click Install Now. Next, go to the settings page and add all the languages you plan to use on your site.
Once you select a language, it will automatically fill in the following fields – Full name, Locale, Language code, Text direction and Flag. The only one left empty is the Order field, where you can select the order in which the languages will appear in the navigation menu. You will want to set your default language to Order 0, which will make it the first language in your navigation menu.
To set the default language, simply hover over the star in the language you want to choose, then click it when it turns blue (see screenshot above).
Under Strings translations, you can set the translations for a wide variety of elements throughout your site, including the following:
- Basic WordPress items such as site title, tagline, date format and time format.
- Any Widget items you’re using in a sidebar, footer or anywhere else on your site. The strings translations gives you finite control over both the title and content of your widgets, letting you create versions for all of your site’s different languages.
- Yoast SEO items such as home (for breadcrumbs display throughout your site), sitename, excerpt, site description (sitedesc), archives, 404 pages and more. With most of these, I leave them alone because by default, they’re setup properly. When you have Yoast SEO configured well, you will optimize each page and post directly in the Yoast SEO box.
Polylang makes it easy to add widgets for all the languages on your site. When you add a new widget, it will be shown for all languages by default. Once you save the widget, you can use Strings translations to create all the translations for it.
In some cases, you may want to only display a particular widget in only one language. To do this, simply choose the language from the dropdown in the widget.
There could be more strings translations to setup depending on the plugins you use on your site. For example, if you are using a gallery plugin, you may want to set gallery names and photo captions in all languages other than the default.
There are a couple items to configure under Languages > Settings. We’ll go over the ones that are important. Please note, the settings I include below are simply those that I have used in the past. I did a little research and looked at quality multilingual sites, then modeled the sites I created after them.
You may want to use different settings on your site based on site structure and whether you’re using subdomains, among many other things.
Here, you can adjust the appearance of your site URLs. I recommend the settings that yield the simplest and shortest URL structure.
Before you set these options, choose the proper Permalink configuration under Settings > Permalinks. Make sure that Post name is selected and save your changes.
Back in the URL modifications, you will want to make sure the following are selected (with dot or check mark next to them):
- The language is set from the directory name in pretty permalinks.
- Hide URL language information for the default language.
- Remove /language/ in pretty permalinks (simple, shorter URLs are generally better).
- The front page URL contains the language code instead of the page name or id.
Detect browser language
You want to click on Activate under Detect browser language. This ensures that when someone visits your site for the first time, they are directed to the homepage in the language according to the language settings in his/her browser. If the visitor’s browser language doesn’t match any of the languages on your site, the default language will be used.
Please note that this options only works when the language is either chosen from the content, directory name in the URL or from the subdomain. If you’re using multiple domains, you will need Polylang Pro to use this feature.
The media module is activated by default, and serves the purpose of translating all the text associated with images – title, alt text and description.
Translating the media item information for each language is a great way to help optimize your images for SEO, but it’s up to you. If you don’t want to use it, simply deactivate it.
If you want to create translations for all of your media items, leave the media module activated. When you edit items in your media library, you’ll be able edit the image info for your default language, and then add the translations for other languages.
- Select a language from the dropdown menu.
- Enter media information, including Title (above image), Caption and Alternative Text (below the image). You can also enter description, but I wouldn’t worry about it. Most themes don’t seem to show it anyway. Of these three, the Alt text is definitely the most important for SEO.
- Click the Update button to save your changes.
- To add image info for the other languages, click the + symbol next to the language you want, and repeat steps 1-3. Make sure you click Update after all information is added for each language.
Become familiar with the + symbol because you will use it a lot to create translated content. In pages and posts, it is in the Languages module under Translations in the upper right side of your screen (refer to screenshot).
To create languages variations for pages and posts, follow these simple steps:
- Create a new page or post, complete with title and body content.
- Click Publish.
- While still in the page/post, click the + symbol next to the flag of the language you’d like to add.
- Repeat steps 1 and 2 for the content in that language, and all others that you plan on using.
For Categories and Tags, the + symbol is in the row of the original category or tag.
To add language variations for categories and tags, do the following:
- Create a new category or tag in the default language.
- Click Add New Category or Add New Tag.
- Then, click the + symbol under the corresponding flag for the other language/s you want add.
- Repeat this process until you have all categories in every language you want to use on your site.
Once you’ve already created translations for all of your items, the + symbol will be a pencil icon instead. Click on it to edit translated pages, posts, categories or tags for each language.
In the above graphic, the check mark (1) indicates that the page is in English, while the pencil next to it (2) lets you easily edit the other language version (Polish in the graphic) of that page.
Most multilingual sites display flags or text that lets you switch between languages, and Polylang provides this option. You can display it in menus, widgets and other areas.
Navigate to Appearance > Menus in the WordPress Dashboard and look for Language Switcher on the left-hand side. If you don’t see it, expand the Screen Options area at the top and tick the box next to Language Switcher (see screenshot above). Simply grab it and move it over to your menu.
In order to use the Language Switcher as a widget, head over to Appearance > Widgets, and then drag the module over to the widget area on the right, where you want to display it.
Now, you can add a language switcher to any menu or widget on your site. Generally, it’s best to add it to the main menus for each language you use.
If you’re comfortable editing theme files, you can even add the language switcher without using the widget. Simply use the following template tag in your theme:
You can also choose to only show it for one language, but I’m not sure why you’d want to do that. I don’t remember having ever seen one in a widget, but don’t let that stop you from trying it.
You can set the following language switcher options after you add it to your menu or widget:
- Displays as a dropdown
- Displays language names
- Displays flags
- Forces link to front page
- Hides the current language
- Hides languages with no translation
These options are useful, so make sure to configure them in a way that makes the most sense for your site.
With the multilingual sites I’ve created, I chose the following options:
- I displayed the flags but not the language names – It looks better, and having both is overkill in my opinion. People know what their own flag looks like so writing out the name is unnecessary.
- I also hid the current language – If someone is already browsing the site in their preferred language, there’s no reason to show it again in the menu.
After you set up your multilingual site, it’s important to make sure it’s optimized for Google.
To do this, you’ll be using Yoast SEO. It is a must-have plugin to help you properly configure all language versions of your website, including:
- Titles for both pages and posts – this is the single most important on-page SEO element
- Meta descriptions – snippet that appears below the title in search engines. Create compelling copy here to encourage searchers to click through to your result.
- Permalinks – remove stop words from slugs, shortening and simplifying them.
We’ll go over all the important settings to make sure your site is primed for the search engines.
First, go to Plugins > Add new and search for Yoast SEO. Once you find it, click install, then activate.
After you set these elements in Yoast, you will use Strings translations to easily translate them.
Page/Post Titles and Meta Descriptions
By default, Yoast SEO automatically sets page and post titles based on your content using a variety of shortcodes.
It is much better to write custom SEO titles and meta descriptions for both pages and posts, and you can easily do this within the Edit Post or Edit Page areas. You’ll find this below the body content area in the Yoast SEO module.
In order to set the post/page titles and meta descriptions, do the following:
- Go down to Yoast SEO module and click on Edit Snippet.
- Enter your desired page/post title in the SEO title area.
- Add engaging copy to the Meta description box. Well-written meta descriptions encourage searchers to click on your result and not someone else’s.
Yoast provides a colored bar which turns green when the length of both the SEO title and Meta description areas are ideal. Make use of it, and try to create titles and meta descriptions with optimal lengths.
In order to see some of the options in Yoast SEO, you must first enable the Advanced settings pages. To do this, go to Dashboard > Features and make sure the slider is set to Enabled (see screenshot above).
Yoast lets you remove stop words from your site URLs, which helps simplify and shorten them. In the Clean up permalinks section under Advanced > Permalinks, set the slider to Remove. Now, when you create a new page or post, Yoast will automatically remove these unnecessary words from the slugs or permalinks (shown right below the title at the top).
With the free version of Polylang, you have to use different URLs for all language versions of each page and post. In their premium version, you can use the same URL across all languages. While this may seem like a nice feature, it is not totally necessary in my opinion. I use the free version, and my URLs are different for each language.
Using Polylang in conjunction with Yoast SEO to create your very own optimized, multilingual WordPress site is a great way to boost your site’s organic traffic by providing content in more than one language.
Do yourself a favor, and use quality translations for the languages used on your site. Don’t rely on Google Translate, as machine translations are highly inaccurate and reflect poorly on your brand. If you want quality traffic, provide quality content.
You may be surprised by the jump in website traffic from areas all over the world.
Are you struggling with making your site multilingual? Leave comments and questions below, and I’ll try to help you (no guarantee that I can fix your problem).
If you found this post helpful, please share it and spread the word!
Want more like this? Sign up for my newsletter to receive helpful WordPress Tutorials, Tips and Tricks.