{"id":146248,"date":"2015-09-21T11:00:17","date_gmt":"2015-09-21T11:00:17","guid":{"rendered":"http:\/\/premium.wpmudev.org\/blog\/?p=146248"},"modified":"2022-03-21T23:11:31","modified_gmt":"2022-03-21T23:11:31","slug":"domain-mapping-wordpress-multisite","status":"publish","type":"post","link":"https:\/\/wpmu-dev.pro\/blog\/domain-mapping-wordpress-multisite\/","title":{"rendered":"The Ultimate WordPress Multisite Domain Mapping Guide"},"content":{"rendered":"<p>WordPress Multisite makes it a breeze to manage several sites as part of a single network. But what if you want all the subsites to use a custom domain of their own? This is the problem WordPress Multisite domain mapping solves.<\/p>\n<p>You\u2019ll still get the same benefits of managing a multisite network on the back-end. On the front-end, your site visitors won&#8217;t notice a difference. Even though each subsite will have its own unique domain.<\/p>\n<figure class=\"wp-caption aligncenter\" data-caption=\"true\"><img loading=\"lazy\" decoding=\"async\" class=\"attachment-600x600\" src=\"https:\/\/wpmu-dev.pro\/blog\/wp-content\/uploads\/2015\/09\/A-WordPress-Multisite-Network.png\" alt=\"Infographic of a WordPress Multisite Network branching out into Subsites\" width=\"600\" height=\"317\" \/><figcaption class=\"wp-caption-text\">An overview of a WordPress Multisite network running many Subsites.<\/figcaption><\/figure>\n<p>In this post, I\u2019ll show you how to get domain mapping up and running on the latest version of WordPress Multisite. I&#8217;ll cover how to do it with a traditional shared hosting account (using cPanel), and\u00a0a managed WordPress hosting (<a href=\"https:\/\/wpmu-dev.pro\/hosting\/\" target=\"_blank\" rel=\"noopener\">WPMU DEV Hosting<\/a>). And yes, you need not\u00a0use a plugin anymore (more on that later).<\/p>\n<p>We&#8217;ll cover:<\/p>\n<ul>\n<li><a href=\"#what-is-domain-mapping\">What is Domain Mapping?<\/a><\/li>\n<li><a href=\"#uses-domain-mapping\">Uses of WordPress Domain Mapping<\/a><\/li>\n<li><a href=\"#no-domain-mapping-plugins\">Say Goodbye to Domain Mapping Plugins<\/a><\/li>\n<li><a href=\"#overview-domain-mapping\">An Overview of WordPress Domain Mapping<\/a><\/li>\n<li><a href=\"#add-ssl\">Adding SSL Certificates for Your Mapped Domain<\/a><\/li>\n<li><a href=\"#fix-error\">Fixing Network Subsite Login Error<\/a><\/li>\n<\/ul>\n<h2 id=\"what-is-domain-mapping\">What is Domain Mapping?<\/h2>\n<figure class=\"wp-caption aligncenter\" data-caption=\"true\"><img loading=\"lazy\" decoding=\"async\" class=\"attachment-600x600\" src=\"https:\/\/wpmu-dev.pro\/blog\/wp-content\/uploads\/2015\/09\/WordPress-Multisite-Network-Subdomains-Subdirectory-Domain-Mapping.png\" alt=\"An infographic explaining what WordPress Multisite domain mapping is.\" width=\"600\" height=\"509\" \/><figcaption class=\"wp-caption-text\">An overview of the WordPress Multisite domain mapping process.<\/figcaption><\/figure>\n<p>By default, a WordPress Multisite network with a top-level domain (e.g. <em>network.com<\/em>) assigns all the subsites as either:<\/p>\n<ul>\n<li><strong>Sub-domains<\/strong> &#8211; <em>subsite1.network.com<\/em>, <em>subsite1.network.com<\/em><\/li>\n<li><strong>Sub-directories<\/strong> &#8211; <em>network.com\/subsite1<\/em>, <em>network.com\/subsite1<\/em><\/li>\n<\/ul>\n<p>When you\u2019re first activating a Multisite network, you can select if your subsites will use sub-domains or sub-directories. Please make a note that you cannot change this later.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"attachment-600x600 aligncenter\" src=\"https:\/\/wpmu-dev.pro\/blog\/wp-content\/uploads\/2015\/09\/Choose-Sub-Domains-or-Sub-Directories-Multisite-Network-Setup.png\" alt=\"WordPress Multisite network setup screen with choice to select sub-domains or sub-directory\" width=\"600\" height=\"238\" \/><\/p>\n<p>Now, having a sub-domain or sub-directory URL is acceptable for <em>most<\/em> use cases.<\/p>\n<p>But what if you\u2019re managing distinct sites as part of a single Multisite installation? It\u2019s ideal to give each site a unique, custom domain of their own (e.g. <em>domain1.com<\/em>, <em>domain2.com<\/em>).<\/p>\n<blockquote><p><em>WordPress Multisite Domain Mapping assigns the network&#8217;s subsites a specific, unique domain name.<\/em><\/p><\/blockquote>\n<h2 id=\"uses-domain-mapping\">Uses of WordPress Domain Mapping<\/h2>\n<ul>\n<li>You have many of your <a href=\"https:\/\/wpmu-dev.pro\/blog\/multisite-client-sites\/\" target=\"_blank\" rel=\"noopener\">clients&#8217; websites hosted on a single WordPress multisite network<\/a>. And you want to give all of them a unique, custom domain name that reflects their\u00a0brand better.<\/li>\n<li>You&#8217;re managing a large business or enterprise website. If each product\/service has a separate subsite, giving each of them a\u00a0custom domain can be helpful from a branding and marketing perspective. For example, <em>apple.com<\/em> can have a network of subsites for their various products hosted at\u00a0<em>iphone.com<\/em>,\u00a0<em>ipad.com<\/em>,\u00a0<em>macbook.com<\/em>,\u00a0<em>etc<\/em>.<\/li>\n<li>You want to set up\u00a0a multisite blog network like <a href=\"https:\/\/wordpress.com\/\" rel=\"noopener\" target=\"_blank\"><em>WordPress.com<\/em><\/a> or <a href=\"https:\/\/edublogs.org\/\" rel=\"noopener\" target=\"_blank\"><em>Edublogs.org<\/em><\/a>. Here, users can create their own blogs or sites for free. And if they want, you can offer them\u00a0an upgrade to include a custom domain. For easier management, you can use paid plugins like <a href=\"https:\/\/wpultimo.com\/\" rel=\"noopener\" target=\"_blank\">WP Ultimo<\/a> to automate domain mapping\u00a0for your users.<\/li>\n<\/ul>\n<h2 id=\"no-domain-mapping-plugins\">Say Goodbye to Domain Mapping Plugins<\/h2>\n<p>Gone are the days of using a plugin for domain mapping a WordPress Multisite.<\/p>\n<p><strong>WordPress 4.5\u00a0<\/strong>introduced domain mapping as a native feature. So, you don\u2019t have to use any third-party plugin anymore.<\/p>\n<p>Since this is a new functionality, most domain mapping tutorials you&#8217;ll find on the web are no longer up to date. They&#8217;re based on using plugins like\u00a0our very own <a href=\"https:\/\/github.com\/wpmudev\/domain-mapping\" rel=\"noopener\" target=\"_blank\">Domain Mapping<\/a> (now retired).<\/p>\n<p>You can ignore all those tutorials. This guide is the only method you should use from 2019 onward. And as always, please <a href=\"https:\/\/wpmu-dev.pro\/project\/snapshot\/\" target=\"_blank\" rel=\"noopener\">take a complete backup of your site<\/a> before you make any changes.<\/p>\n<h2 id=\"overview-domain-mapping\">An Overview of WordPress Domain Mapping<\/h2>\n<ol>\n<li><a href=\"#install-wp-multisite\">Install a WordPress Multisite Network<\/a><\/li>\n<li><a href=\"#configure-dns\">Configure DNS Records (Nameservers) for the Custom Domain<\/a><\/li>\n<li><a href=\"#add-custom-domain\">Add the Custom Domain to Your Hosting Account<\/a><\/li>\n<li><a href=\"#map-subsite\">Map a Network Subsite to its Custom Domain<\/a><\/li>\n<li><a href=\"#repeat-process\">Repeat the Process for More Subsites<\/a> (if needed)<\/li>\n<\/ol>\n<p>Have the dashboards of your hosting account, domain\u00a0registrar, and WordPress Multisite open and ready.<\/p>\n<p>Now, let\u2019s get mapping!<\/p>\n<h3 id=\"install-wp-multisite\">Step 1: Install a WordPress Multisite Network<\/h3>\n<p>To get started, have a WordPress Multisite Network up and running, ideally with one or more subsites. Since this guide is about domain mapping WordPress, I won\u2019t go into finer details of how to set up a Multisite.<\/p>\n<p>Here\u2019s a basic overview of the Multisite network and subsites creation process:<\/p>\n<ul>\n<li>Install a regular WordPress site.<\/li>\n<li>Define multisite function in the <em>wp-config.php<\/em> file to allow Multisite on your WordPress setup.<\/li>\n<li>Activate Multisite network by going to <em>Tools &gt; Network Setup<\/em> menu item in your WordPress dashboard. Here, choose whether you want to go with sub-domains or sub-directory configurations for your future subsites.<\/li>\n<li>Enable the Multisite network. To do this, you need to add the two code snippets given after you finish the network setup process. Add the first code snippet\u00a0to your <em>wp-config.php<\/em> file; the second one should replace all the code in your\u00a0<em>.htaccess<\/em> file.<\/li>\n<li>Add subsites to your Multisite network by going to <em>Sites &gt; Add New<\/em> in your <em>Network Admin<\/em> dashboard.<\/li>\n<\/ul>\n<p>You can refer to our <a href=\"https:\/\/wpmu-dev.pro\/blog\/ultimate-guide-multisite\/\" target=\"_blank\" rel=\"noopener\">Ultimate Guide to WordPress Multisite<\/a> for a detailed step-by-step process.<\/p>\n<p>If your site is on <a href=\"https:\/\/wpmu-dev.pro\/hosting\/\" target=\"_blank\" rel=\"noopener\">WPMU DEV Hosting<\/a>, you can do this with just a single click. And it takes a full backup of your site automatically before starting the process, so in case you want to <a href=\"https:\/\/wpmu-dev.pro\/blog\/reset-wordpress-website\/\" target=\"_blank\" rel=\"noopener\">reset and restart<\/a>, you\u2019re covered there too.<\/p>\n<p><strong>Note:\u00a0<\/strong>Before domain mapping WordPress, make sure that your Multisite network is running perfectly. Also ensure that subsites creation works on your network with no\u00a0issues.<\/p>\n<h3 id=\"configure-dns\">Step 2: Configure DNS Records (Nameservers) for the Custom Domain<\/h3>\n<p>First, you need to make sure that your custom domain name points to your hosting server.<\/p>\n<p>If you have different\u00a0domain and hosting accounts (<a href=\"https:\/\/wpmu-dev.pro\/blog\/keep-domains-wordpress-separate\/\" target=\"_blank\" rel=\"noopener\">which you really\u00a0should<\/a>), you&#8217;d have to repeat the steps to set up your network\u2019s main domain name (i.e. the primary domain on which you&#8217;ve installed WordPress).<\/p>\n<p>If you bought a combo domain-hosting package, your hosting provider will have\u00a0taken care of this process for you in the beginning.<\/p>\n<p>In either case, you need to configure your custom domain\u2019s DNS records manually. I can\u2019t give you a single catch-all process, since the exact method will depend on which domain registrar and hosting provider you use.<\/p>\n<p>Here are official guides on how to edit DNS records on a few popular domain registrars (and make sure to check out our <a href=\"https:\/\/wpmu-dev.pro\/blog\/the-ultimate-guide-to-dns-for-wordpress\/\" target=\"_blank\" rel=\"noopener\">Ultimate Guide To DNS For WordPress<\/a>):<\/p>\n<ul>\n<li><a href=\"https:\/\/www.godaddy.com\/help\/change-nameservers-for-my-domains-664\" rel=\"noopener\" target=\"_blank\">GoDaddy<\/a><\/li>\n<li><a href=\"https:\/\/www.domain.com\/help\/article\/dns-management-how-to-update-dns-records\" rel=\"noopener\" target=\"_blank\">Domain.com<\/a><\/li>\n<li><a href=\"https:\/\/www.namecheap.com\/support\/knowledgebase\/article.aspx\/767\/10\/how-can-i-change-the-nameservers-for-my-domain\" rel=\"noopener\" target=\"_blank\">Namecheap<\/a><\/li>\n<li><a href=\"https:\/\/support.example.com\/domains\/answer\/3290309?hl=en\" rel=\"noopener\" target=\"_blank\">Google Domains<\/a><\/li>\n<\/ul>\n<p><em>Note:<\/em> We now also offer <a href=\"https:\/\/wpmu-dev.pro\/blog\/wordpress-dns-management\/\" target=\"_blank\" rel=\"noopener\">DNS management<\/a> for WPMU DEV hosted sites (and we&#8217;ve fine-tuned it for Multisite!)<\/p>\n<figure class=\"wp-caption aligncenter\" data-caption=\"true\"><img loading=\"lazy\" decoding=\"async\" class=\"attachment-600x600\" src=\"https:\/\/wpmu-dev.pro\/blog\/wp-content\/uploads\/2015\/09\/DNS-Management-GoDaddy.png\" alt=\"The DNS Management panel of GoDaddy Domain Registrar\" width=\"600\" height=\"382\" \/><figcaption class=\"wp-caption-text\">The DNS Management panel on GoDaddy. You can scroll down to edit the NS fields.<\/figcaption><\/figure>\n<figure class=\"wp-caption aligncenter\" data-caption=\"true\"><img loading=\"lazy\" decoding=\"async\" class=\"attachment-600x600 size-600x600\" src=\"https:\/\/wpmu-dev.pro\/blog\/wp-content\/uploads\/2015\/09\/Google-Domains-DNS-Settings-Panel.png\" alt=\"Google Domains DNS Settings Panel\" width=\"600\" height=\"321\" \/><figcaption class=\"wp-caption-text\">The DNS settings dashboard on Google Domains. Scroll down to add other DNS records.<\/figcaption><\/figure>\n<p>Depending on what kind of hosting account you have, you\u2019ll either have to add and\/or edit one or all these records.<\/p>\n<ul>\n<li><strong>CNAME record<\/strong>\u00a0\u2013\u00a0Also known as <em>Canonical Name<\/em>, it\u2019s a DNS record that maps an alias name to a true domain name (aka canonical domain name). CNAME records are typically used to map a sub-domain such as <em>www<\/em> or <em>mail<\/em> to the primary domain hosting that sub-domain\u2019s content. For example, a CNAME record can map <em>www.example.com<\/em> to the domain <em>example.com<\/em>.<\/li>\n<li><strong>A record<\/strong>\u00a0\u2013\u00a0It maps a domain name to the IP address (Version 4) of the server hosting the domain.<\/li>\n<li><strong>AAAA record<\/strong>\u00a0\u2013\u00a0Also called quad-A records, it specifies IPv6 address for a web host. It works the same way as A record, the only difference being the updated version of IP address. You should use AAAA record along with A record, as it\u2019s considered best practice and might even lead to performance boost.<\/li>\n<li><strong>Nameservers<\/strong>\u00a0\u2013\u00a0Also called NS records, they&#8217;re given to you by your hosting provider. They serve as a bridge between your domain and the IP address of your hosting account so visitors can reach your site. Unlike other DNS records, if you change your Nameservers, then your hosting provider will have to manage all your other DNS records.<\/li>\n<\/ul>\n<figure class=\"wp-caption aligncenter\" data-caption=\"true\"><img loading=\"lazy\" decoding=\"async\" class=\"attachment-600x600 size-600x600\" src=\"https:\/\/wpmu-dev.pro\/blog\/wp-content\/uploads\/2015\/09\/WPMU-DEV-Hosting-DNS-Records.png\" alt=\"WPMU DEV Hosting dashboard, Domains tab\" width=\"600\" height=\"161\" \/><figcaption class=\"wp-caption-text\">WPMU DEV Hosting recommends using these DNS records to point your domain(s) to the hosting server.<\/figcaption><\/figure>\n<figure class=\"wp-caption aligncenter\" data-caption=\"true\"><img loading=\"lazy\" decoding=\"async\" class=\"attachment-600x600 size-600x600\" src=\"https:\/\/wpmu-dev.pro\/blog\/wp-content\/uploads\/2015\/09\/Dreamhost-Nameservers-Shared-Hosting-Setup.png\" alt=\"Bluehost DNS Nameserver records highlighted\" width=\"600\" height=\"233\" \/><figcaption class=\"wp-caption-text\">A shared hosting account typically needs you to set up only NS records (or Nameservers).<\/figcaption><\/figure>\n<p>For an in-depth guide, there\u2019s no better resource than our <a href=\"https:\/\/wpmu-dev.pro\/docs\/hosting\/dns-and-domain-management\/\" target=\"_blank\" rel=\"noopener\">DNS &amp; Domain Management docs<\/a> to get started.<\/p>\n<p>Usually, it takes less than an hour to update your DNS records. Yet, in some rare cases, it may take up to 48 hours for them to propagate. Why? Well, only the DNS gods would know!<\/p>\n<p>If you have many subsites you want to map to their own custom domains, you need to update all their DNS records right away. This way, you don\u2019t have to wait again later.<\/p>\n<p>You can use DNS lookup services such as <a href=\"https:\/\/dnschecker.org\/\" rel=\"noopener\" target=\"_blank\">DNS Checker<\/a> or <a href=\"https:\/\/mxtoolbox.com\/SuperTool.aspx?\" rel=\"noopener\" target=\"_blank\">MxToolbox<\/a> to make sure that your domain\u2019s new DNS records have propagated successfully (tip: you only need to check for the records you\u2019ve updated).<\/p>\n<p>If you\u2019re using WPMU DEV Hosting, you don\u2019t have to bother with third-party DNS lookup services. After you finish <em>Step 3<\/em>, our system will automatically perform a regular check. If your custom domain\u2019s DNS records resolve to your hosting account, we&#8217;ll notify you via email.<\/p>\n<p>Once you\u2019re done with Step 2, regardless of whether your domain\u2019s DNS records have propagated, you can move ahead to the next step.<\/p>\n<h3 id=\"add-custom-domain\">Step 3: Add the Custom Domain to Your Hosting Account<\/h3>\n<p>Next, you need to add this custom domain to your hosting server on which you&#8217;ve installed your main network site.<\/p>\n<p>The exact method to do this depends on where you\u2019re hosting your network site, so I\u2019ll consider two common scenarios:<\/p>\n<ul>\n<li><strong>Using cPanel<\/strong> &#8211; most shared hosting environments use this setup.<\/li>\n<li><strong>Using WPMU DEV Hosting<\/strong> &#8211; our custom dashboard\u00a0makes it much easier. Most managed WordPress hosting providers have a similar setup.<\/li>\n<\/ul>\n<h4>Adding a Domain Alias with cPanel<\/h4>\n<p>Go to your hosting account\u2019s cPanel dashboard. Here, look for an option called <em>Alias<\/em> or <em>Parked Domains<\/em> under the <em>Domains <\/em>section.<\/p>\n<p><em>Domain Aliases<\/em> (or <em>Parked Domains<\/em>) let you access your website from different domain names. For example, you can make <em>www.domain.org<\/em> and <em>www.domain.edu<\/em> show content from <em>www.domain.com<\/em>. For more details, head to\u00a0<a href=\"https:\/\/documentation.cpanel.net\/display\/82Docs\/Aliases#\" rel=\"noopener\" target=\"_blank\">cPanel\u00a0docs<\/a>.<\/p>\n<p>In my example, I\u2019ll use the <em>Alias<\/em> option. Your cPanel dashboard may instead have the <em>Parked Domains<\/em> option. They both refer to the same thing. Click it to get started.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"attachment-600x600 size-600x600 aligncenter\" src=\"https:\/\/wpmu-dev.pro\/blog\/wp-content\/uploads\/2015\/09\/cPanel-Alias-Parked-Domains-Editor.png\" alt=\"cPanel dashboard showing the Alias option under Domains section\" width=\"600\" height=\"193\" \/><\/p>\n<p><em>Create a New Alias<\/em> by entering your subsite\u2019s custom domain name and hitting the <em>Add Domain <\/em>button.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"attachment-600x600 size-600x600 aligncenter\" src=\"https:\/\/wpmu-dev.pro\/blog\/wp-content\/uploads\/2015\/09\/Create-a-New-Alias-cPanel-Dashboard-Parked-Domain.png\" alt=\"Screen for Creating a new Alias or Parked Domain in cPanel Dashboard\" width=\"600\" height=\"150\" \/><\/p>\n<p>Some web hosts automatically set up a redirection for any domain alias. You can confirm this by looking at the <em>Redirects To<\/em> column. In my case, there wasn&#8217;t any redirection set.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"attachment-600x600 size-600x600 aligncenter\" src=\"https:\/\/wpmu-dev.pro\/blog\/wp-content\/uploads\/2015\/09\/Confirm-Redirection-ofAlias-or-Parked-Domain.png\" alt=\"Confirm that there's no redirection set for the Alias or Parked Domain\" width=\"600\" height=\"125\" \/><\/p>\n<p>If it sets a redirection, click <em>Manage Redirection<\/em> link on the right, and then select <em>Disable Redirection<\/em>.<\/p>\n<p>You\u2019ve now added your subsite\u2019s custom domain to your hosting account.<\/p>\n<h4>Adding a Domain with WPMU DEV Hosting<\/h4>\n<p>Adding your subsite\u2019s domain is a breeze on WPMU DEV Hosting.<\/p>\n<p>Go to the <em>Domains<\/em> tab in your <em>Hosting<\/em> dashboard and then click on the blue <em>Add Domain<\/em> button.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"attachment-600x600 aligncenter\" src=\"https:\/\/wpmu-dev.pro\/blog\/wp-content\/uploads\/2015\/09\/Add-Domain-WPMU-DEV-Hosting.png\" alt=\"Adding a Domain in WPMU DEV Hosting\" width=\"600\" height=\"202\" \/><\/p>\n<p>Enter your subsite\u2019s custom domain name in the popup. I recommend you to tick the <em>Also use www.your-domain.com<\/em> checkbox here. And then hit the <em>Add Domain<\/em> button.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"attachment-600x600 aligncenter\" src=\"https:\/\/wpmu-dev.pro\/blog\/wp-content\/uploads\/2015\/09\/Enter-Your-Subsites-Custom-Domain-Name-Here.png\" alt=\"Add a Domain popup screen in WPMU DEV Hosting\" width=\"600\" height=\"256\" \/><\/p>\n<p>Once you\u2019ve added the subsite\u2019s custom domain, our system will automatically check whether its DNS records resolve to\u00a0your hosting server&#8217;s IP address. If it fails, it\u2019ll try again after a few minutes. This will continue until it\u2019s successful.<\/p>\n<p>If you\u2019re impatient though, you can click the <em>Recheck DNS <\/em>link to trigger the check manually.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"attachment-600x600 size-600x600 aligncenter\" src=\"https:\/\/wpmu-dev.pro\/blog\/wp-content\/uploads\/2015\/09\/WPMU-DEV-Hosting-DNS-Status-Auto-check-System-SSL-Installation-Too.png\" alt=\"WPMU DEV Hosting automatically checks of DNS Records propagation\" width=\"600\" height=\"181\" \/><\/p>\n<p>Look out for a green tick in the <em>DNS Status<\/em> column to confirm the successful propagation of your custom domain\u2019s DNS records.<\/p>\n<p>One of the many advantages of WPMU DEV Hosting is automatic SSL certificates for all added domains. The minute our hosting system sees that your domain\u2019s DNS records resolve towards us, it\u2019ll automatically install a free SSL certificate for that domain. No more dabbling with SSH or clunky web apps from the 2000s!<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"attachment-600x600 size-600x600 aligncenter\" src=\"https:\/\/wpmu-dev.pro\/blog\/wp-content\/uploads\/2015\/09\/Added-Domain-Name-Subsite-Resolved.png\" alt=\"WPMU DEV Hosting green tick in DNS Status and SSL Status columns after successfully adding a domain\" width=\"600\" height=\"300\" \/><\/p>\n<p>You\u2019ll also get an email once it\u2019s all done. When we say <em>fully managed<\/em>, we mean it!<\/p>\n<h3 id=\"map-subsite\">Step 4: Map a Network Subsite to its Custom Domain<\/h3>\n<p>When you add a subsite to your WordPress Multisite network, you need to give it a sub-domain or sub-directory name (depending on your network\u2019s settings). This is what we need to map.<\/p>\n<p>In the example below, we have a Multisite network (<em>wpdemo.wpmudev.host<\/em>)\u00a0with subsites assigned as sub-directories (<span id=\"selectionBoundary_1568952266140_4493987047488901\" class=\"rangySelectionBoundary\" style=\"line-height: 0; display: none;\"><\/span><em>alpha<\/em>,<em> beta<\/em>,<em> charlie)<\/em>.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"attachment-600x600 size-600x600 aligncenter\" src=\"https:\/\/wpmu-dev.pro\/blog\/wp-content\/uploads\/2015\/09\/WordPress-Multisite-Network-Subsite-Default-URL.png\" alt=\"The Sites panel in a WordPress Multisite Dashboard\" width=\"600\" height=\"290\" \/><\/p>\n<p>Go to your <em>Sites<\/em> panel in your <em>Network Admin<\/em> dashboard. Here, hover over the subsite whose domain you want to map. Click on the <em>Edit<\/em> button.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"attachment-600x600 size-600x600 aligncenter\" src=\"https:\/\/wpmu-dev.pro\/blog\/wp-content\/uploads\/2015\/09\/Click-Edit-Subsite-URL-in-Your-Network.png\" alt=\"Clicking the Edit link of a Subsite in the Sites panel of a WordPress Multisite Network\" width=\"600\" height=\"290\" \/><\/p>\n<p>Enter the custom domain you want to map in its <em>Site Address (URL)<\/em> field. Then, hit the blue <em>Save Changes<\/em> button.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"attachment-600x600 size-600x600 aligncenter\" src=\"https:\/\/wpmu-dev.pro\/blog\/wp-content\/uploads\/2015\/09\/Enter-Custom-Domain-Name-Subsite-for-Multisite-Network-WordPress.png\" alt=\"Edit screen of subsites in a WordPress Multisite network\" width=\"600\" height=\"336\" \/><\/p>\n<p>Now, your WordPress Multisite network considers that this subsite is at its custom domain (i.e. <em>domain1.com<\/em>), rather than its default URL with the\u00a0sub-directory extension.<\/p>\n<p>This completes mapping the custom domain to your subsite.<\/p>\n<p>When you visit the custom domain in your browser, it&#8217;ll lead to the subsite it&#8217;s mapped to.<\/p>\n<p><strong>Note:<\/strong> You cannot map the domain name of your main installation (i.e. <em>network.com<\/em>) from here. You can instead redirect it to another domain directly from its domain\/hosting settings.<\/p>\n<h3 id=\"repeat-process\">Step 5: Repeat the Process for More Subsites<\/h3>\n<p>If you have over one subsite on your Multisite network, and you want to have them all running on their own custom domain, you need to repeat Steps 2, 3 &amp; 4. It\u2019s that simple!<\/p>\n<h2 id=\"add-ssl\">Adding SSL Certificates for Your Mapped Domain<\/h2>\n<p>It\u2019s crucial that you install SSL certificates for your primary network domain and all your mapped domains. Not only is it essential for your Multisite network\u2019s security, it also helps immensely with SEO. Google ranks SSL-certified websites higher in their search results.<\/p>\n<p>If you\u2019re using WPMU DEV Hosting, we install\u00a0SSL certificates\u00a0for all the domains you add to your account. But most basic shared hosting setups don\u2019t support installing many SSL certificates for several domains on the same account.<\/p>\n<p>Here\u2019s <a href=\"https:\/\/wpmu-dev.pro\/forums\/topic\/ssl-on-domain-mapping-with-wp-multisite\/\" target=\"_blank\" rel=\"noopener\">a relevant thread in our forums<\/a> discussing the same. You need to get in touch with your hosting provider. Tell them you have a Multisite network setup with unique domains mapped for each subsite, and you want to have SSL certificates installed for all these mapped domains. A reliable host will definitely help you with this.<\/p>\n<p>Want expert help? You can always rely on our 24\/7 live support team. Start a <a href=\"https:\/\/wpmu-dev.pro\" target=\"_blank\" rel=\"noopener\">risk-free<\/a> membership today!<\/p>\n<h2 id=\"fix-error\">Fixing Network Subsite Login Error<\/h2>\n<p>One of the most common issues faced by WordPress Multisite network admins is not being able to login to their subsites. You\u2019ll most probably face an error about blocked cookies. Rarely, you may even fail logging in with no error message at all.<\/p>\n<p>It\u2019s an easy fix. Open your <em>wp-config.php<\/em> file and add the below code after the line you added to create the network.<\/p>\n<p><code>define('COOKIE_DOMAIN', $_SERVER['HTTP_HOST']);<\/code><\/p>\n<p>If this still doesn\u2019t fix it, you need to get in touch with your hosting provider\u2019s support staff.<\/p>\n<h2>WordPress Mapping, So You Don&#8217;t Get Lost<\/h2>\n<p>Drop the excess and give each subsite on your Multisite network a unique URL. Not only does it make all your\u00a0sites easier to find, it&#8217;s also\u00a0better for branding them. Whether you&#8217;re setting up unique product subsites for a single company or <a href=\"https:\/\/wpmu-dev.pro\/blog\/multisite-client-sites\/\" target=\"_blank\" rel=\"noopener\">hosting your client websites on a single Multisite network<\/a>, domain mapping is the way to go.<\/p>\n<p>Mapping custom domains to subsites on your WordPress Multisite network isn&#8217;t hard. Older versions of WordPress had it way harder, just like all our parents <em>during their times<\/em>!<\/p>\n<p>WordPress 4.5 has changed the game.\u00a0No more dabbling with third-party plugins and complicated configurations. All it takes is a few clicks to get it up and running.<\/p>\n<p>It\u2019s time to make your WordPress Multisite a legend with domain mapping!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Find out everything you need to know to setup domain mapping and how to configure and map domains to sites in your Multisite network.<\/p>\n","protected":false},"author":761786,"featured_media":199247,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"blog_reading_time":"","wds_primary_category":0,"wds_primary_tutorials_categories":0,"footnotes":""},"categories":[1117,263],"tags":[11138,9778,11139,10948,11137],"tutorials_categories":[],"class_list":["post-146248","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-multisite","category-tutorials","tag-domain-mapping","tag-domains","tag-multisite-ssl","tag-multisite-hosting","tag-wordpress-multisite-domain-mapping"],"_links":{"self":[{"href":"https:\/\/wpmu-dev.pro\/blog\/wp-json\/wp\/v2\/posts\/146248","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wpmu-dev.pro\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wpmu-dev.pro\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wpmu-dev.pro\/blog\/wp-json\/wp\/v2\/users\/761786"}],"replies":[{"embeddable":true,"href":"https:\/\/wpmu-dev.pro\/blog\/wp-json\/wp\/v2\/comments?post=146248"}],"version-history":[{"count":63,"href":"https:\/\/wpmu-dev.pro\/blog\/wp-json\/wp\/v2\/posts\/146248\/revisions"}],"predecessor-version":[{"id":218389,"href":"https:\/\/wpmu-dev.pro\/blog\/wp-json\/wp\/v2\/posts\/146248\/revisions\/218389"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wpmu-dev.pro\/blog\/wp-json\/wp\/v2\/media\/199247"}],"wp:attachment":[{"href":"https:\/\/wpmu-dev.pro\/blog\/wp-json\/wp\/v2\/media?parent=146248"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wpmu-dev.pro\/blog\/wp-json\/wp\/v2\/categories?post=146248"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wpmu-dev.pro\/blog\/wp-json\/wp\/v2\/tags?post=146248"},{"taxonomy":"tutorials_categories","embeddable":true,"href":"https:\/\/wpmu-dev.pro\/blog\/wp-json\/wp\/v2\/tutorials_categories?post=146248"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}