Geek challenge. How to translate a website, localize it in multiple languages and maintain your website efficiency towards SEO? In other words, if you have your site.com in english and you want to translate it to another language, let say spanish, what is the best way possible?
For those who had not thought about SEO, let me tell you that when you are going to translate a site this is probably the most important element to take into consideration. There are many ways you may localize your content and achieve a website that serves multiple languages. However, as a geek you might want to have the most efficient and effective solution that will maintain your content integrity and allow you to get the best results of translating your website.
After doing some reasearch, here are the possible options I have found that will get your WordPress translated:
1) Create a category for each language:
I saw some guy post this in a forum and everyone went crazy with this solution and thought it was great. Nevertheless using a category for each language is probably one of the worst ways you can choose to localize your website. If you use a category for each of the languages you are going to write in you are getting in a lot of scalability issues. Let me explain:
Plugins and Widgets: If you have plugins and widgets that generate content on each of the sites, these will still appear in your original language ignoring the categories it is showing on.
Search engine confusion: Instead of doing search engine optimization you are confusing the search engines. Although Google, Bing and Yahoo do a pretty good job at understanding what language your website is in, they might have a difficult time identifying what is the relevant language in a specific page. Therefore, if you have some contents in English and some contents in another language you may confuse the search engines and their solution will probably be not to rank your website as you would like to.
In conclusion, this is not the way to translate your wordpress site into another language. So lets explore other options to do a multi-language website.
2) Use a plugin in WordPress
There are some plugins that allow you to use short codes to indicate what language the content is in a particular post. This means that when you write a post you may write the english version of your content as well as the translated version of your content. You will indicate WordPress using short codes what language is each text. Hence, when a user clicks on a particular language WordPress will render the language chosen.
This also has the same problems as above, but I would also add a new problem: identical URL’s
The URL’g Google will see are identical (unless the plugin does a great job keeping them separate) which will again avoid Google indexing your website appropriately.
If you are wondering why SEO is so important, just think that if you don’t appear on Google your website will never be found. So your solution to translate and internationalize your website must be SEO friendly. If it is not, it is a deal breaker.
3) URL Rewriting
You may also write your posts and assign a specific URL prefix like mysite.com/en or mysite.com/es according to the language the user chooses. Although this gets closer to a better solution can you imagine the work necessary to maintain the URL infrastructure? This is also not recommendable as it is very manual and you want a solution to translate your website that will allow you to keep all the power of WordPress and be efficient at your work.
4) Subdomain or Country Specific Domain for each language
Now we are talking. These are the two best solutions to do a multilanguage WordPress site. Let me explain you.
Subdomain: You will be creating a subdomain lets say es.mysite.com or en.mysite.com that will indicate what language you are exposing to the user visiting your website. You may easily create subdomains inside the control panel of your hosting company where you have your domain name. The advantage of this is that it will be for free.
The other option will be to create a country specific domain name for each of the languages you are going to expose. For example you may have mysite.com for English and you may have mysite.co for Spanish as the .co domain is from Colombia so that may be your spanish domain. If you are in another country like spain, argentina or italy and your business is there, you may just buy your domain name there.
Both of these solutions will require you do another WordPress installation. This means you will need to create the site again for that domain and this will imply work such as:
- Reinstalling all the plugins
- Reinstalling the theme and settings on each site
- Re-uploading all the images and media you have for both sites
- so on…duplicating your site.
- All your website’s content may be tailored to a specific language, country or region.
- The maintainance of the website will be easier. Yes, you will need to install a plugin for all your domains. Yes, if you change the them you will need to install it for other domain names. However, believe it or not, this work is just extenuating the first time you create the other domain names and have to duplicate your site. After that maintaining both sites will be easier because everything will be beautifully separated for each language that you create. Your URL’s will be easily maintainable as well as your title tags, meta descriptions, contents, plugins and other elements.
During my research to understand the best way to do a multi-language WordPress site I found this very interesting video.
After watching this video you will get a better understanding on why subdomains or country specific domains are the best way to localize your content even for WordPress.
So now that you know the best option to do a multi-language WordPress site, I will do it myself as well and write important geek discoveries I find in the process. The site I will localize to a specific country and language is hotelensantamartaeleden.com. This is a WordPress site that I previously did and which I need to translate into spanish. The best option in this case is to localize it to the country Colombia with a .co domain since it is a hotel located in Santa Marta Colombia. So the first step I took was to buy the .co domain and host it in the same server I have the .com domain.
Once you do the other installation on wordpress and setup your new domain, this is a checklist of things to do in order to get your localized website up and running:
Checklist to duplicate your website on another domain in order to localize it to a different region or language:
- Copy your template:
This is a very simple process. What you need to do is copy the theme folder found in WordPress/wp-content/themes/ and paste it under the same route on your new WordPress installation. This will copy all of your template files into your new website including any changes that have been done in the look and feel of the template.
- Copy theme settings
There might have been some changes done in the theme settings. You may probably find a menu of your theme and there you may go over all the settings and duplicate them on your new WordPress installation. Both steps 1 and 2 will give you the them structure for your new localized WordPress installation.
- Re-install and configure all plugins
There might be software or WordPress extensions that do this automatically. However if you do it manually it might guarantee that you do not miss any step. Also, some plugins might have been setup to your old website. So it is better to just reinstall them. Make sure both websites have the same plugin versions.
- Copy Widgets
If you have added widgets to your website, make sure the new language website has them as well.
- Permalinks setup
The URLs in your website must have a structure. Make sure you copy this structure under settings>permalinks so that both your current website and the new language WordPress website have the same URL structure.
- Add the content
This is probably the most tedious work to do. Add all the translated content from your current website to the new installation. This means you need to translate not only your blog posts, but also your pages and the content included in any widgets.
As you can see, translating a WordPress site to another language and making your content available for other locations includes a lot of manual work.
Some of you might be thinking that there is a magic plugin to backup your site and have another duplicate. Although this may be possible. I would suggest you go for the manual step by step duplication of your WordPress since this guarantees that everything will be done appropriately. A plugin that restores will probably restore the same names for the database and that, for example, could be a huge problem if both your websites are hosted on the same server. Also, if you had the man power to translate your websites content into another language, you might also have the resources to implement the new installation.
Once all the work of creating another website for the new language you want to use, the next and final step is to reference both websites. This means, you have to allow a visitor to change the language of what they are seeing to another language. For example, if I am seeing the article in spanish I would want to be able to see the article in English with just one click.
You basically have two options:
1) Create a database table that relates the different language URLs and generate a php script that dynamically create the links on each content piece. The flow will be the following. When a user visits a website, the website will grab the current URL and search it on the database table that you create it. That table will give the script the URL of the different languages that translate the current content. Once that information is there, you may render the different links. When you create a new piece of content, remember to update this table. This way, every content on your website will have a counter part in another language dynamically.
2) Manually create the links. I would go for this solution if you have a small website and by small I mean less than 50 posts or even 100. Although this may sound a lot, unless you have an extremely good geek that could do option 1 with 100% guarantee it would work, this may be less work. Building option one will imply coding time and testing time and this may be more expensive than just going for option 2.
With your multi-language content linked properly between both websites, you will conclude your work of localizing your website to another language. I did this exactly as I told you above and the results are great! Look at the spanish website in spanish for Hotel El Eden en Santa Marta and the website in English for Hotel El Eden worldwide.
So after all this, the summary is:
How to localize your WordPress website to multiple languages?
- Create a new subdomain or new domain for your new languages.
- Duplicate your website theme, settings, plugins, widgets and content on your new subdomain or domain.
- Create a link to the other languages in both websites.
- Remember that manually doing the steps might be better than using a plugin or coding a magic solution. Manually is more tedious but if you had the man power to translate all of your content you might also have the same manpower to create your multi-lingual version.
This is all geeks. I hope you may be able to create your multi-lingual websites soon and localize your content. As final recommendation, remember that SEO is the only thing you cannot risk in this process. In other words, if your solution differs from this one, make sure your SEO will be intact or better on the new website.