The Agency Dilemma: Managing Multiple Client WordPress Sites
If you run a web design or digital agency, you know the challenge: every client needs a WordPress site, and each one becomes its own maintenance headache. Updates, security patches, plugin compatibility checks — multiply that by 20, 50, or 100 clients, and you’re spending more time on maintenance than on actual client work.
WordPress Multisite offers a solution. Instead of managing dozens of separate WordPress installations, you run a single WordPress instance that hosts multiple sites. One update covers all sites. One security patch protects everything. One set of plugins to maintain.
But Multisite isn’t right for every agency. It has trade-offs, setup complexity, and limitations you need to understand before committing. In this guide, we’ll walk through when to use WordPress Multisite, how to set it up properly on Canadian Web Hosting infrastructure, and the ongoing management considerations for agencies.
What You’ll Need
For a production WordPress Multisite setup serving multiple client sites, we recommend:
- Cloud VPS or Dedicated Server: Multisite shares resources across all sites, so you need adequate CPU and RAM for peak loads. A CWH Cloud VPS with 4+ CPU cores and 8GB+ RAM is a good starting point for 10-20 sites.
- SSH Access: You’ll need command-line access for Multisite configuration.
- Domain Strategy: Decide whether you’ll use subdomains (client1.yourdomain.com) or subdirectories (yourdomain.com/client1). Subdomains are more common for agencies.
- Backup Strategy: With all client sites in one installation, your backup strategy becomes critical. We recommend CWH CloudSafe Backup for automated, offsite backups.
Not comfortable managing server infrastructure? CWH offers Managed Support — our team can handle the Multisite setup, security hardening, and ongoing maintenance for you.
Step 1: Install WordPress (Single Site)
Start with a fresh WordPress installation. If you already have WordPress installed, you can convert it to Multisite, but a fresh install is cleaner.
# Download and extract WordPress
cd /var/www/html
wget https://wordpress.org/latest.tar.gz
tar -xzvf latest.tar.gz
mv wordpress/* .
rmdir wordpress
rm latest.tar.gz
# Set permissions
chown -R www-data:www-data /var/www/html
chmod -R 755 /var/www/html
Complete the WordPress installation via your browser at your domain. Use a strong admin password and unique database prefix for security.
Step 2: Enable Multisite in wp-config.php
Edit your WordPress configuration file:
nano /var/www/html/wp-config.php
Find the line that says /* That's all, stop editing! Happy publishing. */ and add this ABOVE it:
/* Multisite Configuration */
define('WP_ALLOW_MULTISITE', true);
Save the file and refresh your WordPress admin dashboard. You should now see a new menu item: Tools ? Network Setup.
Step 3: Configure Network Settings
Go to Tools ? Network Setup in your WordPress admin. You’ll see two options:
- Sub-domains: client1.yourdomain.com, client2.yourdomain.com
- Sub-directories: yourdomain.com/client1, yourdomain.com/client2
For agencies, sub-domains are usually better because:
- Each client site appears as its own domain
- Better isolation for SEO (search engines treat them as separate sites)
- Easier to migrate a site out later if needed
Important: For sub-domains to work, you need a wildcard DNS record. In your CWH control panel or DNS provider, create:
*.yourdomain.com A YOUR_SERVER_IP (your server IP)
After choosing your network type, WordPress will generate configuration code. Copy this code — you’ll need to add it to two files.
Step 4: Update wp-config.php and .htaccess
WordPress provides specific code to add to wp-config.php. It will look something like this:
define('MULTISITE', true);
define('SUBDOMAIN_INSTALL', true);
define('DOMAIN_CURRENT_SITE', 'yourdomain.com');
define('PATH_CURRENT_SITE', '/');
define('SITE_ID_CURRENT_SITE', 1);
define('BLOG_ID_CURRENT_SITE', 1);
Add this to wp-config.php ABOVE the /* That's all, stop editing! */ line.
Next, WordPress provides rewrite rules for your .htaccess file (if using Apache). Replace your existing .htaccess rules with the provided ones.
For Nginx users: If you’re using Nginx (common on CWH Cloud VPS), you’ll need different configuration. Add this to your Nginx server block:
# WordPress Multisite subdomain rules
if (!-e $request_filename) {
rewrite /wp-admin$ $scheme://$host$uri/ permanent;
rewrite ^(/[^/]+)?(/wp-.*) $2 last;
rewrite ^(/[^/]+)?(/.*\.php) $2 last;
}
location / {
try_files $uri $uri/ /index.php?$args;
}
Step 5: Log Back In and Configure Network
After updating the configuration files, you’ll need to log out and log back in. You’ll now see a new My Sites menu in the admin toolbar.
Go to My Sites ? Network Admin ? Dashboard. This is your Multisite network dashboard where you can:
- Add new sites (clients)
- Manage network-wide plugins and themes
- Configure network settings
- Manage users across all sites
Step 6: Add Your First Client Site
From the Network Admin dashboard, go to Sites ? Add New.
For each client site, you’ll need:
- Site Address: The subdomain (e.g., “client1” for client1.yourdomain.com)
- Site Title: The client’s business name
- Admin Email: The client’s email address (they’ll receive setup instructions)
When you create a site, WordPress automatically:
- Creates the database tables for that site
- Sets up the site with a default theme
- Sends an email to the admin with login credentials
- Creates the subdomain (if wildcard DNS is configured)
Step 7: Configure Network-Wide Settings
Before adding more sites, configure these important network settings:
Network Settings (Network Admin ? Settings)
- Operational Settings: Set network name and admin email
- Registration Settings: Control who can register sites. For agencies, set to “Registration is disabled” — you’ll create all sites manually.
- New Site Settings: Default content for new sites (welcome post, page, comment)
- Upload Settings: File upload limits and allowed file types
Theme and Plugin Management
One of Multisite’s biggest advantages: install a theme or plugin once, use it across all sites.
- Network Enable Themes: Go to Themes in Network Admin. Themes installed here are available to ALL sites. Network-enable the themes you want clients to access.
- Network Activate Plugins: Go to Plugins in Network Admin. Network-activated plugins run on ALL sites and cannot be deactivated by individual site admins. Use this for essential plugins (security, backup, caching).
Step 8: Client Management and Permissions
Multisite has a hierarchical user system:
- Super Admin: You (the agency). Full access to everything.
- Site Admin: Client. Manages their own site but cannot access network settings or other client sites.
- Editor/Author/Contributor: Standard WordPress roles, scoped to individual sites.
To add a client as a Site Admin:
- Go to Users ? Add New in Network Admin
- Enter client’s email, username, and set role to “Administrator”
- Check “Add the user without sending an email notification” if you want to send custom instructions
- Go to the client’s site dashboard ? Users and confirm they have Administrator role
Production Hardening and Security
With multiple client sites on one installation, security becomes even more critical.
1. Network-Activated Security Plugins (Mandatory)
These plugins should be network-activated so clients cannot disable them:
- Wordfence Security: Firewall and malware scanning
- Solid Security (formerly iThemes Security): Hardening and brute force protection
- BackupBuddy or UpdraftPlus: Regular backups (configure to store offsite)
2. Server-Level Security
# Configure PHP limits for Multisite
nano /etc/php/8.2/fpm/php.ini
# Increase these values
memory_limit = 256M
max_execution_time = 300
upload_max_filesize = 64M
post_max_size = 64M
3. Firewall Rules
# Allow HTTP/HTTPS
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
# Limit admin access to your agency IP
sudo ufw allow from YOUR_AGENCY_IP to any port 22
sudo ufw deny 22
4. Regular Updates Strategy
With Multisite, updates affect all sites simultaneously. Test updates on a staging site first:
- Create a staging subdomain (staging.yourdomain.com)
- Use a plugin like WP Staging to clone your production network
- Test all updates on staging
- Schedule a maintenance window for production updates
- Communicate with clients about the update schedule
Troubleshooting Common Multisite Issues
Issue 1: “You do not have sufficient permissions to access this page.”
Cause: User is logged in but doesn’t have Multisite permissions.
Fix: Ensure the user is added to the specific site. Go to Network Admin ? Sites ? edit the site ? Users tab.
Issue 2: Subdomains not working
Cause: Missing wildcard DNS record or server configuration.
Fix:
# Verify DNS
dig *.yourdomain.com
# Check Nginx/Apache configuration includes wildcard server_name
server_name yourdomain.com *.yourdomain.com;
Issue 3: Plugin/theme not appearing on client sites
Cause: Not network-enabled.
Fix: Go to Network Admin ? Themes or Plugins, find the item, click “Network Enable”.
Issue 4: Slow performance with many sites
Cause: Database queries multiplying across sites.
Fix:
- Implement object caching (Redis or Memcached)
- Use a plugin like W3 Total Cache network-activated
- Consider moving to a CWH Dedicated Server with more resources
Issue 5: Client needs to use a custom domain
Solution: Use the WordPress MU Domain Mapping plugin. It allows client1.yourdomain.com to appear as clientdomain.com.
- Install and network-activate the plugin
- Add domain mapping records in Network Admin ? Settings ? Domain Mapping
- Configure DNS: point clientdomain.com to your server IP
When NOT to Use WordPress Multisite
Multisite isn’t a silver bullet. Avoid it when:
- Clients need vastly different plugins/themes: Multisite works best when sites share a common stack
- One client’s traffic could impact others: All sites share server resources
- You need to sell hosting to clients: Multisite makes resource allocation and billing complex
- Clients need full control: In Multisite, you control updates and network-activated plugins. If clients need autonomy over their hosting environment, separate hosting makes more sense. Our Self-Hosted vs SaaS decision framework can help you decide when separate hosting is the right choice.
- Migration flexibility is critical: Moving one site out of a Multisite network is complex
For these scenarios, consider CWH Reseller Hosting instead — each client gets their own cPanel account with full isolation.
Conclusion and Next Steps
WordPress Multisite can transform how agencies manage client websites, turning maintenance from a scaling problem into a centralized process. The key is understanding the trade-offs:
- Pros: Centralized updates, consistent security, efficient resource usage, easier client onboarding
- Cons: Shared resources, complex migration, less client autonomy, single point of failure
For agencies with 10+ clients using similar WordPress stacks, Multisite is worth the setup investment. Start with a staging environment, test thoroughly, and develop a communication plan for clients about the new structure.
Ready to set up your Multisite network? Canadian Web Hosting’s Cloud VPS provides the performance and control you need, with optional Managed Support if you’d prefer our team handles the infrastructure.
For more WordPress optimization tips, check out our guide on WordPress Performance in 2026 and WordPress Caching Plugins Compared.
Be First to Comment