WordPress Multisite enables managing multiple WordPress sites from single installation sharing plugins, themes, and users centrally. From university networks and corporate intranets to SaaS platforms and franchise websites, Multisite reduces administrative overhead while maintaining site independence. This comprehensive guide teaches network activation, subdomain versus subdirectory configuration, site management, user roles, domain mapping, and performance optimization for enterprise-level WordPress deployments.
Understanding WordPress Multisite
What is Multisite: Single WordPress installation running multiple sites sharing:
- Core WordPress files
- Plugins directory
- Themes directory
- Uploads folder (separate per site)
- Database (separate tables per site)
Use Cases:
- University departments (math.university.edu, physics.university.edu)
- Corporate divisions (sales.company.com, support.company.com)
- Magazine networks (tech.magazine.com, lifestyle.magazine.com)
- Franchise websites (location1.franchise.com, location2.franchise.com)
- SaaS platforms (client1.platform.com, client2.platform.com)
Benefits:
- Centralized updates (plugins/themes updated once)
- Shared user base (single login across sites)
- Resource efficiency (one installation, multiple sites)
- Cost savings (one hosting account)
- Simplified management (Super Admin control)
Limitations:
- Shared hosting resources
- Plugin compatibility issues
- Complex troubleshooting
- Cannot easily separate sites later
Subdomain vs Subdirectory
Subdomain Structure:
site1.example.com
site2.example.com
site3.example.com
Advantages:
- Cleaner URL structure
- Site-specific branding
- Better for independent sites
- Easier SSL certificate management (wildcard)
Requirements:
- Wildcard DNS (*.example.com)
- Server configuration
- Hosting support
Subdirectory Structure:
example.com/site1
example.com/site2
example.com/site3
Advantages:
- Simpler DNS setup
- Works on all hosting
- SEO benefits (single domain authority)
- No wildcard certificate needed
Limitations:
- Less independence between sites
- URLs less flexible
Pre-Installation Requirements
Checklist:
- Fresh WordPress installation (or backup existing)
- Pretty permalinks enabled
- Hosting supports Multisite
- File/database access
- Super Admin privileges
Test Environment First: Always test Multisite on staging before production.
Enabling WordPress Multisite
Step 1: Enable Multisite Feature:
Add to wp-config.php (above /* That's all, stop editing! */):
/* Multisite */
define('WP_ALLOW_MULTISITE', true);Step 2: Access Network Setup:
- Save wp-config.php
- Refresh WordPress admin
- Tools → Network Setup
Step 3: Choose Network Type:
Select subdomain or subdirectory structure (cannot change later).
Step 4: Network Details:
- Network Title
- Network Admin Email
Click Install.
Network Configuration
Step 5: Update wp-config.php:
WordPress provides configuration code. Add to wp-config.php:
define('MULTISITE', true);
define('SUBDOMAIN_INSTALL', false); // true for subdomains, 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);Step 6: Update .htaccess:
Replace existing WordPress rewrite rules with network rules:
Subdirectory .htaccess:
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
# add a trailing slash to /wp-admin
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]Subdomain Configuration: Requires wildcard DNS pointing *.example.com to server IP.
Network Administration
Access Network Admin:
Top admin bar: My Sites → Network Admin
Network Dashboard Sections:
- Sites: Manage all network sites
- Users: Manage all network users
- Themes: Enable/disable themes network-wide
- Plugins: Activate plugins network-wide
- Settings: Network settings
Creating New Sites
Add New Site:
- Network Admin → Sites → Add New
- Site Address:
newsite(becomes newsite.example.com or example.com/newsite) - Site Title: Display name
- Admin Email: Site administrator email
- Click Add Site
Site Automatically Created:
- Database tables created
- Default theme activated
- Admin user notified via email
- Site accessible immediately
User Management
User Roles in Multisite:
Super Admin:
- Network-level control
- Manage all sites
- Add/remove sites
- Network settings
- Plugin/theme management
Administrator (per-site):
- Full site control
- Cannot affect other sites
- Cannot manage network
Other Roles: Editor, Author, Contributor, Subscriber (same as standard WordPress)
Add User to Site:
- Network Admin → Users → Add New
- Or: Individual site → Users → Add Existing
Grant Super Admin:
Network Admin → Users → Edit User → check “Grant this user super admin privileges”
Plugin Management
Network Activate vs Site Activate:
Network Activation:
Network Admin → Plugins → Network Activate
Enables plugin on all sites automatically.
Site-Specific Activation:
Network Admin → Plugins → Enable (not Network Activate)
Then individual sites can activate from their dashboard.
Must-Use Plugins:
Create wp-content/mu-plugins/ folder. Plugins here auto-activate network-wide (cannot deactivate).
Example mu-plugin:
<?php
/*
Plugin Name: Network Customizations
Description: Custom code for entire network
*/
// Remove WordPress branding from admin footer
function dprt_network_footer() {
echo 'Powered by Our Network';
}
add_filter('admin_footer_text', 'dprt_network_footer');Theme Management
Enable Themes Network-Wide:
Network Admin → Themes → Enable (individual themes)
Sites can then activate from Appearance → Themes.
Network-Wide Default Theme:
// In mu-plugin
function dprt_force_theme() {
switch_theme('twentytwentyfive');
}
add_action('after_switch_theme', 'dprt_force_theme');Domain Mapping
Custom Domains for Sites:
Install domain mapping plugin (WordPress MU Domain Mapping or newer alternatives).
Configuration:
- Update DNS: Point custom domain to server IP
- Add domain in Network Admin
- Map domain to site
- Configure SSL certificate for custom domain
Example: Map customdomain.com to site1.example.com
Network Settings
Registration Settings:
Network Admin → Settings → Network Settings
User Registration:
- Disabled (default)
- User accounts may be registered
- Logged in users may register new sites
- Both user accounts and sites can be registered
New Site Settings:
- Welcome Email
- Welcome User Email
- First Post
- First Page
- First Comment
Upload Settings:
- Upload space per site (MB)
- Upload file types allowed
- Max upload file size
Advanced Configuration
Multisite Constants:
// Redirect to main site when non-existent site accessed
define('NOBLOGREDIRECT', 'https://example.com');
// Change upload folder location
define('UPLOADBLOGSDIR', 'wp-content/uploads/sites');
// Force specific uploads directory
define('UPLOADS', 'wp-content/uploads');
// Cookie domain for entire network
define('COOKIE_DOMAIN', '.example.com');
// Cookie paths
define('ADMIN_COOKIE_PATH', '/');
define('PLUGINS_COOKIE_PATH', '/');
define('COOKIEPATH', '/');
define('SITECOOKIEPATH', '/');Database Structure
Network Tables:
wp_blogs: Stores site informationwp_sitemeta: Stores network-wide optionswp_site: Stores network detailswp_registration_log: Tracks new site/user registrationswp_signups: Pending user/site signups
Site-Specific Tables (e.g., site ID 2):
wp_2_postswp_2_postmetawp_2_users(shared across network)wp_2_optionswp_2_comments- etc.
Performance Optimization
Object Caching:
// Use Redis or Memcached for network
define('WP_CACHE', true);Install object cache plugin (Redis Object Cache, Memcached).
CDN Integration:
Offload media from all sites to single CDN.
Database Optimization:
Regular cleanup:
-- Remove spam comments across all sites
DELETE FROM wp_*_comments WHERE comment_approved = 'spam';
-- Optimize all tables
OPTIMIZE TABLE wp_*_posts, wp_*_postmeta, wp_*_options;Security Considerations
Restrict Site Creation:
Network Admin → Settings → uncheck registration options
Limit File Uploads:
// In mu-plugin
function dprt_restrict_upload_types($mimes) {
unset($mimes['exe']);
unset($mimes['php']);
return $mimes;
}
add_filter('upload_mimes', 'dprt_restrict_upload_types', 99);Prevent Plugin Installation by Site Admins:
Default Multisite behavior (only Super Admins install plugins).
Troubleshooting
404 Errors on New Sites:
Flush rewrite rules: Network Admin → Settings → Save (no changes needed)
Login Redirect Loops:
Check COOKIE_DOMAIN and cookie path constants.
Email Delivery Issues:
Configure SMTP for network (WP Mail SMTP plugin).
Site Not Found:
Verify DNS configuration (wildcard for subdomains).
Conclusion
WordPress Multisite enables efficient multi-site management through centralized administration, shared resources, and unified user management. Configure subdomain or subdirectory structures based on needs, implement network-wide plugins and themes, manage users across sites with Super Admin privileges, and optimize performance through object caching and CDN integration. Multisite transforms WordPress into enterprise-level platform managing hundreds of sites from single installation.
External Links
- WordPress Multisite Documentation
- Multisite Network Admin
- Multisite Constants Reference
- Domain Mapping Plugin
- Multisite Hosting Guide
Call to Action
Multisite networks need reliable protection. Backup Copilot Pro safeguards your entire WordPress network with automated backups. Protect all your sites—start your free 30-day trial today!

