Create a WordPress Multisite Network with Different Domain Names

I had a situation where I needed to create a WordPress Multisite network of sites with each site having completely unique domain names.  I found everything I needed by Googling around and I got it to work, but I wanted to document it for later use because there are some “gotchas”.  Here’s the procedure.

The Mission

WordPress Multisite is great for creating a network of sites administered through a single master admin and sharing a set of themes and plugins.  The sites can have different themes or share themes.  You have two choices on how the sites are mapped: by sub-domain or by sub-directory.

Sub-directory would mean your network of sites look something like this:

  • animals.com
  • animals.com/dogs/
  • animals.com/cats/

And so forth.  Sub-domain means your sites would look something like this:

  • animals.com
  • dogs.animals.com
  • cats.animals.com

Note in the above two sets of examples, the second level domain name is always the same: “animals”.

My goal was to have a network of sites that looked like this, with each site having a totally unique second-level domain name:

  • animals.com
  • dogs.com
  • cats.com

All of these would be on the same single WordPress Multisite install.  Can it be done?  Yes!

Your Domains

Of course, I am assuming that you have ownership of the domain names here (i.e., you have purchased them).  You should go ahead and point them all at the directory where you have installed WordPress Multisite.

The process for doing this is different for every hosting provider. On GoDaddy, go to My Products -> Domains and click on Manage.  Click on the domain you want to use to get to the Domain Details page. Open the DNS Zone File tab and change the @ record to point to your server’s IP address (you can get that from the hosting section of the GoDaddy back-end).  Your domain name is now pointed at your server.

Next, go to Hosting -> Manage to get to the cPanel.  Click on “Addon Domains” (this might be named slightly differently on different versions of cPanel, even within GoDaddy).  In the “Create an Addon Domain” form, type in your domain name, let the subdomain auto-populate, and choose your Multisite parent’s directory (do not create a new directory for this domain!)

Basically you need to point all of your domain names at the directory with the WordPress Multisite install.

Here’s how to do it if you are self-hosting on Amazon EC2.

Installing WordPress Multisite

I had heard that you can set up WordPress Multisite by “adding one line to wp-config.php”.  Well, it’s not that simple, but it’s not too bad either.

First, install regular WordPress in the root of your master directory (to which your master domain name points). Note that the Domain Mapping plugin below might not work if you install WordPress in a subdirectory, so install it in the root.

To convert this site to Multisite, you indeed start by adding a single define statement to the wp-config.php file, but that is just the beginning.  I used these instructions from WPMU to set up my Multisite install.

Note, I highly recommend configuring Multisite from a virgin WordPress install, not an existing site.  When I tried to do it from an existing site, I got the dreaded “Database not found” error (the actual error has nothing to do with finding the database though).

Somewhere around the middle of the process, you’ll have to choose between using subdirectories or subdomains for your Multisite network.  I didn’t know which to pick at first. For our purposes, choose subdirectories.  I read here, that it doesn’t really matter in our case, but subdirectories are easier to work with and don’t require tinkering with your hosting or DNS.  Plus, you can always map subdirectories using the Domain Mapping plugin below.

The instructions from WPMU are pretty good.  Other than deciding between subdomains vs. subdirectories, I didn’t have any problems.

Once you complete the install, go ahead and create your sites by going into My Sites -> Network Admin -> Sites.  On that page, click “Add New” to add your sites.  You can worry about setting the themes and other stuff later.  Just get them created for now.

Now, you should have a network of sites on subdomains of your main site!

Domain Mapping

To get each site to be on a separate domain, start by installing the WordPress MU Domain Mapping plugin from the repository.  Follow the installation instructions carefully.  This installation process for this plugin is more involved than most other WordPress plugins.  You’ll need FTP access to your server in order to modify your wp-config.php file and move the sunrise.php file to /wp-content.

