#!/bin/bash
# Run on one client, or loop over clients.json for all
WP_PATH="/var/www/html/client" # Backup first
wp --path="$WP_PATH" --allow-root db export backup_$(date +%Y%m%d).sql # Update everything
wp --path="$WP_PATH" --allow-root core -weight: 500;">update
wp --path="$WP_PATH" --allow-root plugin -weight: 500;">update --all
wp --path="$WP_PATH" --allow-root theme -weight: 500;">update --all # Check for issues
wp --path="$WP_PATH" --allow-root doctor check --all
#!/bin/bash
# Run on one client, or loop over clients.json for all
WP_PATH="/var/www/html/client" # Backup first
wp --path="$WP_PATH" --allow-root db export backup_$(date +%Y%m%d).sql # Update everything
wp --path="$WP_PATH" --allow-root core -weight: 500;">update
wp --path="$WP_PATH" --allow-root plugin -weight: 500;">update --all
wp --path="$WP_PATH" --allow-root theme -weight: 500;">update --all # Check for issues
wp --path="$WP_PATH" --allow-root doctor check --all
#!/bin/bash
# Run on one client, or loop over clients.json for all
WP_PATH="/var/www/html/client" # Backup first
wp --path="$WP_PATH" --allow-root db export backup_$(date +%Y%m%d).sql # Update everything
wp --path="$WP_PATH" --allow-root core -weight: 500;">update
wp --path="$WP_PATH" --allow-root plugin -weight: 500;">update --all
wp --path="$WP_PATH" --allow-root theme -weight: 500;">update --all # Check for issues
wp --path="$WP_PATH" --allow-root doctor check --all - Cloud-hosted (no maintenance of the dashboard itself)
- White-label client reports that look professional
- Good uptime monitoring
- One-click safe updates (tests after updating)
- Works with WooCommerce - Gets expensive at scale. 20 sites at $2/site = $40/month. 50 sites = $100+/month.
- You're dependent on their infrastructure. If ManageWP has downtime, so does your monitoring.
- Less customizable -- you get what they give you
- Premium features (performance checks, SEO audits, etc.) add cost quickly - Free core with no per-site fees
- Good extension ecosystem
- Works well at 50+ sites
- You control the data and the dashboard - You're now managing another WordPress site (the MainWP dashboard)
- Extensions add up: advanced reports, client portal, vulnerability scanning are paid
- Requires more setup than ManageWP
- The child plugin must be installed on every site you manage - Zero monthly cost
- Runs on your schedule, not a third party's
- Fully customizable (add any check you want)
- Generates reports exactly how you want them
- No dependency on external services staying online
- Handles edge cases that dashboards don't - Takes time to build (10-15 hours upfront)
- Requires SSH access to servers (not always available on shared hosting)
- No visual dashboard (unless you build one)
- Debugging when something goes wrong requires CLI knowledge - Monthly cost: $30
- Time: ~3 hours/month reviewing dashboards + handling flagged issues
- Annual: $360 + ~36 hours of your time - Monthly cost: ~$8
- Time: ~3 hours/month + occasional dashboard maintenance
- Annual: ~$100 + ~36 hours of your time - Monthly cost: $0
- Build time: 12-15 hours (one time)
- Monthly time: ~45 minutes reviewing automated reports
- Annual: $0 + ~9 hours of your time - ManageWP: 36 hours x $80 = $2,880 in time + $360 in fees = $3,240/year
- Custom scripts: 12 hours build + 9 hours/year = 21 hours x $80 = $1,680 year one, $720 year two onward - ManageWP: clients who want a client portal and professional white-label reports. I bill the ManageWP cost to the client.
- Custom scripts: my standard setup for most clients. Free, runs exactly as I need.
- MainWP: inherited from a previous agency setup. I'm gradually moving those sites to scripts. - You're less technical and want a polished dashboard
- You have fewer than 20 sites
- You can bill the cost to clients
- You want one-click safe updates with rollback - You have 20+ sites
- Data ownership matters to you
- You're comfortable running another WordPress installation - You're comfortable with the command line
- You want zero ongoing cost
- You have SSH access to client servers
- You want maximum flexibility - You're not comfortable debugging shell scripts
- Your clients are on shared hosting without SSH
- You want a visual dashboard without building one - I automated WordPress maintenance across 8 sites
- How I land WordPress maintenance clients with cold email
- WordPress site running slow? 30-minute diagnosis checklist
- The WordPress maintenance business: real numbers and pricing
- WooCommerce maintenance: 8 checks that keep payments alive
- MainWP vs ManageWP vs custom scripts
- WordPress security: 10-minute monthly checklist