When I was hired for my first Web Development position at my first agency, they we’re offering “WordPress maintenance” to only a few clients. But even with only 30 clients, monthly backups & updates were eating up several work days each month, and the process was unreliable at best.
In the beginning, this was the obvious way to do maintenance for clients. Once a month, log in to each site and perform all required updates. Use a tool like BackupBuddy to do automated monthly backups, which were stored on the server of each individual website, and hope for the best.
But as we grew, this process became unmanageable, and it was obvious that something had to change. We identified several issues with that process, and developed a new system that makes managing 1-N number of WordPress websites a breeze.
The first problem was an issue of man hours. We needed to be able to perform maintenance tasks. We use ManageWP for this task, and it performs flawlessy. At the time of this writing, I manage 108 WordPress websites on this single platform, and average 2 hours a month of manual labor performing maintenence tasks.
The ManageWP platform automates nearly all of our maintenance, including:
- Daily backups, stored remotely for 90 days and restorable with a single click.
- Daily performance and site speed measurements.
- Daily malware scans.
- Broken link detection.
- Uptime monitoring.
- SEO & Analytics tracking.
- And White labeled maintenance reporting to all of our clients.
Plugin and theme updates can be done manually across all or some sites at once, or in our case completely automated. Our system is configured to run all updates and database optimizations at 3am, every Monday morning.
When I arrive at my desk on Monday, I simply have to double check that everything is ok, and sweep up any errors that may have happened.
Further, ManageWP let’s me make bulk changes to themes, plugins, and other WordPress settings with ease. For instance, I can change our agency user account password across all sites and once. Or install and activate a specific plugin on every site at once. Additionally, you can login to each site from their dashboard without the use of a username/password, easing the burdon of our marketers blogging on clients sites.
As previously mentioned, the original maintenance process used tools installed in WordPress itself to perform backups once a month, and store the copy on the same server. This can be a problem for several reasons.
Your site is only as safe as your last restorable backup
It doesn’t matter how often you back a site up. If you can’t restore that backup, the entire system is useless. Storing the backup on the server itself means that if something happens to the site, you likely won’t be able to restore your backup. Either the backup could be compromised, or inaccessible, or you can’t load WordPress to do the restoration.
Using ManageWP we are able to perform daily, automated backups that are stored remotely. No matter what happens to the site, the backup can be restored with a single click. Or if necessary, pushed to a new server, so even if the entire server crashes, the site can still be migrated to a new server in ~10 minutes.
At that time, all of our clients sites were strewn across dozens of different hosts, all owned by the client. We had no way of ensuring a standard stack, standard PHP version, etc. Will they have git? Further, if something happened, we were at the mercy of a plethora of ever changing usernames and passwords to access our clients shared hosting in order to fix it.
We consolidated everyone onto a single hosting platform, ours. Not only did this bring additional revenue, it allowed us to control the environment. We know exactly what PHP version is running, what tools are installed, and how to access a server if needed.
Currently, we are using Cloudways, and it’s by far the best hosts I’ve ever used. We are able to spin up small server instances for individual sites or groups of sites, and they are lightning fast. We doubled, and tripled most of the sites we migrated just by moving hosts from cheaper shared hosting.
They are preconfigured server images designed specifically for WordPress, including Varnish, Redis, and a few other handy features. And best of all, we get amazing support so the burdon of System Administration is taken care of.
The last problem that we knew we needed to address was that of DNS access. We’re not in the business of registering domains for clients, they usually bring their own, so when DNS changes need to happen we have to chase down access.
This can be a big problem when you need to react quickly.
To combat this issue, we moved all of our DNS hosting to Cloudflare. Domains can all still live in the clients domain account, but the nameservers are changed to Cloudflare and we have full control over the DNS.
And since Cloudflare is a DNS proxy, changes to a record are almost instant. When we do have to move a site and change the A record, the change is usually reflected within 5 minutes. No need to wait for propogation.
Additionally, cloudflare offers a wide range of tools that make managing websites at scale a breeze. DDoS protection, force HTTPS, CDN(ish), and caching that makes a significant performance improvement.
With this setup, managing 100, 150, 1000 WordPress websites becomes a breeze. In fact, the majority of maintaining WordPress is monitoring the automated tasks, and sweeping up. Everything has a place, and everything is in it’s place.