https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_b964594d3d957944241961017b9eb19bf02834de44cce93d8e67dd306852dbe346167181e455e33d5268ea01d973d77bb056848546f31794f31a4c31a9da5aa3.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_23f1ae74c634d7e5e0a067c22b7a8c2d79c3ffd9a3b9395fc82c1b3b99635552b994f1f72f532f28ceaff1ea054ea026cd488cd62fa03a4ad91d212b5f3c5a72.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_451c3884f51125f7687e5bb07cfab033c04cb7174c33f93213b2af4bad2af13cf48b92a7fa95fc86d7d436f355938a3ac50aa119cdb7c9b6d5a52815c3e6033e.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_bfff9e63e857e9ee612e292d4a6edf3ced64d6a756925c953a9d8f77845ff601eca64d73dfa48756b1a9f4a4d6de6127a273bcde16ddeb71a22383460f4e94b0.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_f4dd7e1d73ae5eda35ed5ad6aa965b612dbf483ece3ca50c1e8e30ad8dff1c66a160ed75e958e2db399661d229874783e0834ad813a479437035666b8e9e3386.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_4fce0769137d4cd096989b0349bc3c2bbfca79ac311fdf714c41ab24d87551c7b49b756c8a8de090b0714a0ad0560e49fa532ba5a88875ea4afd78efac464df6.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_85cec8b07d60426b11040e471babca0d2f9c8dc87a9b56e06cad39828f7f67179e29609100f282a574872c9a93fb635b25416300eb4c97bc5a653d00cf6f8dbf.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_6768e5a27d4d357347338621c0d20bd269b126d30eec796193390f2f530fbaea60af84130c46f9786114be65149e661e87d55c339219c90aa76396d7e5b734ef.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_2acd6bdff3b680341e8c727da5169a647123eb8fd0a90253161b4c3af272c15d293bf9bb217008bb13f84d1910b0e166798001f8603b6c026d5c20a76c41d47c.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_60de5e814c6e81bf5c82a1f2213369c67a4b821c100a8783e80c4dbdabef82571cec9eb35d50913e84967703607a0ed42cc679d88f1837adc6708cbbfbbb536f.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_268c9bba6ba649318f0da28c37b09a9bbfa371210f9b6b52faa7fd8ae94abf6b3c3bfeb5df5705c93495ce1152ca58aeabc435d6c6c1bd959025165c3f50e086.js
  • Skip to main content
  • Skip to primary sidebar
  • Skip to footer
  • Home
  • Featured
    • Advanced Python Topics
    • AWS Learning Roadmap
    • JWT Complete Guide
    • Git CheatSheet
  • Explore
    • Programming
    • Development
      • microservices
      • Front End
    • Database
    • DevOps
    • Productivity
    • Tutorial Series
      • C# LinQ Tutorials
      • PHP Tutorials
  • Dev Tools
    • JSON Formatter
    • Diff Checker
    • JWT Decoder
    • JWT Generator
    • Base64 Converter
    • Data Format Converter
    • QR Code Generator
    • Javascript Minifier
    • CSS Minifier
    • Text Analyzer
  • About
  • Contact
CodeSamplez.com

CodeSamplez.com

Programming And Development Resources

You are here: Home / Development / WordPress Multisite with Root Domains: The Ultimate Guide

WordPress Multisite with Root Domains: The Ultimate Guide

Updated May 19, 2025 by Rana Ahsan Leave a Comment ⏰ 7 minutes

wordpress multisite guide

Have you ever wanted to manage multiple WordPress websites from a single installation? I’ve been there, and I’m going to show you exactly how to set up WordPress multisite with root domains. This powerful setup lets you run as many separate websites as you need—all from one WordPress core installation and one database. Trust me, it’s a game-changer for multi-site management.

What is WordPress Multisite?

WordPress multisite is a remarkable feature that transforms a standard WordPress installation into a network of sites. While WordPress officially supports subdomain and subfolder multisite configurations, this guide focuses on using completely separate root domains—something many don’t realize is possible!

For example, you can have example1.com, example2.org, and example3.net all running from the same WordPress installation. Each site looks and functions independently, but behind the scenes, you’re saving tremendous time and resources.

