Managing five WordPress sites is a side project. Managing fifty is a job that breaks ad-hoc tooling. The gap is real and it happens around the fifteen-site mark. Here is the small stack that lets a two-person team run a 50-plus-site portfolio without firefighting.
The three jobs that have to be automated
Three categories of work scale linearly with site count and are the first things to break:
- Updates. WordPress core, plugins, themes. Five sites: do it by hand. Fifty: you need rolling automated updates with rollback on failure.
- Backups. Off-site, automated, with quick-restore tested at least quarterly.
- Health monitoring. Not just “is the site up”, but “are there new PHP errors, slow queries, missing assets, broken cron jobs”.
The stack we run
- WP-CLI driven from a small bastion server. Every site checked in to git. Updates triggered by a cron that runs
wp core update; wp plugin update --all, thenwp eval-filea smoke-test script and rolls back on non-200. - UpdraftPlus or BackupBuddy to S3 with weekly full + daily incremental. Restore tested monthly on a staging environment.
- Uptime monitor (UptimeRobot, Better Uptime, anything reliable) on the home page and one deep page per site.
- Log shipping from
wp-content/debug.logto a central syslog or a service like Papertrail. Catches the silent fatal errors that uptime monitoring misses. - Weekly dashboard email aggregating “what changed across all sites” — outdated plugins, security alerts, traffic deltas. The fastest 30 seconds of management we do all week.
The mindset shift
At small portfolio sizes you can react to problems. At fifty plus, you cannot — by the time you notice a broken plugin update on site 12, sites 18, 23 and 34 already have it too. The shift is from reactive (“client called, fix it”) to proactive (“dashboard amber, fix it before client notices”). That is a tooling shift, not a discipline shift.
What we stopped doing
- Logging into
wp-adminon individual sites to check anything. If we cannot answer it from the central dashboard, we add it to the dashboard. - Per-site Slack channels. One client portfolio channel with @mentions for blocking issues.
- Manual plugin updates. Even when “I just want to update Yoast on this one”. The exception becomes the rule.
The fifty-site mark is the size where small process investments pay back inside a quarter. Make them.
