WPML allows you to connect different domains or sub-domains to your translations. This can create a closer connection with your target audience and add an SEO bonus to your secondary languages.
Whenever your site receives requests from these domains or sub-domains, WPML loads the appropriate site translation. It does not simply redirect to your primary domain.
To enable this option, go to the WPML → Languages page. Scroll down to the Language URL format section and enable the A different domain per language option.
Setting up per-domain languages
You have two options when setting up per-domain languages.
Different domain for each language
For example, if you have a German translation of your English website, you can set it to have a different domain:
- example.com → English
- example.de → German
You can also use sub-domains such as:
- en.example.com → English
- de.example.com → German
What you will need
Before using this option, there are a few things you need to have.
- You need to buy the domains that you want to use. If you are setting up your site manually you also need to make sure you can edit your domain DNS settings. This lets you connect your domain name to your website’s server location, also known as its IP address.
- If you’re using sub-domains, then you still need to buy the main domain for it (e.g. example.com). Make sure your hosting plan allows you to create sub-domains.
- If you’re looking for a reliable hosting provider whose packages work great with WPML, here is a list you can use.
- You should have an SSL certificate for each site translation, or one multi-domain SSL certificate.
How to enable different languages per domain
You can set this option up either by yourself or with the help of your hosting provider. Here, we won’t cover setting it up by yourself, because every hosting provider has their own control panel be it cPanel, Webmin, or something else.
Let’s say you want to set up a different domain, “example.de”, for the German version of your site. The primary domain for English is “example.com”. If you’re not a system administrator it’s best to simply ask your hosting provider for help.
These are the recommended steps to take:
1. Buy or register a new domain
First, buy your domain (e.g. “example.de”). This is the domain you want to show whenever a client accesses the German translation of your site.
If possible, get the hosting and the domain from the same company. This will simplify the process of setting up different settings.
2. Configure the DNS settings
Next, you need to make all your domains (or sub-domains) point to your WPML-powered site.
This is something that the company that sold you the domain should do for you.
Here is what you need to ask your hosting company:
- When using separate domains: I want to add a parked domain (alias) to my existing domain. My existing domain is “example.com”. I want to park the “example.de” domain.
- When using sub-domains: I want to add the “de.example.com” subdomain to my “example.com” subdomain. It should point to the same location as the main domain.
Since every user has a different set up, the hosting company will need information such as:
- The location (IP address) of your WordPress site. This is where your website is hosted (i.e. Godaddy, NameCheap).
- The name of the primary domain of your WordPress site. In our example, it’s “example.com”.
If you bought the domain and hosting from different companies, simply ask them to send you detailed instructions.
Testing if the domains are set properly
It’s easy to check if the domains are set up properly. Before you set the option in WPML, simply visit your new domains or subdomains. They should all show the same site without a redirection.
For example, if you have the domains “example.com” and “example.de” (and WPML is deactivated) you should see the same content when you visit any of these domains.
3. Set up the option in WPML
Once the hosting company has pointed the German domain to the WordPress installation, you need to return to your site and from the admin, go to WPML → Languages.
Scroll down to the Language URL format section and select A different domain per language.
Type in the domain name “example.de” in the box and click Save.
WPML validates the new domain, checking that everything connects. If something is not set correctly, there will be a notice about it on the screen.
On this screen, you can also enable login sessions to carry over to other domains. If you intend on using a page builder like Elementor to edit default and secondary content, you need to enable this feature. Otherwise, you’ll get logged out when you switch between domains.
Frequently Asked Questions
Can I use a mix of domains and subdomains? For example, my main site is “example.com”, for Italian I have “it.domain.com”, and for German “domain.de”?
Yes, you can. Just set them up on your hosting and then enter them in WPML settings as explained above.
Can I use a mix of domains and directories/parameters? For example, my main site is example.com, for Italian I have “domain.com/it”, and for German “domain.de”.
No, it is not possible to have a mix of languages that use domains and languages that use directories.
If you are interested in learning more about this topic, there are plenty of online sources available. Otherwise, please feel free to contact our support if you need additional help.
Here are some helpful links to videos on the topic: