User and Search Friendly URL Design for Multi-Language Websites in 4 Easy Steps
What an overwhelming headline! User and search friendly URL design for multi-language websites?
What are you talking about? Let me explain. Then I’ll introduce to you the 4 easy steps you need to follow.
One of the basic best practices of SEO are user and search friendly URLs. URLs are simply Internet addresses like something.com/more/details
Step 1: Make URLs user and search friendly
My example is already both user and search friendly. It’s readable and understandable (you sometimes even call them speaking URLs).
Now you already know that we talk about “something”, “more” of it and some “details”. A better example would be
Here we quickly notice that the page deals with a Ford car by the name of Focus.
The actual Ford site is almost as good, but that would be the ideal URL structure. It’s also perfect for Google and other search engines as it already includes both keywords.
Additionally there is a site structure with cars being a folder or rather directory and ford-focus a specific page out of similar ones in this directory.
Now consider an international site. Ford is a good example here as the Ford Focus gets sold in Europe too.
In Europe people speak a few dozens of different languages. Just covering the more important ones like
is not an easy task. It starts with the URLs. Let’s assume Ford.com would be a multi-language site, that is a site that covers all those languages.
In contrast there are plenty of companies that prefer separate top level or country domains for each country like for example
etc. Maintaining so many sites is quite an effort though. Many small businesses won’t create an extra site for each country.
To make nobody else takes your name though you should reserve a domain for each important country at least even if you plan just to use one.
Let’s assume though that Ford.com would develop a multi-language website including all those languages.
We would encounter several problems as each of these languages has special characters others don’t have and Google has some difficulties with. I don’t want to focus (what a pun! ;-) on those.
Let’s also assume that we don’t deal (yet) with the special characters. Let’s talk about the standard procedure for user and SEO friendly URL design for multi-language websites.
Step 2: Separate URLs
What’s most important: You need separate URLs for each language! No joke. There are sites that have several languages on the same page (using the same URL).
Depending on you browser language, IP or according to your choice the content language changes but the URL stays the same.
This way you would view ford.com/cars/ford-focus from Spain and see the page in Spanish, from France in French and so on while in the US it still would be displayed in English.
The same URL for the different languages is the worst case scenario from the SEO perspective.
Google will only index the English version or whatever is your standard language. Your site won’t get found on localized Google search at all.
Plus the automatic setting of languages doesn’t work as desired in many cases. American expats in Spain get the Spanish version in spite of not speaking Spanish for instance.
A simple and SEO wise good solution would be adding a directory (or virtual one) for each specific language.
Thus we would end up having:
Step 3: Translate URLs
That’s almost fine but there is one problem: You use the English word or keyword “cars” for the Spanish and French version. In France people even can get angry at you for doing that.
As I’m doing SEO in Germany I’ll use the German examples from now on. The next step is translating the URLs as well:
You see that the product name remains the same but the keyword describing it “cars” changes to the German “autos”.
We would be happy here as users and website optimizers but in most cases the programmers behind the content management system will cry out and tell you that it does not work that way.
Step 4: Add URL numbers
You can’t create different pages with varying for each language without risking chaos.
So we need a small change in the URL structure and we will tell them that so called URL rewriting (in most cases using the so called mod_Rewrite module for Apache) will suffice.
The simplest way to deal with this issue is adding a unique number to each page. This number stays the same across the languages to allow handling the same pages across multiple pages with much hassle.
So we end having something like this:
take note that “1234” is a random number here, it could apply to the data set number or page number or whatever you choose to count.
It has to be assign just once for a single URL and stay permanent. It’s not a session ID or something like that.
Also take note that I added the number at the end. This is to prevent Google from assigning too much authority to the number as directory “name”.
Make sure that a numbered URL can always get identified just by the number.
Thus ford.com/1234 should still lead to the same page at ford.com/de/autos/ford-focus/1234
This also works with WordPress blogs. Having numbers in the URL allows you to change the keywords in it or mistype it without breaking it.
We’re done. Now we can optimize a little if we like to.
Step 5: Optimize URLs
This step is already optional. Some of you might argue that an URL like the above ford.com/de/autos/ford-focus/1234 still has some issues.
For instance it mentions the brand aka “ford” twice which is a little too much if you ask me. It looks like SEO out of 1999. Thus you could cut the second “ford” in “ford-focus”. This results in:
Also if you change cars to autos earlier on you don’t need the “de”. You could use
instead as “autos” applies to the German part of the site only. The English site says ford.com/cars/focus/1234
Now we’re really done. At this point we’ll probably face the special characters issues with so called umlauts (äöü) for instance but that’s another post.
After all you see that the basic user and search friendly URL design for multi-language websites is no voodoo at all. 4 easy steps are enough.
Last updated: March 27th, 2018.
* (CC BY 2.0) Creative Commons image by Chase Elliot Clark