Why You Should Use WordPress Multisite with Root Domains

I’ve managed dozens of WordPress sites over the years, and multisite has completely transformed my workflow. Here’s why you’ll love this approach:

1. Centralized Management is a Game-Changer

Managing multiple WordPress sites separately is a nightmare. With multisite, you’ll:

  • Update WordPress core just once for all your sites
  • Install and update wordpress plugins in one place
  • Manage themes across all sites from a single dashboard
  • Handle user permissions centrally

This saves hours of repetitive maintenance every week!

2. Hosting Efficiency

Many hosting providers charge per installation or have limitations on lower-tier plans. Multisite lets you:

  • Host unlimited domains on a single hosting account
  • Bypass directory restrictions common on shared hosting
  • Maximize your hosting investment without upgrading packages

3. Database Economy

Database limitations can be frustrating. Multisite solves this by:

  • Using a single database for all your sites
  • Reducing database connection overhead
  • Cutting hosting costs associated with multiple databases
  • Simplifying backup and restoration processes

4. Content Sharing Made Easy

When your sites live under one roof, you can:

  • Share media libraries between sites (with the right plugins)
  • Reuse content across sites without duplication
  • Create consistent branding across your network

How to Set Up WordPress Multisite with Root Domains

Let’s get your multisite network running with separate root domains. I’ll walk you through each step of this process.

Step 1: Install Your First WordPress Site

Start with a standard WordPress installation for your first site. There’s nothing special required at this stage, but I strongly recommend using a custom database prefix instead of the default “wp_” for better organization and security.

For example, if your first site is “techblog.com”, use something like “tech_” as your database prefix.

// Example database configuration with custom prefix
define('DB_NAME', 'your_database');
define('DB_USER', 'your_username');
define('DB_PASSWORD', 'your_password');
define('DB_HOST', 'localhost');
$table_prefix = 'tech_';Code language: PHP (php)

Step 2: Configure Your Domain DNS

Before proceeding, make sure all your domains point to the same hosting directory. This typically involves:

  1. Setting up DNS A records for each domain to point to your server IP
  2. Configuring your hosting to recognize all domains (through cPanel, Plesk, or similar)
  3. Setting up domain aliases or add-on domains in your hosting panel

Step 3: Prepare for Secondary Installations

Now comes the clever part. Follow these steps carefully for each additional site:

3.1 Back Up wp-config.php

First, create a backup of your wp-config.php file. This is absolutely critical—skip this, and you risk breaking your existing site.

# SSH command example to back up your config
cp wp-config.php wp-config.php.backupCode language: CSS (css)

3.2 Temporarily Remove wp-config.php

Next, remove the wp-config.php file from your server. This tricks WordPress into thinking this is a fresh installation when you visit your second domain.

Important Warning: Your first site will be temporarily unavailable during this step! Schedule this during low-traffic hours.

3.3 Run the Installation Process

Now, access your second domain in your browser. WordPress will present you with the installation screen since it can’t find a configuration file.

Complete the installation process as you normally would, but pay special attention to the database prefix. Use a unique prefix that reflects this domain—if your second site is “petstore.com”, you might use “pets_” as the prefix.

Step 4: The Magic Happens in wp-config.php

Once you’ve completed the installation for your second site, it’s time to modify the wp-config.php file to dynamically change the database prefix based on the domain being accessed.

Replace your wp-config.php with this improved version:

// Standard WordPress database configuration
define('DB_NAME', 'your_database');
define('DB_USER', 'your_username');
define('DB_PASSWORD', 'your_password');
define('DB_HOST', 'localhost');

// Dynamic table prefix based on domain
if($_SERVER['HTTP_HOST'] == 'techblog.com' || $_SERVER['HTTP_HOST'] == 'www.techblog.com') {
    $table_prefix = 'tech_';
} 
else if($_SERVER['HTTP_HOST'] == 'petstore.com' || $_SERVER['HTTP_HOST'] == 'www.petstore.com') {
    $table_prefix = 'pets_';
}
// Add additional domains as needed
else if($_SERVER['HTTP_HOST'] == 'yourthirddomain.net' || $_SERVER['HTTP_HOST'] == 'www.yourthirddomain.net') {
    $table_prefix = 'third_';
}

