Skip Navigation
5

Patricia is a WordPress freelancer. She builds and maintains sites for many different clients. To make life easier, Patricia uses a single WordPress install, running a multi-site network. This way, she can update WordPress and plugins once and keep all client sites up-to-date. Working with many European clients, naturally, some of Patricia’s sites are multilingual.

In this article, Patricia Brun Torre from Switzerland explains how she configures and manages a multisite WordPress network, with WPMUDev Domain Mapping plugin and WPML.

How to manage a network of client sites using Domain Mapping and WPML – the challenges and the idea

Making use of WordPress MultiSite install is a good point to start to manage a network of your clients sites. You will have a separate child site for each of your client’s website. Updating the entire network of client sites now reduces to a single click!

But this also means potential new questions:

  • Your customers want to see their sites under their original domain names. Theirs, not yours. So instead of your default WordPress MutiliSite client-1.my-main-domain.com subdomain, you client wishes to see client-1-preferable-domain.net.
  • Some of the sites have to be multilingual. So to make things more complicated, you will have different languages for these different sites on the network.

Look at the picture below which summarizes the idea:

WP MultiSite, WPML and domain mapping
WP MultiSite, WPML and domain mapping – the idea

What you will need to handle WPML with different domains in a single WordPress

There are numerous solutions to combine multilingual sites with management of multiple sites from one place using domain mapping.

Below we present both the general idea and a specific solution which has been working well for Patricia.

Network of client sites, WPML and domain mapping – what you will need

  1. A site with WordPress installation switched to WordPress Multisite mode. This is going to be the main (and only) site to manage all your customers sites. Sounds great? Right, we share your opinion.
  2. A plugin which gives your users the option to map one – or multiple – domains to their own sites, example:
    • client-1.my-main-domain.com -> client-1-prefereable-domain.org
    • client-2.my-main-domain.com -> client-2-other-domain.com
  3. A plugin for WordPress Multilingual.

WordPress MultiSite, WPML and domain mapping – Patricia’s choice

  1. WordPress Multisite under virtuaza.net domain
  2. WPMUDev Domain Mapping Plugin
  3. WPML plugin for managing sites in different languages

Patricia decided to use this WPMUDev Domain Mapping Premium Plugin because it comes from the same developers as another handy plugin Patricia uses, WPMUDev Multi-Domains, described further, in the last section.

patricia, wp developer Patricia explains: WPMUDev Domain Mapping and WPMUDev Multi-Domains both share and modify wp-content/sunrise.php.

In my opinion this is the reason why it’s safer to have only one developer (WPMUDev) to provide both plugins, compared to use of the popular WordPress MU Domain Mapping (free in wordpress.org repo), which I’m sure would also work very well.

Network of client sites, domain mapping and WPML – how to configure

Here are the steps to be taken to achieve a similar effect Patricia gained:

  1. Switch your WordPress to WordPress Multisite network.
  2. Install the WPMUDev Domain Mapping plugin at your network level.
  3. Install WPML plugin at your network level.
  4. For each new customer site:
    1. In your network dashboard add a new site. Assuming your main domain is called my-main-domain.com your new child site name will be client-1.my-main-domain.com.
    2. WP child site to customer domain mapping
      WP child site to customer domain mapping
      Let your customer map his/her domains (you can also do it yourself as superadmin). This way your customer will see the website under his/her original domain name (see pictures below, in the next section).

      Note. You might need manually set the mapped domain in the network admin dashboard under “Sites”, and replace the default WP MulitiSite domain with your customer real domain.

    3. Let your customer translate the contents using WPML.

Managing different languages within a single site – how it looks like from a customer point of view

Now let’s see how your WordPress child site looks like from your single customer point of view.

Due to using WPMUdev domain mapping plugin a customer can see his/her site under their real domain (nice name), both within the dashboard and in the front end (look at the URLs in pictures below).

Since your customer can see his/her WordPress site as if it were a single standard WordPress install, there is nothing new in using WPML plugin. It works out of the box.

Below we present pjmartin.ch website, one of Patricia’s clients who uses WPML to present her site in three languages: English, German, French. pjmartin.ch site is accessible both from Patricia’s WP network (by Patricia as a super admin user) and directly by her customer under the nice domain due to domain mapping.

WPML in a customer dashboard (pjmartin.ch)
Using WPML to manage different languages in a customer site (pjmartin.ch dashboard)
Different languages in a customer site (fron-end)
Different languages in a customer site (pjmartin.ch front-end)

Note, now a customer doesn’t have to bother about:

  • WP updates
  • installing, buying and updating plugins
  • installing and updating themes

Moving a step further – other handy plugins to manage your WordPress Mulitisite network

For all who have liked the approach and taken their appetites for more, Patricia reveals some other interesting plugins which have helped her in better maintaining various customer sites.

WPMUDev Multi-Domains

multi domain mapping
multi domain mapping
This plugin allows you to run an unlimited number of different domains from one WordPress Multisite installation.

