[{"data":1,"prerenderedAt":192},["ShallowReactive",2],{"seo-verification":3,"blog-wordpress-multisite-vps-manage-n-client-sites-one-install-en":6},{"google":4,"bing":5},"EycwPY2XMyTkVzas3n1ygeNJFGAH513qrMjfDljzsMQ","",{"key":7,"data":8},"blog-wordpress-multisite-vps-manage-n-client-sites-one-install-en",{"id":9,"slug":10,"slugs":11,"title":15,"excerpt":16,"readTime":17,"views":18,"isPinned":19,"publishedAt":20,"updatedAt":21,"category":22,"categories":28,"featuredImage":30,"bgImage":31,"posterImage":32,"relatedSolution":33,"intro":36,"sections":37,"ctaTitle":130,"ctaBody":131,"ctaButton":132,"ctaUrl":133,"relatedPosts":134},368,"wordpress-multisite-vps-manage-n-client-sites-one-install",{"fr":12,"en":10,"ar":13,"es":14},"wordpress-multisite-vps-agence","ووردبريس-متعدد-المواقع-على-vps-ادارة-مواقع-العملاء","wordpress-multisite-vps-gestiona-n-sitios-en-una-instalacion","WordPress Multisite on a VPS: run N client sites from one install","Enable WordPress Multisite on a dedicated VPS to centralize N client sites under one codebase, one update cycle, and isolated subdomains. Full guide for agencies.",10,0,false,"2026-09-20T00:00:00+00:00","2026-09-20T21:13:51+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},7,"Self-hosting","self-hosting","bg-indigo-500\u002F10 text-indigo-400","cloud",[29],{"id":23,"name":24,"slug":25,"color":26,"icon":27},null,"\u002Fblog\u002Fcovers\u002Fbg.svg","\u002Fblog\u002Fcovers\u002Fwordpress-multisite-vps-agence-poster.svg",{"categorySlug":34,"appSlug":35},"cms-websites","wordpress","When a client site portfolio grows beyond ten sites, managing each instance separately becomes a bottleneck: as many dashboards, as many update cycles, as many risks of falling behind. WordPress Multisite allows you to federate these sites under a single installation while keeping independent subdomains. On a VPS, network isolation and automatic backups contain the risks that this concentrated hosting model raises.",[38,42,52,55,77,117,121,124,127],{"type":39,"title":40,"body":41},"h2","Why Multisite instead of N separate WordPress instances","An agency managing fifteen WordPress sites on fifteen separate installations faces a scaling problem: fifteen dashboards to monitor, fifteen update cycles to coordinate, fifteen web server configurations to maintain. If a critical plugin releases a security patch, it must be applied fifteen times — one by one, manually or via third-party orchestration tools.\n\nWordPress Multisite solves this problem at the root. A single WordPress installation runs a **network of sites**. Each client has their own subdomain (`client1.example.com`, `client2.example.com`), their own content, their own users, and their own theme configuration. But the WordPress core files, plugins, and themes are shared and managed centrally by the network's **super administrator**.\n\nOn a dedicated VPS, this model makes complete sense: network isolation contains the attack surface, and you keep full control over PHP, MariaDB, and Nginx without going through a third-party control panel.",{"type":43,"title":44,"items":45},"ul","What you gain in practice",[46,47,48,49,50,51],"**A single update** for WordPress core, plugins, and network themes — applied simultaneously to all sites in the portfolio.","**A single administration entry point**: the network super admin supervises all sites from `\u002Fwp-admin\u002Fnetwork\u002F`.","**Optional shared media storage** per site — pool resources or isolate according to your client contracts.","**Server resource savings**: a single PHP-FPM process, a single object cache instance, a single MariaDB connection to tune.","**Faster onboarding**: creating a subsite is just filling out a form in the network, not provisioning a server.","**Centralized backups**: a single MariaDB dump covers all sites, schedulable with one cron rule.",{"type":39,"title":53,"body":54},"Prerequisites: recommended VPS resources for 5 to 15 active sites","The resources needed depend on traffic and site complexity — not on the number of installations. For a network of **5 to 15 active WordPress sites** (showcase sites or blogs with moderate traffic, without intensive WooCommerce), the editorial recommendation based on WordPress and Nginx\u002FMariaDB documentation is:\n\n- **CPU**: 2 vCPU minimum; 4 vCPU once you combine page caching and concurrent traffic.\n- **RAM**: 4 GB as a baseline; 8 GB recommended if you enable a Redis object cache alongside PHP-FPM.\n- **Storage**: SSD NVMe, 40 GB minimum for WordPress files + media + MariaDB logs; adjust based on client media volume.\n- **PHP**: PHP 8.2 or 8.3 (PHP 8.1 reached end of active support at the end of 2024).\n- **MariaDB**: 10.6 LTS or 10.11 LTS.\n- **Web server**: Nginx with `server` blocks per subdomain and wildcard DNS.\n\nIf your portfolio exceeds 15 sites or includes WooCommerce stores, consider splitting the Multisite network into two partitions or starting with 8 GB \u002F 4 vCPU.",{"type":56,"title":57,"steps":58},"steps","Enabling WordPress Multisite and configuring Nginx for subdomains",[59,62,65,68,71,74],{"title":60,"body":61},"Set up wildcard DNS","Before making any WordPress changes, add a wildcard DNS record on your main domain:\n\n```\n*.example.com  A  \u003CYOUR_VPS_IP>\n```\n\nThis entry routes all subdomains to your VPS. Without it, the network's subsites will remain inaccessible from a browser, even if WordPress creates them correctly.",{"title":63,"body":64},"Allow network mode in wp-config.php","Edit `wp-config.php` at the root of your WordPress installation and add the following line **before** `\u002F* That's all, stop editing! *\u002F`:\n\n```php\ndefine( 'WP_ALLOW_MULTISITE', true );\n```\n\nThis constant is the condition documented in the \u003Ca href=\"https:\u002F\u002Fdeveloper.wordpress.org\u002Fadvanced-administration\u002Fmultisite\u002Fcreate-network\u002F\">official WordPress documentation\u003C\u002Fa> to enable the network installation wizard.",{"title":66,"body":67},"Create the network from the dashboard","Log in to `\u002Fwp-admin\u002F`, go to **Tools → Network Setup**. Choose **Subdomains** (wildcard DNS required). Enter the network title and administrator email address, then click **Install**.\n\nWordPress will provide two code blocks to insert into `wp-config.php` and into `.htaccess` (Apache) or your Nginx configuration file. Copy them exactly.",{"title":69,"body":70},"Adapt the Nginx configuration for wildcard subdomains","On Nginx, the `.htaccess` block provided by WordPress is not read. Replace it with a dedicated `server` block. Here is the minimal configuration for a subdomain network:\n\n```nginx\nserver {\n    listen 80;\n    server_name example.com *.example.com;\n\n    root \u002Fvar\u002Fwww\u002Fwordpress;\n    index index.php;\n\n    # Multisite subdomain rewrite\n    if (!-e $request_filename) {\n        rewrite \u002Fwp-admin$ $scheme:\u002F\u002F$host\u002Fwp-admin\u002F permanent;\n        rewrite ^(\u002F[^\u002F]+)?(\u002Fwp-.*) $2 last;\n        rewrite ^(\u002F[^\u002F]+)?(\u002F.*\\.php) $2 last;\n    }\n\n    location \u002F {\n        try_files $uri $uri\u002F \u002Findex.php?$args;\n    }\n\n    location ~ \\.php$ {\n        fastcgi_pass unix:\u002Frun\u002Fphp\u002Fphp8.3-fpm.sock;\n        fastcgi_index index.php;\n        include fastcgi_params;\n        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;\n    }\n}\n```\n\nReload Nginx: `systemctl reload nginx`. Then switch to HTTPS by generating a wildcard certificate with Certbot using the DNS-01 challenge — a `*.example.com` SAN certificate covers all subsites in the network.",{"title":72,"body":73},"Finalize the WordPress Multisite configuration in wp-config.php","Add the constants provided by the wizard to `wp-config.php` (adapt values to your installation):\n\n```php\ndefine( 'MULTISITE', true );\ndefine( 'SUBDOMAIN_INSTALL', true );\ndefine( 'DOMAIN_CURRENT_SITE', 'example.com' );\ndefine( 'PATH_CURRENT_SITE', '\u002F' );\ndefine( 'SITE_ID_CURRENT_SITE', 1 );\ndefine( 'BLOG_ID_CURRENT_SITE', 1 );\n```\n\nLog out, then log back in. The dashboard now shows the **Network** menu in the admin bar. From **Network → Sites → Add New**, create your first client subsite: `client1.example.com`.",{"title":75,"body":76},"Activate network plugins and assign themes","In **Network → Plugins**, activate plugins for the entire network (**Network Activate**) or let subsite administrators activate them themselves. Themes work the same way: the super admin makes them available, and each subsite chooses its own.\n\nImportant note: some plugins **do not support network mode**. Check compatibility in the plugin documentation before activating it on the network — an incompatible plugin can block the dashboard of all subsites simultaneously.",{"type":78,"title":79,"headers":80,"rows":84},"comparison","Multisite vs separate WordPress instances: comparison table",[81,82,83],"Criterion","WordPress Multisite","Separate instances",[85,89,93,97,101,105,109,113],[86,87,88],"WordPress core update","1 operation for N sites","N manual operations",[90,91,92],"Plugin update","1 network operation","N operations, risk of desynchronization",[94,95,96],"Client data isolation","Partial (same MariaDB database, distinct prefixes)","Complete (distinct databases, distinct PHP processes)",[98,99,100],"Media storage","Shared by default, isolatable with a plugin","Natively isolated",[102,103,104],"Server resources","Pooled — RAM and CPU savings","Additive — each instance consumes its share",[106,107,108],"Network-incompatible plugin","Potentially blocks all sites","Affects only one instance",[110,111,112],"Onboarding a new site","Form in the network — seconds","Full provisioning — minutes to hours",[114,115,116],"SSL wildcard certificate","1 certificate `*.example.com`","1 certificate per client domain",{"type":118,"title":119,"body":120},"tip","Multisite security on a VPS: containing the impact of a vulnerability","The most common objection to WordPress Multisite is valid: if a vulnerable plugin is compromised, the potential attack surface covers the entire network, not just one site. On a dedicated VPS, several measures contain this impact:\n\n**Daily automated backups.** A MariaDB dump scheduled each night (cron + `mysqldump` or `mariabackup`) gives you a recent restore point for every subsite. Store dumps off the VPS — on an S3-compatible bucket or a remote volume.\n\n**Application firewall.** An Nginx WAF (ModSecurity or OWASP rules) filters malicious requests before they reach PHP. Combine it with `fail2ban` to ban IPs attempting brute force on `\u002Fwp-login.php`.\n\n**Timely updates.** The strength of Multisite — one update for the entire portfolio — is also your best defense: apply WordPress and plugin security patches on the day they are published. Without Multisite, the update lag on a forgotten instance is the most exploited vulnerability.\n\n**Limited super admin.** The network super administrator account has rights over all sites. Use two-factor authentication on this account and create separate subsite administrator accounts for each client.",{"type":39,"title":122,"body":123},"Troubleshooting: three common errors on a WordPress Multisite network","**1. Plugin reported as \"incompatible with network mode\".**\nSome plugins explicitly check whether WordPress is running in Multisite mode and refuse to activate on the network. The cause is often use of `$wpdb->blogid` or options stored in a way incompatible with each subsite's prefixed tables. Solution: check the plugin's GitHub issues, look for a compatible alternative, or activate the plugin only on the subsites that need it (if the plugin allows it) rather than at the network level.\n\n**2. Network administration page inaccessible (`\u002Fwp-admin\u002Fnetwork\u002F` redirects to the standard dashboard).**\nThe super admin is not the same user as the main site administrator. When the network is created, WordPress adds a `super_admin` flag to the active user. If you created the network with one account and then log in with another, that second account won't see the network menu. Check in MariaDB:\n\n```sql\nSELECT meta_value FROM wp_usermeta\nWHERE meta_key = 'wp_user_level'\nAND user_id = \u003CYOUR_ACCOUNT_ID>;\n```\n\nTo elevate a user to super admin: use the `grant_super_admin( $user_id )` function from a mu-plugins file.\n\n**3. Inaccessible subdomains: wildcard DNS doesn't propagate immediately.**\nAfter adding `*.example.com A \u003CIP>`, the record's TTL determines propagation time. During this period, sites created in the network return a DNS error in the browser — WordPress has created them correctly, but the resolver doesn't know the subdomain yet. If you're working locally with a development VPS, add an entry in `\u002Fetc\u002Fhosts` on your workstation for each subdomain to test: `\u003CVPS_IP>  client1.example.com`.\n\nA fourth case occurs with mixed **www \u002F non-www** configurations: if both `example.com` and `www.example.com` point to the VPS, ensure that `DOMAIN_CURRENT_SITE` in `wp-config.php` matches exactly the main domain without the `www` prefix, and that Nginx redirects the www form to the canonical form before passing the request to WordPress.",{"type":118,"title":125,"body":126},"Migrating existing sites to a Multisite network","If you already manage separate WordPress sites and want to consolidate them into a Multisite network, the **WordPress Importer** plugin (official plugin) exports content, comments, and users from each source instance, then imports them into a network subsite.\n\nThree points to watch before migrating:\n\n- **Uploads don't migrate automatically.** Copy the `wp-content\u002Fuploads\u002F` folder from each source site to `wp-content\u002Fuploads\u002Fsites\u002F\u003CID>\u002F` in the network (the ID is assigned by WordPress when the subsite is created).\n- **Check network plugin compatibility** before switching: a plugin active on the old site may not work in network mode. List each source site's plugins and cross-reference with the available network plugins.\n- **Test domain redirections.** If the migrated site had its own domain (`www.client1.com`), configure the **WordPress MU Domain Mapping** module or the native custom domain feature so that `client1.example.com` redirects to `www.client1.com` — or vice versa depending on your choice.",{"type":39,"title":128,"body":129},"Going live: validation steps before opening to your clients","Before migrating your first client sites to the network, review these points:\n\n- **Test creating a subsite** via `client1.example.com` and verify it's accessible from an external browser.\n- **Verify that the wildcard certificate covers `*.example.com`**: `openssl s_client -connect client1.example.com:443 -servername client1.example.com | grep subject`.\n- **Simulate a network plugin update** and verify all subsites remain functional.\n- **Plan and test restoration** of a subsite from a MariaDB dump: untested restoration is not a backup.\n- **Document the onboarding procedure** for your clients: administration URL, credentials, rights granted to their subsite administrator account.\n\nA ServOrbit VPS sized for your WordPress portfolio gives you control over the full stack — PHP, MariaDB, Nginx, backups — without an abstraction layer that hides errors.","One VPS for your entire agency","A single ServOrbit VPS is enough to manage your entire agency's WordPress portfolio.","Discover the agency plan","\u002Fsolutions\u002Fagences",[135,152,171],{"id":136,"slug":137,"slugs":138,"title":142,"excerpt":143,"readTime":144,"views":18,"isPinned":19,"publishedAt":145,"updatedAt":146,"category":147,"categories":148,"featuredImage":30,"bgImage":31,"posterImage":150,"relatedSolution":151},73,"host-wordpress-on-your-own-vps",{"fr":139,"en":137,"ar":140,"es":141},"heberger-wordpress","استضافة-wordpress-على-خادم-vps-الخاص-بك","alojar-wordpress-en-un-vps","Host WordPress on your own VPS","Host WordPress on your VPS for maximum performance and control: Docker, MariaDB, caching, reverse proxy and SSL.",3,"2026-04-08T00:00:00+00:00","2026-09-08T22:00:02+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},[149],{"id":23,"name":24,"slug":25,"color":26,"icon":27},"\u002Fblog\u002Fcovers\u002Fheberger-wordpress-poster.svg",{"categorySlug":25,"appSlug":35},{"id":153,"slug":154,"slugs":155,"title":159,"excerpt":160,"readTime":161,"views":18,"isPinned":19,"publishedAt":162,"updatedAt":163,"category":164,"categories":165,"featuredImage":30,"bgImage":31,"posterImage":167,"relatedSolution":168},144,"woocommerce-on-a-vps-a-fast-store-you-control",{"fr":156,"en":154,"ar":157,"es":158},"installer-woocommerce-vps","woocommerce-على-vps-متجر-سريع-وتحت-سيطرتك","instalar-woocommerce-en-un-vps","WooCommerce on a VPS: a fast store you control","Install WooCommerce on a ServOrbit VPS: WordPress, cache, HTTPS, backups and full control of your store.",4,"2026-02-01T00:00:00+00:00","2026-09-07T11:26:10+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},[166],{"id":23,"name":24,"slug":25,"color":26,"icon":27},"\u002Fblog\u002Fcovers\u002Finstaller-woocommerce-vps-poster.svg",{"categorySlug":169,"appSlug":170},"e-commerce","woocommerce",{"id":172,"slug":173,"slugs":174,"title":178,"excerpt":179,"readTime":180,"views":181,"isPinned":19,"publishedAt":182,"updatedAt":163,"category":183,"categories":189,"featuredImage":30,"bgImage":31,"posterImage":191,"relatedSolution":30},317,"linux-vps-hardening-checklist-for-agencies",{"fr":175,"en":173,"ar":176,"es":177},"linux-hardening-vps-checklist","قائمة-تصليب-خادم-لينكس-للوكالات-بعد-التسليم","hardening-linux-vps-checklist-para-agencias-tras-la-entrega","Linux VPS Hardening Checklist for Agencies","Reproducible Linux hardening checklist for agencies: auditd, sudo user, SSH key auth, UFW, fail2ban and root lockout — with per-client traceability.",11,1,"2026-08-30T00:00:00+00:00",{"id":184,"name":185,"slug":186,"color":187,"icon":188},8,"Security & Monitoring","securite-monitoring","bg-rose-500\u002F10 text-rose-400","security",[190],{"id":184,"name":185,"slug":186,"color":187,"icon":188},"\u002Fblog\u002Fcovers\u002Flinux-hardening-vps-checklist-poster.svg",1789939195013]