// Default prefix as fallback
else {
    $table_prefix = 'wp_';
}Code language: PHP (php)

Step 5: Enhance Your Setup (Recommended)

For a more robust setup, I recommend these additional configurations:

5.1 Add Shared Constants

Most configuration constants can be shared across all sites. Keep these in the main section of wp-config.php:

// Security keys (get unique keys from https://api.wordpress.org/secret-key/1.1/salt/)
define('AUTH_KEY',         'your-unique-key');
define('SECURE_AUTH_KEY',  'your-unique-key');
define('LOGGED_IN_KEY',    'your-unique-key');
define('NONCE_KEY',        'your-unique-key');
define('AUTH_SALT',        'your-unique-key');
define('SECURE_AUTH_SALT', 'your-unique-key');
define('LOGGED_IN_SALT',   'your-unique-key');
define('NONCE_SALT',       'your-unique-key');

// Debug settings (turn off for production)
define('WP_DEBUG', false);Code language: JavaScript (javascript)

5.2 Domain-Specific Settings (Optional)

You can also add domain-specific configuration settings:

// Domain-specific settings
if($_SERVER['HTTP_HOST'] == 'techblog.com' || $_SERVER['HTTP_HOST'] == 'www.techblog.com') {
    define('WP_DEBUG', true); // Enable debugging only on this site
}Code language: PHP (php)

Common Issues and Troubleshooting

Even with careful setup, you might encounter some challenges. Here’s how to solve the most common issues:

1. White Screen of Death

If you get a blank white screen after installation:

  • Check your database credentials
  • Verify table prefixes are correct
  • Look for PHP errors in your server logs

2. Login Session Problems

If you’re having trouble staying logged in:

  • Make sure each domain has its own unique prefix
  • Check that your wp-config.php correctly identifies all domains
  • Consider domain-specific cookie settings

3. Plugin Conflicts

Not all plugins play nicely with multisite. If you encounter issues:

  • Test problematic plugins on a single site first
  • Look for multisite-compatible alternatives
  • Contact plugin developers for multisite support

Advanced Tips for WordPress Multisite

Want to take your multisite setup to the next level? Try these advanced techniques:

Use a Centralized Plugin Management Solution

Consider using ManageWP, MainWP, or InfiniteWP to manage all your sites from a single dashboard. These tools complement your multisite setup perfectly.

Implement Domain Mapping

For a more elegant setup, explore domain mapping plugins that work with root domains. This creates a more structured relationship between your sites.

Optimize Database Performance

As your multisite network grows, database performance becomes crucial. Consider:

  • Adding database caching
  • Optimizing database tables regularly
  • Using a database cleanup plugin to remove unnecessary data

Conclusion

WordPress multisite with root domains gives you the best of both worlds—the efficiency of unified management with the flexibility of separate websites. I’ve been using this setup for years to manage multiple client sites, and it’s saved countless hours of maintenance time.

While the official WordPress documentation doesn’t focus much on this approach, it’s completely viable and offers tremendous advantages for developers and site managers who need to handle multiple independent websites.

Have you tried setting up WordPress multisite with root domains? What challenges did you face? Share your experience in the comments below!

Share if liked!

  • Click to share on Facebook (Opens in new window) Facebook
  • Click to share on X (Opens in new window) X
  • Click to share on LinkedIn (Opens in new window) LinkedIn
  • Click to share on Pinterest (Opens in new window) Pinterest
  • Click to share on Reddit (Opens in new window) Reddit
  • Click to share on Tumblr (Opens in new window) Tumblr
  • Click to share on Pocket (Opens in new window) Pocket

You may also like


Discover more from CodeSamplez.com

Subscribe to get the latest posts sent to your email.

First Published On: June 6, 2013 Filed Under: Development Tagged With: mysql, php, wordpress

About Rana Ahsan

Rana Ahsan is a seasoned software engineer and technology leader specialized in distributed systems and software architecture. With a Master’s in Software Engineering from Concordia University, his experience spans leading scalable architecture at Coursera and TopHat, contributing to open-source projects. This blog, CodeSamplez.com, showcases his passion for sharing practical insights on programming and distributed systems concepts and help educate others.
Github | X | LinkedIn

