Tools: Ultimate Guide: MainWP vs ManageWP vs custom scripts: how I manage 15+ WordPress sites in 2025

Tools: Ultimate Guide: MainWP vs ManageWP vs custom scripts: how I manage 15+ WordPress sites in 2025

The three real options

ManageWP: best for non-technical agency owners

MainWP: best for large volumes and data ownership

Custom scripts: best for technical freelancers who want full control

The math: what each approach actually costs

What I actually use

Which should you choose?

The custom script option, ready-made

More in this series: WordPress Agency Toolkit Managing multiple WordPress sites for clients is a solved problem -- but the solution depends on how many sites you manage and what your actual bottleneck is. I've used all three approaches. Here's when each one makes sense. ManageWP -- cloud-hosted dashboard, monthly subscription (~$2/site or $100+/month flat), handles updates, backups, uptime, performance checks. Polished UI. MainWP -- self-hosted on your own WordPress install, free core, paid extensions for advanced features. You own the data. Custom scripts -- WP-CLI + SSH + your own automation. Free forever, runs exactly how you want, no third-party dependencies. ManageWP is the easiest to set up and the easiest to explain to clients. The dashboard looks like a proper SaaS product. Best for: agencies managing 5-20 sites who want a polished tool and don't mind paying for it. MainWP installs on a WordPress site you control. Your data stays yours. Best for: agencies with 20+ sites who want to own their data and avoid per-site pricing. If you're comfortable with the command line, WP-CLI + SSH + bash/PowerShell gives you more flexibility than either dashboard solution. Best for: technical freelancers managing 8+ sites who want the lowest possible ongoing cost and maximum control. Assuming 15 sites, 2 hours/month manual time per site without automation: MainWP (free core + $100/year extensions): Custom scripts (built once): At $80/hour, the time saved by custom scripts vs ManageWP: Custom scripts break even in year one and cost 80% less by year two. I use all three, depending on the client: For the sites on custom scripts, I run a maintenance script that handles updates, backups, security checks, and HTML report generation -- one command per site, or one command for all sites via a JSON config file. Choose custom scripts if: Don't choose scripts if: If the scripts approach sounds right but you don't want to spend 12 hours building them from scratch, I put the full toolkit together: bulk update script (Bash for Linux, PowerShell for Windows), security audit, uptime monitor, HTML report generator, and clients.json template. WordPress Agency Automation Bundle -- 19 PLN, use DEVTO for 20% off. What do you use for managing multiple WordPress sites? Curious whether the community has moved more toward cloud dashboards or self-hosted in recent years. All tools and templates: devautomation.gumroad.com Templates let you quickly answer FAQs or store snippets for re-use. Hide child comments as well For further actions, you may consider blocking this person and/or reporting abuse

Command

Copy

#!/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