Network split guide
Split a Multisite network into standalone sites (Pro)
Turn one WordPress Multisite into separate single-site installs — either by creating one archive per site, or by extracting one site from an existing network backup. Requires an active Pro license with capability network_split.
What this does
Goal: leave Multisite and run each (or selected) site as its own WordPress install. Multisite Migrate Pro supports two operator journeys. Both keep the rule one destination = one run — you restore or install once per target host.
| Journey | Starting point | Result |
|---|---|---|
| Split backup | Live network (Network Admin) | N full archives (one per selected site) |
| Extract | Existing network-scope archive | One site demoted to standalone on the destination |
Which path should I use?
- Prefer split backup when you still have Network Admin on the source and want a clean, per-site archive set before you tear down the network.
- Prefer extract when you already have a full-network (or multi-site) backup and do not want to re-run N backups — reuse that archive and pick one source blog per destination.
- Blog 1 / main site is supported on both paths. Main-site media often lives under
uploads/(notuploads/sites/1/); extract keeps that tree when you choose blog ID 1.
Requirements
- Pro plugin ZIP + active Pro license. Capability
network_splitmust appear after activate/refresh. Older Pro keys may need Settings → General & License → Re-activate / Refresh. - Network Admin on the source for split backup.
- Disk — split multiplies usage: roughly sites × archive size × 1.5 locally. The plugin hard-blocks start when free space is too low (cloud-only destinations skip the hard local gate).
- Empty-server path — extract via installer also needs Pro
installercapability. - Not on Free or Plus — options stay locked until Pro is active.
Path A — One archive per site (split backup)
Creates a normal full backup job for each selected site, one after another. Finished archives stay even if a later site fails.
Steps (admin UI)
- On the Multisite network, open MM Pro → Backups → Backup now.
- Under scope, choose One archive per site (split).
- Select the sites to include, or leave “all accessible” selected. Review the disk warning (usage scales with site count).
- If you leave more than five sites unchecked while “all” is not intended, confirm with the confirm all checkbox when prompted.
- Choose profile / destination (local or cloud on Plus+ destinations) → Start.
- Watch the split progress panel. Sites run sequentially (not in parallel).
- When complete, download or keep each archive under Backups. Restore each archive once to its own WordPress install (or empty-server installer), same as any other single-site backup.
If a site fails mid-split
- Completed archives remain valid — do not delete them.
- In the progress panel click Continue with remaining sites (or WP-CLI
split-resume --yes). - Only unfinished blogs re-run. Use Cancel only if you want to stop the orchestrator entirely.
Then restore
For each destination install: import/restore that site’s archive, map old → new URL, finish the job. Repeat per host. There is no “install all destinations in one click.”
Path B — Extract one site from a network archive
Use when the archive still contains the whole network (or multiple blogs) and the destination should become a single-site WordPress.
Steps (plugin restore)
- On the destination (or after import), open Import & Restore / the restore dialog for a network-scope archive.
- Choose topology Extract one site as standalone.
- Pick the source site (blog ID) from the archive list.
- Map that site’s old URL → new URL only.
- Start restore. Tables and uploads for other blogs are skipped; the site is demoted to standalone.
- After success, use Next site from this archive (when shown) to continue with another blog on the next destination — or reopen Extract and pick the next blog ID.
Steps (empty-server installer)
- Upload the network archive + installer PHP to the empty host (Pro installer flow).
- In the migrate/deploy UI choose Extract one site as standalone, select source blog, map URL, run.
- Repeat on each empty host for remaining blogs (same archive, different source blog).
After each destination
- Log in, check Settings → General URLs.
- Re-save permalinks. Spot-check media and menus.
- Run a fresh local backup on the new install.
- Remove installer PHP from the web root when finished (empty-server path).
Verify leftover URLs, then repair
After extract (or any URL move), scan for leftover old domains before bulk replace:
- Open the post-migration verify tools in the UI, or run WP-CLI
migration-verify/ MCP verify (show report first). - Review hits. Only then confirm search-replace (
search-replace --yesor UI confirm). - Never blind auto-fix — confirm is required.
WP-CLI & MCP
Requires Pro CAP_CLI / MCP plus CAP_NETWORK_SPLIT. Destructive commands need an explicit confirm flag.
| Task | Example |
|---|---|
| Start split | wp multisite-migrate split-network --yes |
| Status | wp multisite-migrate split-status |
| Resume remaining | wp multisite-migrate split-resume --yes |
| Cancel | wp multisite-migrate split-cancel --yes |
| Extract restore | wp multisite-migrate restore <id> --migration --topology-import=extract_site_standalone --source-blog-id=N --old-url=… --new-url=… --yes |
| Verify / repair | migration-verify then search-replace --yes |
Full recipes: WP-CLI guide. MCP clients use the matching abilities with confirm:true on writes — see Connect AI.
What this is not
- Not one click that installs every destination at once.
- Not parallel child backups (sites run one after another).
- Not Free/Plus.
- Not a domain-map / sunrise UI — map URLs per destination yourself.
- Not blind automatic search-replace after migrate.
Troubleshooting
- Split / Extract option missing
- Confirm Pro ZIP is active and license refresh grants
network_split. Plus and Free never unlock this. - Start blocked for disk
- Free local space or reduce selected sites. Estimate is sites × size × 1.5. Cloud-only destinations may skip the hard local gate.
- Child site failed
- Use Continue with remaining sites /
split-resume. Keep finished archives. - Wrong site’s media after extract
- Confirm source blog ID. Blog 1 media is usually under
uploads/, notuploads/sites/1/. - Old URLs still in content
- Run verify, then confirmed search-replace — see Verify leftover URLs.
- Busy / another job running
- Only one backup, restore, split, or staging push runs at a time. Wait or cancel the other job.
Related: Backup options — network split · Restore — extract · WP-CLI · User Manual
Network split FAQ
Answers for splitting a Multisite into standalone installs and extracting one site from a network archive.
Is network split included in Free or Plus?
No. One archive per site and extract-to-standalone require Pro with the network_split capability. Refresh the license if the option is missing.
Split backup or extract — which should I use?
Use split backup when you still have Network Admin and want fresh per-site archives. Use extract when you already have a network-scope archive and want to pull one blog into a single-site destination without re-backing up.
Can I install every destination in one run?
No. One destination equals one restore or installer run. Repeat per host. After extract, use Next site from this archive for the next blog on the next destination.
What if a child site fails during split?
Finished archives stay. Click Continue with remaining sites in the progress panel, or run split-resume --yes via WP-CLI.
Does extract work for blog ID 1?
Yes. Main-site uploads usually live under uploads/ rather than uploads/sites/1/; extract keeps that tree when you select blog 1.