Reader Interactions

Leave a ReplyCancel reply

Primary Sidebar

  • Facebook
  • X
  • Pinterest
  • Tumblr

Subscribe via Email

Top Picks

python local environment setup

Python Local Development Environment: Complete Setup Guide

In-Depth JWT Tutorial Guide For Beginners

JSON Web Tokens (JWT): A Complete In-Depth Beginners Tutorial

The Ultimate Git Commands CheatSheet

Git Commands Cheatsheet: The Ultimate Git Reference

web development architecture case studies

Web Development Architecture Case Studies: Lessons From Titans

static website deployment s3 cloudfront

Host Static Website With AWS S3 And CloudFront – Step By Step

Featured Dev Tools

  • Diff Checker
  • JWT Decoder

Recently Published

service worker framework integration

Service Workers in React: Framework Integration Guide

service worker caching strategies

Service Worker Caching Strategies: Performance & Offline Apps

service worker lifecycle

Service Worker Lifecycle: Complete Guide for FE Developers

what is service worker

What Is a Service Worker? A Beginner’s Guide

Dynamic Typing In Python

Dynamic Typing in Python: A Comprehensive Guide For Beginners

Footer

Subscribe via Email

Follow Us

  • Facebook
  • X
  • Pinterest
  • Tumblr

Explore By Topics

Python | AWS | PHP | C# | Javascript

Copyright © 2025