After you’ve followed the installation instructions, you can start creating subdomains. You’ll need to first create the child multisite installs.  When you do, note the ID number of each install.

Then, go to Settings -> Domains and enter the site ID and domain name of each child site.

After I did this, I navigated to one of my unique domain names and it redirected to one of the WordPress Multisite pages!  That was good, but not exactly what I wanted.  I wanted the unique domain name to mask the WP Multisite subdirectory.

After some research, I found the setting that accomplished that.  In the WordPress admin, go to Settings -> Domains and check the “primary” box.  That will make your domain name mask the WP Multisite subdirectory.  That should do it!

Conclusion

So, this is pretty cool.  You can have a network of sites all managed from a single WP Multisite install, and each with a unique domain name.  I am by no means an expert on WP multisite, so let me know if you have any comments or better ways to do things! Hope this was helpful. – Brian

11 thoughts on “Create a WordPress Multisite Network with Different Domain Names

  1. Hi Brian,
      After endless searching, practically leading to neurosuos, I am grateful to have found your simple step by step WordPress MU domain blog!!! Many, many thanks to you.

    1. I seem to be stuck at the Domain MU plugin step. After network activation, & wp-config file editing, I never see Settings -> Domains to enter the site ID in my WordPress Admin panel. The admin user login is setup as Super user. 
    1a. Also, I read I needed to use: https://wordpress.org/plugins/wp-multi-network/installation/
    and follow its instructions.
    Can you please advise/assist?

    2. And just for clarity, within add on domain, zone editor, in the CPanel, I am to configure each separate domain name, including my primary domain name,  to point to public_html/wp? ( where I have installed wordpress mu)

    Thank you again!

    1. Hi Rea,

      1. Are you logged into the master site of the network? You’ll only see Settings -> Domains if you are. You should also see Settings -> Domain Mapping.

      1a. I didn’t have to use that plugin.

      2. Yes.

      Best,
      Brian

    1. Hi Petimi,

      Almost any hosting should support this. Hosting choice might depend more on traffic, etc. This client was using GoDaddy shared hosting and it worked fine.

      Best,
      Brian

  2. Great post! I think a part 2 is needed that address hosting the different domains for the multi-site. Each host may do things differently in how to either park the domains with a wildcard entry or if the Domains are not in your control to set A records (if no Private Name Servers) that point to the root site’s IP. Usually a search for the particular host will have a “how to” explanation/tutorial page. Part 3 could address what a realistic server configuration looks like to handle the demands of a multi-site network. (I came here from reading your Amazon php upgrade article. You had excellent advice.)

  3. Hello Brian,
    I want to do exactly the same thing but due to my lack of experience, I’m really struggling here. I’m uncertain in what you mean by saying “Then, you’ll need to go into your hosting control panel and specify which directory you want the domain names to point to.”
    My directory structure is as follows:

    HOME:
    public_html
    site1.com
    site2.com
    wp-admin
    wp-content
    wp-includes

    Have I started properly?

    1. Hi Dan,

      Not sure if you figured this out already. But no, you don’t create the directories in your WordPress directory. You need to log into your hosting provider, whether it be GoDaddy, Bluehost, or whatever, and set up those URLs to point to your WordPress directory.

      Thanks,
      Brian

  4. Hi Brian,
    A little hand-holding, if you please.
    In the instructions for setting up this siteA.com siteB.com siteC.com and so on, I’m instructed to move a file Sunrise-dot-something into some directory. But I don’t see where I’m to go to find that file initially (the place I’m moving it From. WhereZitAt?
    I’ve poked around in my directory structure, but no joy for me.
    So, I’m ready to be slapped with that trout.
    Thanks loads.
    Ken

        1. For anyone else who had this question (where to find the sunrise.php file) it’s in wp-content/plugins/wordpress-mu-domain-mapping. Seems obvious in hindsight, but it took me a few minutes to find so maybe this will save other people some time.

Leave a Comment or Ask a Question