WordPress Multisite lets you manage hundreds of sites from a single WordPress installation. All sites share one codebase but have independent data, themes, and plugins.
When to use Multisite
- A network of regional company sites
- A multilingual site (a separate subsite for each language)
- An educational platform with a site for each course
- A blog network or media portal
Activating Multisite
1. Add to wp-config.php (before the line "That's all, stop editing!")
define('WP_ALLOW_MULTISITE', true);
2. Set up the network
Go to Tools → Network Setup. Choose the type: subdomains (site1.example.com) or subdirectories (example.com/site1/).
*.example.com → IP.3. Add to wp-config.php
define('MULTISITE', true);
define('SUBDOMAIN_INSTALL', true); // false for subdirectories
define('DOMAIN_CURRENT_SITE', 'example.com');
define('PATH_CURRENT_SITE', '/');
define('SITE_ID_CURRENT_SITE', 1);
define('BLOG_ID_CURRENT_SITE', 1);
4. Update .htaccess
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
RewriteRule . index.php [L]
Managing the network
| Action | Where |
|---|---|
| Create a subsite | My Sites → Network Admin → Sites → Add New |
| Activate a plugin for the whole network | Plugins → Network Activate |
| Install a theme for the whole network | Themes → Network Enable |
| Disk space quota | Network Settings → Upload Settings |
Common Multisite Errors
| Message | What it means |
|---|---|
| Fatal error: database error Table wp_2_options doesn't exist | A subsite was created, but tables for the new ID weren't created — usually because the site-creation process was interrupted |
| ERR_TOO_MANY_REDIRECTS on a subdomain | The wildcard DNS record isn't set up, or DOMAIN_CURRENT_SITE is wrong in wp-config.php |
| "Are you sure you want to do this?" on ordinary actions | The nonce expired due to a time mismatch between the subsite and the network, or a caching plugin is serving a stale form |
| "This resource is protected" at /wp-admin/network/ | You're logged in as a regular subsite administrator, not as the network super admin |
Multisite vs Separate WordPress Installs
| Criterion | Multisite | Separate installs |
|---|---|---|
| Shared code and plugins | One set for the whole network | Each site has its own set |
| Isolation on a breach | Weak — a vulnerability on one site threatens the whole network | Full — sites aren't connected |
| Database resources | One database, separate tables per site | A separate database per site |
| Complexity of backing up one site | Higher — you must export the tables for that specific ID | Lower — a standard database dump |
When Multisite Isn't a Fit
- Sites in the network need different PHP versions or mutually incompatible plugins
- One site expects explosive traffic growth and needs to scale independently of the rest
- Full isolation is required in case one site gets compromised
- Clients need their own full administrator account without network super admin rights
Verifying the Result
Confirm through WP-CLI that the network is actually active and the subsite is registered:
wp core is-installed --network
wp site list --fields=blog_id,url,status
If wp site list doesn't show the new subsite, check that the site-creation step in Network Admin finished without database errors. Steps for migrating such a network to a new server are covered in migrating WordPress to a VDS, and backups in setting up WordPress backups.
Domains for Subsites: Subdomains, Subdirectories, or Custom Domains
Besides choosing between subdomains and subdirectories when activating the network, Multisite supports a third option — mapping fully independent domains to individual subsites through the WordPress MU Domain Mapping plugin or the built-in domain mapping mechanism in modern core versions. This is useful for a network of sites from different brands that share nothing but the admin backend.
For domain mapping, each mapped domain needs an A record pointing to the same server the main install lives on, and the SSL certificate must cover every mapped name — either with a separate certificate per domain or through automatic Let's Encrypt issuance for each added name.
Backing Up the Whole Network
Standard WordPress backup plugins are often configured for a single install by default, and in network mode they export either just the main site or the entire database with no per-subsite separation. Before rolling Multisite into production, confirm that your chosen backup solution explicitly supports network mode and lets you restore either the whole network or one subsite without losing the others' data.