https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_20355fc0ab0a07b20fdbf9ad36d1d02b58d20d8e524e982f21ecd2a6fd5f379c21775f898b09a791f052288e39ba9a90c726778e8259c2c6970ce171c82d7eab.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_c402e38f1879c18090377fb6b73b15ac158be453ecda3a54456494fe8aba42b990c293bae5424e5643d52515ffc2067e0819995be8d07d5bba9107a96780775c.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_ffc3511227531cc335353c54c3cbbaa11d0b80e5cb117478e144436c13cd05495b67af2e8950480ed54dbdabcdcef497c90fdb9814e88fe5978e1d56ce09f2cf.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_d57da9abfef16337e5bc44c4fc6488de258896ce8a4d42e1b53467f701a60ad499eb48d8ae790779e6b4b29bd016713138cd7ba352bce5724e2d3fe05d638b27.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_edc0e9ef106cc9ef7edd8033c5c6fcff6dc09ee901fd07f4b90a16d9345b35a06534f639e018a64baaf9384eee1df305570c1ecad747f41b787b89f53839962b.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_bc2182bb3de51847c8685df18692deda654dbf90fb01b503eb1bb0b68b879a051b91f30a9210ed0b2ba47c730db14b159cd9391ffdcd7117de397edd18366360.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_dccc492dbbfdac33d1411f9df909e849c7268fcf99b43007f278cde3a0adc0ae00e8cae5ec81cf255b9a6eae74e239ba1fa935572af77173219cb081f7d2327d.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_00bacf9e36181aac2b666d110cd9d82257f846766e7041b2d7b3c909b458982931ccc9b203e37098fbdfcf43ca359cf04e3824a724a6789fc204196d3a72ad29.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_65d41e8acf8460659d5800381e03c2a9dd52ec71287a6f20307e1eb7da27691a8e74e4408e23656afa7b5bd74b82697984fd2b1d4501251c6e73c6a935b6b92f.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_aa5a5d229b421633f4247380e1e8c0a4854f82efb35d13a5b07b7b8fbe22e98842a580f063e5965345a51c477a7f5c2585edf8dd7d896b2438dc61f91d8d970c.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_bb8058a9e234a7ffaa98891b1df7f6b8e67410e6984568b151daa05113b8c7f89d7b5918ae73f020998a16f7f5a087a13d6a9a5e5d7c301e2ca12fd9d1f8d177.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_647fb67570c6108fb10ae6785a1abdbecac99ffcf80351d0bef17c3cf783dce497b1895fcdaae997dacc72c359fbfb128cc1540dd7df56deb4961e1cd4b22636.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_f7a298a0f1f754623fe3b30f6910ce2c1373f715450750bd7a391571812b00df1917e2be90df6c4efc54dbdfda8616278a574dea02ba2c7a31992768df8db334.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_df30604d5842ef29888c3c1881220dc6d3f8854666d94f0680c5f38aa643c5fb79b10eb9f10998d8856eb24ca265783195937434fd6c2bb8e4846df0277a7fb7.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_f17fe6fb0993f1703181d7ae9e9ea570f3d33a43afd6f2a4567daa1a6745698c7b8193dc72d50991d2dd87cd3dcf663959206607d193a9b57926d061a1f50aef.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_945dcbab2c2a131f3c90f4fb91776b76066d589f84fb55bff25cd5d79a56218000616bfca1f0af9a74f32348693707af49e8fe624de8aa34f1e1c5b6a25709cf.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_65820d252e1b93596de6697fd5f02483f3e2524a0696c7d698b64745edb32bf5831a90e556842f5f88c8209766cc78ca3a41cf783d20236a9f90d4a7ea7b3e72.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_7286884797a1210857e2a36f8ab46604b0034b6abf512380447a5763c873db6a72b8547f660053de0ea69faef1eb64878f39ff4b0ea86c963efab95764a3bf5b.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_cbcf6c279ac6c6a25ae138bf964e64a5fd90d22dcdf8a53b6fe7b72cefa51063bfb0181a6e50dd2acdcae2795619887d1d83b10461e44e5103be756f2588d837.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_47965bc586b95810c925b9df3314e0c9a5cd121e70ca0831f87df0bc034695de4f83ecf2def86f737e14614ee138794473cf32cd3082a5d38db9dec0c1f266fa.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_12aa201cea075846d266536aa222d64d4088b851d87f55dac5e611b77add6826c8ebc6e82650fcd1a9e88a05a0072dedd195719c5f64cd4580a0acd8aee05d92.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_eaa93529c38925eb07368c361382956fbd910b5106b8589fa7e2e15a59c46437de3698d50ec4754bc45e6dfac47b3f41cc4c6112d7ede071ca8950385d4987dc.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_6aa108776a4da175f33cf141c78f4a28d054abd5d0c1f2b50729bfef63a28dd364c9b946d7fcef399f16263361082c4707031324d2b6f92c5b15396a45e8f1c7.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_d87ea86dd0e7ecdd5fe7a5bb67becf943e57c3add866b456034d51663d099031bd563e12f61fdccc044969adf938a8584ed22ccd401ab8b669e20e4f92fb54e8.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_35311c3d71a3605fad4e1d6b50f3911311cdcc46418bdf56d6d0308a75a69585269ee7582a335e29989adf308fa1a81a10a2c2d4e257e9d680447a4996f6269e.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_f4fc182ef03c12e9dcadd6febc3dbaa4a29134469057ca9e8ec0be2f2de29a494514ff4b59798e74debf26f78b2df2b3e2665c69b77035761fb463b783202915.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_85c0f2769456e60153b0fd8364b82a035da53384f62de342d9bdca806f3f1ea56486919a00497a18d457949c82bf8bfacc4423fc332074ddf71a49a8fe628fff.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_67f99bef3678c549a14b5f2ff790cce6aba338dca29020755444231b45fa0f980f795e3658496ba70739a099b47b22bc2eab564343ac6132309de3adbbae3455.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_09eecfdd96206ed13830b4b93cfb2cc75cd38083671a34194437b5734b5bb38712209dc335b07e3266ceb3c3a44a155b9bbe5f3e0e1105b19dd45d3def76f020.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_4c089fbdb88e3b624a6f884d3ba1bf606f003bfcd3742376d0d353cd62181dc663aa3811a56361c3100de488fc4d6595a50de2b26f058921ba74f5f2c1b5be00.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_897ff6ac314c5f5e0f496c6af624bd9abf296a02cb5aeb850b9220b6dc3ce2fc4004cb02ed8b59d59d4b9c9d90f050d6eebc1d08ecaebab2f671f7d9367e6410.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_67d1e619e71d36ae00ddcf85ee18628bb4eb64fcb3d6119b463e75cb987013420a21136d19cd03e6634ccc01cfa9af4a357930e4cf6900953b7812efb4f249fb.js