← Back to blog

WordPress Network Admin: where it is, why it is missing, and what Upgrade Network does

The SandyWP team 5 min read

Network Admin is the second admin area that a multisite install adds, at /wp-admin/network/. You reach it from My Sites > Network Admin in the toolbar, and it only appears when two things are true: the install is a multisite network, and your user is a Super Admin.

If you cannot see it, one of those two is false. The rest of this post covers how to tell which, what each Network Admin screen actually changes, and the one screen, Upgrade Network, that is worth running on a copy before you run it on a real network.

There are three causes, and they are quick to separate.

The install is not multisite. A single-site install has no Network Admin at all. Core's toolbar code returns before it builds the My Sites menu when is_multisite() is false.

You are a site Administrator, not a Super Admin. The Network Admin group in the toolbar is gated on the manage_network capability. A user can be Administrator on every site in the network and still never see it.

The network is half set up. If you enabled multisite in wp-config.php but have not finished the steps on Tools > Network Setup, the network does not exist yet. That screen shows you the wp-config.php constants and rewrite rules to paste in.

Check from the shell instead of guessing:

wp core is-installed --network && echo "multisite"
wp super-admin list

On multisite, the list of Super Admins is stored as a list of logins in the site_admins network option. If your login is not in it, wp super-admin add yourlogin fixes the problem in one line.

One detail that surprises people: on a single-site install, is_super_admin() just checks for the delete_users capability. On a network it checks the site_admins list instead, so a plugin that tests is_super_admin() can behave differently on the two even for the same user.

What each Network Admin screen actually changes

The menu has seven items. Per the multisite administration handbook, they are Dashboard, Sites, Users, Themes, Plugins, Settings and Updates.

Most of them behave the way the name suggests. A few have an effect that is easy to misread:

  • Sites. The row actions are Edit, Dashboard, Deactivate, Archive, Spam, Delete and Visit. Deactivate sets the site's deleted flag to 1, and Delete is a different action that actually removes the site.
  • Users. A network account grants no access to any site by itself. Roles are still set per site on that site's Users screen.
  • Themes. Enabling a theme here makes it available to site admins. It does not change any site's active theme.
  • Plugins. Network activating a plugin turns it on for every site. It does not decide where the plugin keeps its data, which is a property of how the plugin was written.
  • Settings. Network-wide options live in wp_sitemeta and are read with get_site_option(), not get_option().

If you build or maintain plugins, the activation and options rows are where the bugs hide. How to test a WordPress plugin on multisite goes through the four activation states in detail.

What does Upgrade Network do?

Upgrade Network, under Network Admin > Updates, runs the database upgrade routine on each site in the network after a WordPress core update. It is the screen that most often gets run for the first time on production.

The page is wp-admin/network/upgrade.php, and reading it tells you things the handbook does not.

It works through the network five sites at a time, loading the next batch with a new request about 250 ms after each one finishes. A network of 400 sites is therefore 80 sequential page loads in your browser, and closing the tab stops it.

It requires the upgrade_network capability and exits with a 403 otherwise.

It skips sites flagged spam, deleted or archived, and since Deactivate is the deleted flag, deactivated sites are skipped too.

Those sites are not upgraded now. They catch up the next time they are reactivated and someone visits their admin.

It also fires an action per site, wpmu_upgrade_site, which is the hook plugins use to run their own per-site migrations. That is the part that can go wrong at scale, because a plugin's migration is now running once per site, five sites at a time, against your real data.

From the shell the equivalent is:

wp core update-db --network

How do you rehearse a network upgrade without risking the real one?

Make a copy of the network, run the upgrade there, and watch what happens. That is the one thing you cannot learn from reading about it.

On SandyWP, multisite is a choice on the create-site screen for logged-in users, and it creates a subdirectory network.

The Cloner can also copy an existing subdirectory network into a sandbox.

Subdomain networks are not supported, so if yours is one, this rehearsal covers the code but not the routing.

Then, over SSH or SFTP, where wp is preinstalled:

wp site list --fields=blog_id,url,deleted,archived,spam
wp core version --extra
wp core update --version=<the version you are targeting>
wp core update-db --network

Check three things afterwards. Did every site that was not deleted, archived or spam end up on the new database version? Did any plugin's per-site migration log an error to debug.log (turn on debug mode first)? And which sites were skipped, so you know what will lag behind on the real network?

If a plugin's migration is slow, you will see it here, at five sites per step, with nobody waiting on the result. That is cheaper than finding out at 400 sites in front of customers.

What a sandbox will not tell you

A sandbox network is a handful of sites, not hundreds. It will not surface a timeout that only appears at scale, and it has no real traffic hitting sites mid-upgrade.

It also does not reproduce your host's PHP time limits or an object cache that holds stale options while the upgrade rewrites them. Those need a staging copy on the real host.

The point is smaller and more useful: find out what the upgrade does on your plugin set before you click the button where it matters.

The short version

Network Admin is at /wp-admin/network/, and it needs a multisite install and a Super Admin login. If it is missing, run wp super-admin list.

Of the seven menu items, Upgrade Network is the one with consequences: five sites a step, skipping spam, archived and deactivated sites, and running every plugin's per-site hook.

Rehearse it on a throwaway copy of the network first. What is a WordPress sandbox explains the idea in more detail.