Learn how to translate your travel blog into multiple languages the right way, so that you can reach new readers and 10x your traffic.
- Introduction to translating blogs
- Method #1: In-browser translation
- Method #2: Top Level Domains
- Method #3: Subdomains
- Method #4: Directories
- Your site will get bigger
- Human Translation vs Computer Translation
- Hreflang tags
- Canonical tagging
- Best Translation WordPress Plugins
- Questions about translating blogs
💬 Intro: How to translate your travel blog into different languages
There are four different ways to create a multilingual website, but not every method is created equal. This post will breakdown the different methods available to you so that you can determine which method suits your needs best.
First we'll go through the four methods, then we'll talk about what needs to happen behind the scenes with your code so that browsers and search engines know what's going on, and lastly I'll recommend two plugins that can handle the job for you.
🔖 Method #1: In-browser translation
This method involves publishing one single website in English, and then translating it into other languages using a plugin after visitors arrive on the site. The translation is happening “on demand” within the browser and the new language version is only visible to the reader at that moment.
This method does not help your blog rank on Google for other languages because the plugin is only translating text within the visitor's browser. Meaning, it's not creating separate versions of the pages for search engines to crawl. This is the lowest hanging fruit of website translation. It definitely serves a purpose, but it's not great for SEO. (It doesn't hurt your SEO. It just doesn't help it.)
I come across many websites that offer this type of translation, but I don't feel that it's really needed anymore, as most browsers now-a-days have this type of on-demand translation built-in. For example, if I visit a French website, Google Chrome will usually ask me if I want to translate the page to English since it knows my default language.
🎌 Method #2: Publish two different top-level domains
This method involves publishing two different websites on different top-level domains. (ie: Example.com and Example.es). This method makes the most sense for businesses that operate in multiple countries, since the domain extensions like “.com” and “.es” are associated with countries.
This method is better for search engines than Method #1 because you're creating separately hosted content in each language. However it spreads your domain authority (DA) across two different websites and creates the job of having to independently rank two separate sites — which adds a lot of work when it comes to building backlinks, optimizing sites, etc.
This method is not ideal for you if your audience comes from one country and you just want to cater to multiple languages within that country. It's more suited for businesses that operate in different countries. The “.com” extension, for example, is better for USA whether the site is in English or Spanish. You wouldn't want to the Spanish version of your USA website to end in “.es” because that domain extension is for the country of Spain.
🚩 Method #3: Use subdomains for each language
This third method only requires one top level domain (like Example.com) and involves hosting each language site on a separate subdomain. For example: en.example.com and es.example.com. This is easier in regards to condensing domain authority because you're still working with one top level domain, but still creates the maintenance burden of running two different websites (ie: separate WordPress installs).
📂 Method #4: Use directories for each language
This fourth method involves using directories to house each language's pages. For example: Example.com/en/ and Example.com/es/. This method is easiest for bloggers because it only requires maintaining one website and database, condenses your domain authority and backlink building into one top-level domain, but still allows for separately ranked pages.
With this fourth method, you're publishing two or more unique versions of each article. Here's an example of that in action on an attorney's website.
You can see that all of the text on those two pages are different including the URLs (divorce vs divorcio), which is important because your URL slugs (the part that comes after the .com in a URL) are very important to SEO.
There are limitations to this method when it comes to design, but none that would defer me from saying this is the best method for travel bloggers who want to build domain authority for one site. One limitation, for example, is that you're using the same template, sidebar, and footer for both sets of languages, and you've got images that include text in English on your sidebar, they will also appear on your Spanish pages as well, unless you create separate sidebars.
📄 Multilingual websites increases the number of actual pages on your site
Creating a multilingual website multiples the number of pages on your site by X times the amount of languages. For example, if your blog has 50 pages/posts, and you want to offer the entire thing in Spanish, your site will now have 100 pages/posts because you're publishing two pages per post (one in each language).
That is, if you decide to translate the whole website. You can also pick and choose which articles to translate. You might only want to offer your most popular articles in different languages.
🗣️ HUMAN translation versus COMPUTER translation
Human translation is always going to be better than computer generated translation. Anyone who's ever used Google Translate can testify as to how imperfect the translations are. However human translation is costly and not alway possible for every article.
Method #1 only uses computer generated translation because the translation is happening on-demand within the browser.
Methods #2-4 can either employ computer translation, human translation, or a combination of both. Since you're creating separate pages with these methods, the text doesn't have to be exactly the same as the others. In fact, it never would be, because it's in a different language. So consider them separate posts entirely.
The bare minimum to creating a multilingual website is to use computer translation to create these new language posts, publish them, and call it a day. And don't get me wrong, a lot of sites do this, and it could certainly help you bring in more traffic. However the quality of your translated articles are going to leave a lot to be desired. A native speaker of the language who finds your computer translated articles is going to know right away that this wasn't written by a native speaker.
For a better reader experience, you'll want to employ a professional translator to translate your articles, however, this can obviously get costly. But no-one ever said running a high quality blog in two languages was going to be cheap!
⛓️ Using hreflang tags to connect all your pages together
If you're going to offer your content in multiple languages on separate pages using one of Methods #2-4 above, then you'll also need to tell search engines and browsers that these pages are different language versions of the same content. That way if a Spanish speaker lands on an English or French article, they will automatically be directed to the Spanish version of the page.
Google has a special tag for this called the hreflang tag that you put into the header of your pages. Not only can the hreflang tag direct visitors to the correct language, it can also direct them to the right country version of your page.
There are several reasons a website might want to bring visitors to different pages depending on their language and country. For example, there are people in USA and Mexico who speak Spanish, but if I'm running an e-commerce store, I may need them to arrive on different pages that allow them to checkout in their respective currencies.
Another example is that if you're running affiliate offers on your article, you might want separate pages for visitors coming from United States and Australia even though they are both written in English so that you can input different affiliate links.
By using a hreflang tag, you're telling Google that these are NOT duplicate content pages, even though the content may be almost identical and written in the same language. You're informing Google that the pages are unique for a reason.
Example #1: hreflang tags in action for different languages only
Let's say you've got three languages (English, Spanish, and French) on your website and you're using Method #4 to offer those pages in separate directories on your site. This means you've got three individual blog posts per article — one for each language. You'll need to indicate on each post that you offer alternate versions of the article in different languages so that browsers know where to send visitors based on their language.
Here's some example syntax you could put on your English page which shows that you offer an alternative version of that page in Spanish and French. In this example, your article is called “Fear of Flying”.
The first line “x-default” indicates that if neither French or Spanish language is detected, to show the English version by default for every other language user.
This code needs to appear on EVERY version of the post including the English version. Meaning if we're on the English page, the “en” code also needs to be there, or if we're on the Spanish page, the “es” also needs to be there. All three versions of the page — English, Spanish, and French — need to reference themselves and the other versions. If all of the pages don't reference each other, the tags will be ignored, so you've got to include the same set of hreflang tags on every version of the post.
Example #2: hreflang tags in action for languages and countries
Now let's say you wanted to offer different Spanish pages for Mexico, Spain, and USA. Your hreflang tags would now include a country code like this:
Now we're adding a region specific code to the hreflang tag. So in the example above, “es-mx” takes Spanish speakers in Mexico to a Mexican-specific page, while “es-es” takes Spanish speakers in Spain to a Spain-specific page, and “es-us” takes Spanish speakers in USA to a USA-specific page written in Spanish. Everyone else who speaks Spanish “es” who are not in Mexico or Spain are directed to the Spain-specific version. (Don't get confused that “es” is a language tag and also a country code for Spain. That's why it appears twice in the “es-es” line, the first “es” signifying the language Spanish and the second “es” signifying the country Spain.)
This stuff can feel confusing at the beginning, but it's really not all that bad! Plugins can handle all this for you, which we'll talk about shortly. I just wanted to explain what's happening behind the scenes when using a multilingual plugin.
Also keep in mind that your multilingual website only has to be as complex as you need it to be. For example, you may have no reason to do separate pages for countries, and might only want separate pages for languages.
Before we get into plugins, let me also explain canonical tags and the role they play in all this.
♾️ Canonical tagging the translated articles
Canonical tagging tells Google that a specific URL represents the “master” copy of a page. Using the canonical tag prevents problems caused by identical or “duplicate” content appearing on multiple URLs.
A common use of canonical tagging is if you run an e-commerce store. Your products might appear in multiple categories causing the same product to appear to have multiple URLs. Here's an example on one of my Shopify sites:
Master Product URL: https://funterventions.org/products/crazy-dog-owner-book
Within Category: https://funterventions.org/collections/crazy-dog-owner/products/crazy-dog-owner-book
You can see that both of those links take you to the same product. Canonical tagging lets Google know that both these pages refer to the same “master” product so that it doesn't look like I have duplicate content.
Every language version of your post should have a canonical tag and should point to itself.
The hreflang tag is already telling Google that these pages are related and NOT duplicate content, so you need to also tell Google that this Spanish version is the “master” version of this page (in Spanish). It might seem redundant to have canonical tags on a page that only appears on one URL (unlike my Shopify store example above), but it's good practice to have canonical tags on every one of your posts.
The reason I even bring up canonical tags right now is because many people screw up using hreflang and canonical tags together. A common mistake is that they use the English version of the page as the canonical because it was technically the “original” page they published. So on the Spanish version of the page, they'll indicate that the English version is the canonical version, but that's not correct. Like I said, every language version of your post should have a canonical tag that points to itself.
A good multilingual plugin that integrates with your SEO plugin will take care of all of this for you, however, it's important to understand what's going on behind the scenes. That being said, let's move onto plugins.
⚙️ Best WordPress Plugins To Create Multilingual Blogs
There are a LOT of WordPress plugins that can translate your blog. Too many to list them all. However to streamline your search for the best plugin, I'm only going to recommend two that I know work well. Feel free to recommend others in the comment section.
WPML Plugin is one of the pioneers in WordPress translation and is used by millions of sites. It integrates with many popular themes and page builders like Divi, Avada, Elementor, WooCommerce, etc. They can handle all four of the methods I outlined above.
WPML costs between $29-$129 initially, and then renews at $21-$119/year depending on the plan. You'll most likely need their middle plan for $59 if you use a page builder and so that you can translate your site's widgets.
GTranslate is used on over 4 million websites and offers translation into 105 languages. They can also handle all four of the methods I outlined above.
GTranslate's Free version of their plugin is great for Method #1 (in-browser translation), but Methods #2-4 (having separately indexed pages) requires the Paid version. However as you learned earlier, Method #1 isn't really necessary anymore since most browsers have built-in translation.
The paid version of GTranslate costs between $7.99 – $37.99 per month depending on how many languages you need and whether you want to host your translated pages in directories or top level domains.
🙋 Questions about running a multilingual blog?
Ask away in the comments section below and I'll do my best to help you out. If setting up a multilingual blog is beyond you, my technical team can also help you out. E-mail [email protected] or use our contact form to get in touch and we'll provide you a quote to get you all setup.