In practice this means that you can manage your own different domain in one place (from one WordPress) to have them for different purposes. Let’s see an example:

  • my-business-domain.com – my master domain
  • my-customers.net – domains for my customers
    • client-1-my-customers.net maps to -> client-1-prefereable-domain.org (en, de, fr)
    • client-2-my-customers.net maps to -> client-2-other-domain.com
  • my-private-domain.com – another domain, for private purposes

Now let’s see how it works for Patricia’s case.

  • virtuaza.net – Patricia’s main domain
  • lesforums.ch – some other domain
  • lessites.ch – domain for maintaining all customer domains (note, this is the name used before mapping to customer target domain)
    • pjmartin.lessites.ch -> pjmartin.ch
    • biengrandir.lessites.ch -> biengrandir.ch

patricia, wp developerPatricia says: lessites.ch is an added domain to virtuaza.net, which allows me to create a customer under lessites.ch instead of virtuaza.net.

I want to keep subsites of virtuaza.net to mine ones only like support.virtuaza.net, etc.

WPMUDev Pro Sites

wpmudev pro sites
wpmudev pro sites

This WordPress Plugin lets you create your own profitable site hosting network, like Edublogs.org or WordPress.com. Your users can upgrade their sites and access features like premium themes, plugins, extra storage, domain mapping or removing advertising.

In Patricia’s case Pro Sites plugin allowed to have customers registered on different levels and then to manage themes and plugins per level. See picture on the right.

WPMUDev Branding

Branding Plugin lets you completely revamp the WordPress backend in minutes. Here, it allowed Patricia to remove Permalinks from WordPress Setting menu for her customers sites. This way all customers sites are forced to use the same type of permalinks.

“I like Ultimate Branding as I can make the dashboard a bit less confusing for beginners, and I could add my logo in the admin bar and a customized code in the footer of all subsites. I can even hide the permalinks menu entry if necessary.” Patricia comments.

What is your way to handle WPML and managing different domains?

How do you like Patricia’s approach? Do you think it could also work for you? What is your way to manage WPML and domain mapping from one place? Feel free to share your comment with us.

If there is anything special about your site using WPML, please also let us know. Most interesting cases will be covered in the next articles in this new Case Studies series.

Other articles related to WPML and Domain Mapping

How can we make WPML better for you?

Share your thoughts and comments about our plugin, documentation, or videos by booking a Zoom call with Agnes, our Client Advocate. Your feedback matters and helps us improve.

Book a call with Agnes

5 Responses to “Maintaining client sites centrally using WPML and Domain Mapping”

  1. Hi

    To WPML: thank you for featuring my site.

    To everyone: if you have any comment/question about my setup as described above, please do not hesitate to ask or post, I’ll watch this post and answer as soon as possible.

    I hope this is useful and look forward to read you all.
    Patricia

  2. Interesting post.

    As far as i know, MU setups are memory and CPU expensive and tends to eat most of the server resources.

    I wonder how do you deal with performances.
    Wouldn’t be cheaper (at least from this point of view), to have different websites?

  3. Hi Andrea and thank you for your comment,

    Well, your question is not specifically about using Domain Mapping in conjunction with WPML, but more a debate on the pros and cons of multisites.

    But anyway, I think that if one or several of your customers get heavy load, it won’t change much that they are all in one installation/database or each on their own installation/database.
    You will tell me that with separate installs you can spread them on different servers, but on multisite you can also do that if your site grow big = set your install for load balancing on several servers… wordpress.com runs millions of sites like that (note I’m nowhere near their size 😉 )

    Of course dedicated server(s) is/are necessary. Consider doing multisite on shared hosting only if you host a few of your own sites.

    Thanks again

  4. Thanks for the great article Patricia.

    I was using multisite in multilingual for my client too.. due to the hosting restrictions & the usages getting limited. I forced to move/migrate the site into other hosting.

    Please can you provide some advise the efficient way to migrate the multisite ?

    Many thanks in advance!

    • Hi Francis and thank you for your comment

      I missed it and I’m sorry to answer only now.

      I have no special advice for migrating multisite, compared to single install, and no special advice due to the use of WPML.

      About using domain mapping, of course, if your users manage their domain names, and entered an IP address, they’ll have to change it to the new one, and if they entered nameservers, they’ll also have to change. If you manage all the domain for your clients, you do it all at the same time, and warn them about the change, and that their domain may lead to the old place for some hours (DNS propagation)

      actually if you move the whole installation, including all the domain names, to the new host, it’s “easy” and only a question of moving the files (clear cache first), and the database. And changing the nameservers for the domain names as said above. you might want to lock the old site to avoid further interaction (your clients editing their sites, and visitors commenting, etc) until visitors are all on the new site, as domain propagation might take some hours.

      the things to change are the database connection settings in wp-config, as well as some hardcoded full path stuff that may reside in some plugins.
      I’m not talking about full path url, which should stay the same if domain name is the same (and then all ok about images or other files links), but I’m talking about server full path, like /var/sites/yourname/public_html/ for example… I think some cache plugins need full path, look in your wp-config and do a search in the database.

      I hope I do not forget anything and as your question is about 1 week old, maybe you already did the migration, if yes, was it all ok?

      Thanks again!