Managing a handful of websites is easy. Managing 100+ websites for a global group or a franchise network is a logistical problem, unless you use the right architecture. In 2026, WordPress Multisite remains the built-in way to run a large fleet of sites from one WordPress installation.
Here is how to architect, govern, and scale a 100-site network.
Short answer: WordPress Multisite still works very well in 2026 when you need centralised control, shared code, and consistent governance across many sites. It becomes the wrong choice when you need hard data isolation, radically different infrastructure per site, or full autonomy for every team.
Learn more about enterprise WordPress development at WPPoland.
Updating 100 WordPress sites from one codebase
The primary advantage of Multisite is having one core codebase to manage. Everything else in this guide builds on that.
Centralized updates
When a security patch is released, you update it once at the network level, and the new code is live for all 100 sites at the same moment. With 100 separate installations the same patch means 100 update runs, and every site that waits stays exposed for longer.
One detail matters at this scale: a core update can also change the database schema. The code is shared, but every site has its own tables, so after a core update WordPress asks you to run Upgrade Network. The Network Admin handbook describes it this way: the Upgrade Network feature “will step through each site, five at a time, and make sure any database changes are applied”. Deactivated sites are skipped and get their update when an admin of that site logs in after reactivation.
Shared library
Themes and plugins are shared. If you want to update the corporate brand colors, you modify one theme and it reflects across all regional sites that use it.
Managing shared assets:
- Corporate theme: one parent theme, with per-brand variations as child themes
- Core plugins: SEO, security, cache and analytics installed once by the Super Admin
- Must-use plugins: files in
mu-pluginsload on every site and cannot be deactivated per site
Brand consistency and its limit
Fonts, colors and spacing defined in the theme’s theme.json apply to every site that uses the theme. The limit is the database: the handbook notes that “Style changes made in the Site Editor affect only individual sites”, because they are stored in that site’s tables. If brand consistency matters, keep the design system in theme files under version control and restrict who can edit styles in the Site Editor.
How to create a WordPress Multisite network
The official procedure is short, and the Create a Network guide sets the order:
- Back up the database and files, verify that pretty permalinks work and deactivate all active plugins.
- If WordPress runs from its own directory, set that up before activating Multisite.
- Add
define( 'WP_ALLOW_MULTISITE', true );towp-config.phpabove the line that ends editing. This enables Tools > Network Setup. - On the Network Setup screen choose sub-domains or sub-directories and install.
- Add the lines WordPress generates to
wp-config.phpand.htaccess, then log in again.
The network administration handbook adds a point that saves time on modern stacks: WordPress can generate Apache and IIS rewrite rules, “but it cannot generate Nginx configuration”. On Nginx you write the Multisite rules yourself from the documented examples.
On the command line, WP-CLI does the same conversion with wp core multisite-convert, which creates the Multisite tables and adds the constants to wp-config.php. Add --subdomains for a domain-based network.
Subdomain or subdirectory multisite
The choice decides how site URLs look and what the server must support. The prepare-network guide lists the rules:
| Sub-domain install | Sub-directory install | |
|---|---|---|
| URL pattern | site1.example.com | example.com/site1 |
| Server needs | DNS and server mapping for each name (wildcard, virtual hosts or panel-added subdomains) | Working pretty permalinks |
| Sites created on demand | Needs wildcard subdomains | Works without extra DNS |
| Not available when | WordPress URL contains a path, or is localhost or an IP address | The existing site has been set up for more than a month |
| Main site side effect | None | Posts on the main site get a /blog/ prefix |
A network cannot be created at all when the WordPress address uses a port other than 80 or 443. Switching type later is possible but heavy: changing SUBDOMAIN_INSTALL and the rewrite rules “does not migrate existing site addresses or configure DNS, virtual hosts, TLS certificates, redirects, and cookies”. For a 100-site plan, decide once and test on staging.
WordPress multi-network and database sharding
For organizations that have outgrown a single network, multi-network setups group sites into several networks inside one installation. Core supports the data model, but the management UI comes from plugins such as WP Multi Network.
Regional grouping
You can have a network for Europe, a network for the Americas and a network for APAC, all within one installation. Each network has its own settings and its own list of network-activated plugins.
| Network | Example sites |
|---|---|
| Europe | site-spain.es, site-germany.de, site-france.fr, site-italy.it |
| Americas | site-usa.com, site-mexico.mx, site-brazil.com.br, site-canada.ca |
| APAC | site-japan.jp, site-australia.com.au, site-india.in |
In WP-CLI every network has a numeric ID. wp site create --network_id=2 adds a site to the second network, and wp site list --network=2 lists only its sites.
Sharding with a db.php drop-in
To prevent the database from becoming a bottleneck, a db.php drop-in such as HyperDB distributes site tables across multiple database servers and sends reads to replicas.
Sharding strategies:
- By region: each regional network has its own database server
- By volume: high-traffic sites get dedicated servers
- Hybrid: a mix of both, based on measured load
What is shared and what is per site
| Data | Where it lives |
|---|---|
| Users | Common tables for the whole network; a user needs a role on a site to access it |
| Network settings | Network options, stored by default in wp_sitemeta and read with get_site_option() |
| Posts, pages, site options | Separate tables for each site |
| Uploads | Main site in /wp-content/uploads/, other sites in /wp-content/uploads/sites/<site ID>/ |
| Plugin and theme code | One copy on disk for all sites |
The administration handbook also adds that network activating a plugin “does not change where the plugin stores its data”. Whether settings are network-wide or per site depends on how each plugin is written, so check that before you approve a plugin for the network.
SSO and user roles in WordPress Multisite
With 100 sites, you likely have hundreds of users. You cannot manage them manually.
SSO integration
Integrate your Multisite with an identity provider such as Okta or Microsoft Entra ID (formerly Azure AD). When an employee leaves the company, their access to all 100 websites is revoked in one place. That closes the gap of orphaned accounts, a common way into old sites.
Super Admin controls
Define which sites can activate which plugins. A regional marketing team shouldn’t be allowed to install a risky plugin that could break the whole network. WordPress enforces part of this by default: in a network, site admins “cannot install new themes or plugins and cannot edit the profiles of users on their site”. Only the Super Admin can.
Recommended role hierarchy:
| Role | Scope | Permissions |
|---|---|---|
| Super Admin | Whole installation | Full control: plugins, themes, sites, users |
| Administrator | One site | Site settings, adding users if the network allows it |
| Editor | One site | Publishing and editing all content |
| Author | One site | Publishing own posts |
| Contributor | One site | Writing drafts for review |
Custom roles, such as an SEO manager with access to meta fields only, are possible with a role plugin or code, and they are defined per site.
Plugin access for site admins
By default site admins do not see the Plugins screen at all. The Network Settings screen has a Menu Settings option that enables it. Even then, site admins can only activate or deactivate plugins the Super Admin installed; network-activated plugins show as “Network Active” with no option to deactivate.
A plugin can also declare Network: true in its header, which makes it network-only.
Themes per site
Network enabling a theme does not switch any site to it. It only makes the theme available. A theme can also be enabled for a single site from the Edit Site screen, Themes tab. New sites get the newest default theme unless you set WP_DEFAULT_THEME in wp-config.php to the folder name of your corporate theme, which saves a manual step on every new site.
How to syndicate content across a WordPress multisite network
Sites in a network do not share content by default. The handbook compares a network to “a mini version of WordPress.com” and points to plugins for sharing. Plan syndication as a feature you add, not one you get.
Publishing one announcement on every site
Broadcast plugins let you post a global corporate announcement once and copy it to all 100 sites. Typical candidates are press releases, product updates, security and compliance notices and seasonal campaigns.
Global search
Use Elasticsearch (via ElasticPress) to provide a search bar that can find content across every site in the entire network. Native WordPress search queries the tables of one site.
Reading content from other sites
Every site exposes its own REST API, so a hub site can pull posts from regional sites over HTTP. Inside PHP, switch_to_blog() and restore_current_blog() let code read another site’s tables directly, which is how most syndication plugins work.
WordPress Multisite performance checklist for 100+ sites
| Component | Recommendation | Why it matters |
|---|---|---|
| Object cache | Redis (cluster at scale) | Prevents database overload from shared queries |
| CDN | Edge caching | Speeds up TTFB for global sites |
| Storage | S3-compatible | Offloads media files to prevent server bloat |
| Search | Elasticsearch | Native WP search does not search across sites |
| Database | MySQL 8+ with read replicas | Spreads read load across servers |
| Monitoring | APM with per-site data | Shows which site causes load |
Redis for Multisite
- Keys per site: the object cache keys data by site ID, so sites do not overwrite each other’s cache
- Global groups: users and network options are cached once for the network
- Memory alerts: one large site can fill the shared cache
Upload limits per site
Network Settings also control storage. By default each site’s upload space is limited to 50 MB and the max upload file size to 1500 KB, both editable. Allowed file types are a network list; adding a type there “will NOT work” unless it is also allowed through the upload_mimes filter. With 100 sites, set these limits on purpose instead of raising them per complaint.
Automating WordPress Multisite with WP-CLI and CI/CD
Automated deployments
In a network of 100+ sites, manual deployments do not scale:
- CI/CD pipeline: every code change passes automated tests on staging
- Gradual rollout: when you run several networks or installations, ship to the smallest group first
- Rollback: keep the previous release ready to restore
WP-CLI at scale
WP-CLI is the main tool for running a network from the command line. Commands below are from the official WP-CLI command reference:
# Update core once, then run the database update on every site
wp core update
wp core update-db --network
# Activate a plugin for the whole network
wp plugin activate my-plugin --network
# Activate a plugin on every site of network 2 only
wp site list --network=2 --field=url | xargs -I {} wp plugin activate my-plugin --url={}
# Count published posts per site
wp site list --field=url | while read url; do
echo "$url $(wp post list --post_type=post --post_status=publish --format=count --url="$url")"
doneSite lifecycle commands
| Task | Command |
|---|---|
| Create a site | wp site create --slug=berlin --title="Berlin" |
| Create a site on its own domain | wp site create --site-url=https://example.de |
| Create a site that is not indexed | wp site create --slug=preview --private |
| Archive a site | wp site archive 42 |
| List archived sites | wp site list --archived=1 |
| Delete a site but keep its tables | wp site delete 42 --keep-tables |
| List Super Admins | wp super-admin list |
| Make a theme available network-wide | wp theme enable corporate --network |
Archive and deactivate are reversible and the Network Admin treats archive the same as deactivate in practice. Spam makes a site unavailable to everyone. Delete removes the site, so script it with --keep-tables until you have a verified backup.
Monitoring and alerts per site
Each site in the network needs its own alerts:
- Uptime per site (the main site can be up while a sub-site is down)
- Core Web Vitals per site
- PHP errors per site (a plugin activated on one site can cause errors there only)
- Database growth per site
How to map a custom domain to a multisite site
Domain mapping is native since WordPress 4.5, according to the domain mapping guide. The steps:
- Point the domain’s DNS at the server and park it on the network’s main domain.
- Install a TLS certificate for every domain; the guide recommends SNI for the extra domains.
- In Network Admin, open Sites, edit the site and set Site Address (URL) to the full domain, for example
https://example.com. - If logins fail with a cookie error, add
define( 'COOKIE_DOMAIN', $_SERVER['HTTP_HOST'] );towp-config.php.
For 100 brands on 100 domains, certificate renewal becomes the recurring job, so automate it on the server.
When not to use multisite
Multisite isn’t always the answer. The handbook itself warns: if you plan sites that “share data, or share users” in a strongly connected way, “a multisite network might not be the best solution”. Avoid it if:
- Unique requirements: Site A needs a completely different server configuration or a different PHP version than Site B.
- IP reputation: If one site on the network is “spammy,” it could affect the reputation of all other sites on that same IP. This matters most for sites that depend on email deliverability.
- Data isolation: A client requires their data to be in a completely separate database for legal reasons.
- Team autonomy: Each team needs to choose and install its own plugins.
- One dominant site: One site carries most of the traffic and needs its own infrastructure.
Alternatives to Multisite
| Scenario | Alternative |
|---|---|
| Data isolation | Separate installations with central management tools |
| Team autonomy | Separate installations with a shared deployment pipeline |
| One dominant site | Hybrid: the heavy site alone, the rest in Multisite |
| Different server needs | Containerised separate installations |
How to migrate to WordPress Multisite step by step
Phase 1: audit
- Inventory of all existing sites
- Analysis of plugins and themes in use, and whether each works in Multisite
- Data and isolation requirements
- Integrations per site
Phase 2: architecture
- Network structure (one network or several)
- Sub-domain or sub-directory, decided once
- Database strategy
- Roles and permissions
Phase 3: implementation
- Multisite environment on staging
- Content migration site by site
- SSO and governance
- Cache and CDN
Phase 4: optimization
- Load testing
- Cache and database tuning
- Training for network admins
- Written runbooks for updates and new sites
The handbook warns that moving Multisite “is more complicated than moving a single install”, so test the migration path on staging before the production cutover.
Conclusion
WordPress Multisite is a strong tool for anyone running a fleet of sites. It provides the efficiency of centralized management with the flexibility of decentralized content creation.
If you are looking to scale from 10 sites to 100 or 1000, architecting your Multisite correctly from day one is the most important technical decision you will make.







