A fast breakdown of the strategy I used to turn my WordPress into a multilingual site to target different readers and customers from all around the world. I go over many of the typical challenges you’ll face when trying to translate your website into other languages.
Read to learn about different WordPress translation plugins, ideas for translating your content, and tips to make WPML plugin work better for you.
How to translate your website
What’s my background?
I run a popular niche blog site that sells a few info-products (downloadable ebooks & videos). It was purely in English. At some point, several readers expressed that they would love to be able to read the articles in their language. A light bulb moment went off in my head, and I figured why not translate the articles and the products and gain extra readers and customers?
It seemed like a great idea and I embarked in a successful 2-year learning experience that is now still being kept up. Although there were many headaches and cry-storms, I did manage some success and would love to share my experience to help others. I can’t say that I recommend my strategy for everyone, different organizations will need a different approach, but you can certainly all learn from my problems.
Why have multiple languages on your site?
The main reason is to target a wider demographic. And to potentially sell to more customers. But there are pros and cons.
- Many niches are not as saturated in content in other languages, their designs and technical expertise may also be lacking compared to English sites. You could very quickly become a dominant player in another language.
- You can increase your revenue selling to more markets and customers around the world.
- You are doing a good thing and offering a potentially helpful service or product to other markets that may not have them.
- You don’t really make that much more money. Non-english speaking countries do not have the same disposable income. Or maybe they don’t trust buying on the internet. For whatever reason, I’ve found that targeting other languages, such as Spanish, French, Portuguese, Russian, really doesn’t add all that much revenue. So far, all the revenue from the other languages COMBINED add up to only 10% of my revenue from English customers (yet their combined traffic is same as my English traffic). From a purely financial standpoint, whatever amount of time you spend trying to building up another revenue stream in different languages, you’re probably better off developing a new product or investing otherwise in your English market. Take what I say with a grain of salt as different products and services have different impacts on different markets.
- Finding quality translators is expensive. If you’ve only got a few hundred or few thousand words of text, it’s not a problem. If you’re a big blog like I am, you’ll probably have to rely on volunteers or ex-pats in foreign countries to do quality translations at an affordable price.
- You don’t speak the language and find it hard to maintain a relationship with readers on your site. You can’t answer comments or emails. I do use Google translate and that does work ok, but if you want a more beneficial and closer-feeling relationship, this can be hard.
A few important things to learn about translation
Interpretation is when you have a person translating another person’s words verbally. An example of this is sometimes in an interview or on the microphone, you’ll hear a person speaking in one language and then another person speaking the translation in a different language into the microphone. This won’t apply to what we’re doing online but it’s good to know nonetheless, when you’re out there hiring translators. Interpreters are probably the best quality translators, if you ask me, since they have to have absolute mastery of the language to translate quick enough to speak accurately.
Translation is when you translate from one language to another using words. For example, somebody writes a sentence in English…a translator is somebody who writes that same sentence in another language.
Localization is when you translate a word or meaning from one language to the equivalent of another language. For example, there may be a popular saying in English, and you’d like to translate that into another language, like Spanish. In many cases, the exact literal translation of that phrase doesn’t make sense but there may be an equivalent one in Spanish. In this case, you’d have to be careful to localize everything you say so that the meaning is not lost.
There is also another case where let’s say you want to translate a certain word from English into Spanish, HOWEVER…the challenge is that it has a different word in Spanish depending on which country the reader is from. For example, people in Spain might use a certain word while people in Argentina might use another word.
Localization isn’t a definite service or task that you have to do. It’s simply important to know and to get a translator who speaks the exact language with the exact localization that you want to target. In some cases, you want to use one instance of Spanish for ALL Spanish speakers; in this case, it’s best to tell you translator to use neutral Spanish as much as possible rather than to use slang that can only be understood by one group.
To transliterate means to write the words and letters of one alphabet using the words and letters of another alphabet. This is can also be described as writing a language in a different script.
For example, let’s pretend we have 3 languages: English, Russian, and Japanese.
And English uses latin alphabet, Russian uses cyrillic, Japanese uses Kanji.
Well, to transliterate from English to Cyrillic, would mean to take a sentence that was written in English and to write it instead using Cyrillic letters. Does this mean the sentence is automatically translated? No. It’s still an English sentence however written in a different alphabet.
Transliteration is usually most important when it comes to pronunciation rather than understanding. Things like names are often transliterated rather than translated. Another helpful thing about transliteration is simply to let the reader even know or be able to guess what language or what subject the writing is about. For example…if you were to read city names in Arabic letters (الدولة الإسلامية في العراق والشام), it would be harder to understand then if they were written in an alphabet that you recognize.
I’m sure you have seen transliteration before such as when Japanese words are written in English characters, like Kawasaki or Yoshinoya rather than in kanji using the chinese marks. I’m sure you’ve also seen Russian names being written in spelled in Russian characters vs in latin characters.
When it comes to WordPress, and developing websites, transliteration is important in a few places. The first is the URL’s. You’ll want your URL’s to be in latin characters since this will be easier to type. And if you care about SEO for your foreign language URL’s. Another place would be filenames for your images. You’ll probably want the image names in latin-characters since this will be easier for you to find and understand. Anywhere else where you need latin characters could also be in the coding.
This isn’t exactly a component of translating but it is often done when you want to share your videos with another audience. You’ll use a translator to make subtitles for your videos so that other people can understand them.
What are the technical implications?
What is your website structure?
Domain vs sub-domain vs directory
How do you plan to manage your translated site? Will you have each language on a separate domain (.com, .es, .fr)? or will you have it in a separate sub-domain (es.domain.com, fr.domain.com) or even in a separate directory (domain.com/es, domain.com/fr)?
- To make it easier for visitors AND help each site’s SEO rankings, I recommend you put each language on it’s own top-level domain (.es, .fr). This makes the most sense and also so that people can easily remember and type in your domain as such (www.domain.es). Also much easier to track their Google Analytics traffic this way.
Will you have all your languages translated and connected to each on one site? Or all languages on their own separate site?
- In most cases, having all languages stored on one site is easiest to manage especially when you want to keep track of which things are translated and which are not. Also easiest to manage when you users to be able to click back and forth between one language to another.
- There ARE scenarios where having a separate site is better. This is the case like mine where your main website is mission critical and you’re scared of the translation plugin messing up your website functions or slowing it down. If your website is not too big and you don’t have too many things to translate, or if the websites have vastly different content, it could be much better to just have 2 separate WordPress installations. This also matters if you only have 2 languages. If you have 3 or more languages, it’s probably going to be a hassle to manage so many different WordPress sites.
How will you manage the translation process?
- How much content do you have? How many pages?
- Will you enter the translations yourself? Or will you create logins for the translators?
What if you want to have a multilingual store?
My best advice here is WordPress+ any WooCommerce friendly theme + WooCommerce plugin + WPML/Polylang
What about SEO?
SEO was surprisingly easy in my opinion. What you need is a nicely coded theme that is optimized for SEO. And then use your plugin to do strings translation to translate your title tags, headers, and other things that you need for SEO optimization. I rank at the top of the Google and do not use YOAST.
What has to be translated?
- Think of everything you have to translate.
- Content, categories, menus, themes and static text, images (alt tags), URL’s
- For ecommerce… the price? What else?
- Google analytics tracker (you might want to use a different tracker for each language)
- Social media connections (you might want to setup a different social media account for each language or even use different social media entirely)
- Different ads and banner codes?
Knowing what has to be translated will help you greatly when it comes to preparing your site. You’ll be able to gather all the texts and images for your translators, programmers, and graphics designers to translate all your content.
WordPress MultiLingual Plugin Comparison
There are many translation plugins available for WordPress. They fall into 2 general categories, one is automatic translation plugins (using Google or other translation engine) that automatically generates translated versions of your text. And then there are the manual translation plugins, which require you (or someone else) to go in and manually enter in the translations.
For the sake of quality and usability, I will only be talking about manual translation plugins. I don’t see any point in creating a website using automatic translations. There’s no quality control and I think it hurts your branding and provides virtually no benefit to visitors.
Fast breakdown, manual translation plugins are usually setup as follows:
- All translation data put into separate posts (WPML, Polylang)…meaning it makes a separate post for each translation. GOOD!
- All translation data put into the main posts (qTranslateX)…I generally don’t like these.
- I haven’t checked in other plugins so I wouldn’t know.
I list WPML first because it’s the one I use now and and I’ve spent the most time with it. It’s far from perfect, many bugs and things that were fixed and broken and fixed again over the years. Nonetheless, my current install which is quite complex in my opinion has been working about 97% perfect and I’m happy with it.
WPML is a paid premium plugin. Whatever it costs, it’s worth it. It works well and comes loaded with many features, which are possibly overkill for some folks and necessary for others. It’s well supported and updated often. There is a nice busy forums where many users ask questions and get help from others.
PROS: Huge, tons of features, has a nice translation management tool for those who will have their translators log in and make translations. If you have a smaller site and plan to enter in the translations yourself, this plugin might be overkill for you.
CONS: It can be slow. Also many complaints about bloated code. Also weird bugs that I’m too lazy to list. So far I’ve been happy with the plugin nonetheless and too scared to migrate to Polylang, which I hear is much better. I was able to make it run quicker simply by removing all the unecessary strings in the string translation management.
I’ve heard many great things about this one. Not only is it free, many people have commented that it is the best-written translation plugin. I heard that it’s very well-coded, easy-to-use, makes sense in how it’s set-up and used, works well and runs very quickly. If my site wasn’t already set-up with WPML, I would probably have been using this one. I didn’t pick this one because I had set up my translated sites about 3 years ago and I think back then, WPML was the obvious winner for what I was trying to do.
The good news for you is that Polylang is pretty much compatible with WPML and works in simlar ways. There are even migration plugins to help you go from WPML to Polylang.
This is the next best translation behind WPML & Polylang if you ask me. I haven’t used it but I’ve heard great reviews. I don’t like the way it’s coded. It’s also free.
The last time we had such a meetup, the speaker (Vincent from Polychrome.ch) made the distinction between plugins using :
- all data in the same pos, (such as xTranslate previously qTranslate)
- data in different posts (such as WPML, Xili, Babble or Polylang)
- data in differents sites (subsites of a multisite), (such MultilingualPress or Multisite Language Switcher)
I haven’t tried any of these so it’s up to you to research for yourself if they are able to handle your website translation needs in a better way than the top 3 (Polylang, WPML, qTranslate X).
What about Multi-site?
Multi-site sounds like a great idea but comes with many challenges IMO. For example if you wanted to track all your sales and ecommerce activity in one central place, it’s harder when you have multiple sites. Some software solutions manage that well, but others don’t have that capability. Also…once you have more than 2 languages (as I do), it’s a pain in the butt to keep track of all the little things that need translation. Posts, pages, theme strings, marketing emails, etc, and etc.
There are some nice advantages of multi-site such as having slightly different designs. Many different languages need different fonts loaded, or need adjust dimensions to fit text differently, or many other things.
My WPML Strategy – WPML Tips and advice
Setting up WPML (my recommended way)
I had a main website in English with about 250 posts. My plan was to translate this into 6 other languages (Spanish, French, Portuguese, Russian, Chinese, German). I ran into MANY problems and I can gladly share bits of advice to help you avoid that.
Set up each language in its own domain
First thing I did was set up each language to have their own domain. Naturally, I had to go out and buy all the domain names (.es, .fr, .com.br, .ru, .cn, .de). Whois.com is probably the best registrar and then if you need, use Godaddy. Some domains may require you to have a local presence in that country but some registrars can provide this for you. Just know that some registrars charge a lot of money and can be a total hassle to work with. Marcaria was a pain in the ass for me. Avoid them if you can.
Setting up 2 wordpress installations
I really thought I was clever in how I did this. I imagine most people would have used one wordpress installation to hold all 7 languages. I wanted to avoid this as I didn’t want my mission critical website to be bogged down by translations and whatever other plugins and unnecessary crap. So here’s what I did.
I set up 2 WordPress installations. The main one (English) was on my domain as such (www.domain.com) and then I put the translated site (using WPML) on a sub domain like this (world.domain.com). And from the WPML site, I set up the languages so that they all pointed to their TLD domains. NOTE: you may have to setup a sub-domain redirect in your control panel or htaccess file for this…this way, the domains for the translated languages will refer to your sub-domain for their translation.
From here, what I did was IMPORT all the posts from my main site into the WPML site and put it into ANOTHER language (I called it “English2”) and then made that language hidden.
This setup was great because every time WPML broke my site or something went wrong, it was only breaking my WPML site and not my main site. Also my main site ran faster and smoother since it wasn’t bogged down by translated languages and other related plugins. I was really happy with this decision and in hindsight, it saved a lot of heartache.
There may also be scenarios where you have to give admin access to programmers or translators to fix things and you won’t have to give them full access to your English site so less things can go wrong.
Setting up Google Analytics
Since you have multiple domains, you’ll want to be able to track them separately so that you can see how much traffic each domain gets.
Search on Google: “Set up Google Analtyics roll-up trackers” and then check your theme developer’s forums to see how different users implement the roll-up trackers. Short explanation for now: “roll-up trackers” allow you to see how much traffic each domain gets and then how much they get all combined. I had mine set-up as a string translation.
How to find translators
You can hire out and this is great if you have only a limited amount of content. For me, having 250 posts was impossible to hire for since it would cost too much and not only that but the lower-paid translators were very often LOW QUALITY. Instead, I relied on volunteer translators. Volunteer translators do much better work…to compensate them, I offered them free access to my products.
I noticed that my languages such as Chinese and Russian used a different alphabet such as Mandarin (for Chinese) and Cyrillic (for Russian). This is a problem when it comes to making custom URL’s. There free plugins that can help you translate URL’s from one alphabet to another; make sure you install them. You can also try entering the URL’s yourself manually (use free online translators to help you get the translations transliterated into latin alphabet).
Main areas you’ll want to translate
- Places to think about when it comes to translation:
Content – obvious. All content needs to be translated.
- Theme static text – all the random text throughout your web design.
- Images – maybe your logo should be different for each language? Or other images?
- Header/footer code – maybe different header/footer HTML code for tracking or SEO purposes?
- Date structure – different languages display the date differently.
- Emails – outgoing emails from your system are in English, maybe you’ll want to translate them into another language.
What plugins to install with WPML
The only WPML plugins I use are the main one (WPML Multilingual CMS), then the other ones WPML Translation Management (so that I can assign content to translators), WPML String Translation (to translate anything that isn’t a post/page or category/tag). The other plugins I found to be unnecessary for what I needed.
Outside of the WPML plugins, I highly recommend Adminimize. This is useful for altering the way your admin looks when your translators log in. It allows you to give them more features or less features. Giving them more features (like being able to access the Media Library) helps them to add images to your posts, while hiding features (that they won’t/shouldn’t be using in the back-end) will help them not to be confused or overwhelmed when logging in to your admin section.
Advanced Database Cleaner is another incredible product for cleaning up your database. One of the WordPress features that takes up a ton of space is the “Revisions” feature. It keeps a copy of every time that you saved or updated your post. And if your post hasn’t been changed or you have no need to hang on to the older saves, you should delete all your revisions in order to save space on your database. This plugin also tidies other things and in general makes your database smaller, cleaner, and faster.
One of the top complaints is speed. My best advice is to optmize your server. Use the latest version of mySQL if you can (mariaDB is better) and upgrade your version of php (at least php 5.6). In moments like this, it makes a huge different to have your own server. You should get a VPS and then hire a server admin to set it up for you. Use NGINX and VestaCP if you want a really fast server with user-friendly control panel options.
Now to address speed problems for your wordpress installation itself:
- delete unnecessary string translations (this is the most effective tip)
- get rid of unnecessary plugins)
- follow your plugins guide speeding things up.
Use a CDN. Cloudflare is free to use and super easy to set-up. This will especially speed up your page load times for visitors in other countries.
Did I miss anything else? Let me know!