How Web Agencies Turn Client Hosting into Monthly Recurring Revenue

Worked numbers for an agency hosting 20 or 50 client sites on a reseller plan: care plan tiers, invoicing, churn, support load and the technical setup.

Published
Reading time
5 min

Project work pays well and then stops. An agency that builds twenty sites a year starts every January at zero. Hosting and maintenance is the usual fix: a small monthly fee per client that arrives whether or not you sold anything that month. Done badly, it becomes an unpaid support desk. This post works through the numbers at 20 and 50 client sites, what to put in the plan, how to bill it, and the technical setup that keeps the support load small.

The cost side is almost nothing

The raw hosting cost per client site on a reseller plan barely affects the decision. Using our own reseller plans as the example:

20 client sites 50 client sites
Plan Partner Grow Partner Pro
Accounts on the plan 25 50
Storage pool 30 GB SSD 60 GB SSD
Monthly traffic pool 600 GB 1200 GB
Plan price, monthly $26.99 $44.99
Hosting cost per site $1.35 $0.90
Plan price, annual $269.90 $449.90

At 50 sites the plan is full, so plan the next step at 40, not at 50.

Tip: the account count is rarely what you run out of first. 60 GB across 50 sites is 1.2 GB each on average, mail included. A few clients with ten years of mail will use the pool long before the account limit, so set a disk limit per package.

What you are actually selling

Nobody pays $59 a month for $0.90 of disk. They pay for not having to think about the website. So the product is a care plan, and hosting is one line inside it. A reasonable three-tier structure, with prices as illustrations to adapt to your market:

Hosting Care Care Plus
Example price per month $25 $59 $129
Hosting, SSL, daily backups yes yes yes
Core, plugin and theme updates no weekly weekly
Uptime monitoring no yes yes
Content changes hourly rate 30 min a month 2 hours a month
Response time 2 working days 1 working day same working day

Three rules keep this profitable:

  1. Define the allowance in minutes, and say it does not roll over. "Small changes" without a number becomes a redesign.
  2. Write down what is excluded: new pages, new features, third-party plugin licences.
  3. Make the middle tier the default in every proposal.

Worked numbers at 20 and 50 sites

Assume every client is on the $59 Care tier; a real book will have a mix.

20 sites 50 sites
Monthly recurring revenue $1,180 $2,950
Annual recurring revenue $14,160 $35,400
Hosting plan per year (monthly billing) $323.88 $539.88
Hosting as a share of revenue 2.3% 1.5%

Hosting is not the real cost. Time is. Put your own figures in, but as a planning assumption take 30 minutes per site per month for updates, checks and the change allowance, at an internal cost of $60 an hour:

Per site, per month Amount
Care plan price $59.00
Hosting (50-site case) $0.90
Labour, 30 min at $60/h $30.00
Left over $28.10

At 50 sites that is 25 hours of work a month and about $1,400 a month left after hosting and labour. Every minute you automate out of the 30 is margin, and one site that takes two hours a month wipes out the margin of two good ones. Pricing from the cost side is worked through in how to price hosting plans as a reseller.

Invoicing without chasing

  • Bill in advance, never in arrears.
  • Take a card or direct debit mandate at signup. Bank transfer on a monthly invoice means twelve reminders a year per client.
  • Offer annual at a discount. It improves cash flow and removes eleven chances to cancel.
  • Start the plan at launch, as a line in the build proposal. Selling it six months later is much harder.
  • Put the suspension policy in the contract, then let the billing system enforce it so it is never personal.

Up to about fifteen clients, your accounting software's recurring invoices are enough. Beyond that, a billing system that also suspends and unsuspends accounts saves real time; connecting WHMCS to DirectAdmin shows that setup.

Churn, and why it is lower than you fear

Hosting clients leave for three reasons: the business closes, a new agency rebuilds the site, or something went wrong and nobody told them. Only the third is in your control.

If you have 50 clients and lose one every two months, that is six a year, 12% annual churn, and $354 of monthly revenue to replace by year end at $59 each. Launch more than six sites a year with a plan attached and the base grows.

What keeps clients is a short monthly report (updates applied, uptime, backups taken) and hearing about problems from you before they notice.

Tip: keep every client domain in the client's legal ownership even when you manage it. It removes the ugliest possible argument at the end of a relationship.

Support load: where the time goes

In our experience running shared and reseller hosting, a large share of support questions are about email, not websites: a new phone, a full mailbox, a message that went to spam. Decide early whether mailboxes are in your plan. If they are, write a one-page setup guide and send it instead of answering each time.

A checklist that keeps the load flat as you grow:

  • One support address feeding one shared inbox. No requests by text message.
  • A record per client: registrar, DNS location, PHP version, paid plugin licences.
  • A fixed update day each week, so breakage happens when you are at your desk.

The technical setup that protects the margin

One hosting account per client. Never stack ten client sites as extra domains under one account. Separate accounts mean a hacked plugin on one site cannot read the files of another, and a client who leaves gets a backup of only their own data. On a CloudLinux platform each account also has its own resource limits, explained in how LVE isolates accounts.

Backups you have tested. Our reseller platform takes daily off-site backups kept for 14 days. That covers a bad update noticed this week. It does not cover a hack discovered after a month, so keep a monthly copy elsewhere, and restore one site every quarter to prove the process.

Updates as a routine, not a mood. Where SSH and WP-CLI are available on the account, a weekly pass per site is four commands:

bash
cd ~/domains/client-site.com/public_html
wp core update --minor
wp plugin update --all
wp theme update --all
wp core verify-checksums

Run major version updates on a copy first; WordPress staging covers the clone, test and sync cycle. Without shell access, the WordPress Manager in the panel logs you in to each dashboard without a password, which keeps the same pass quick by hand.

Tip: move sites to newer PHP versions one at a time on your own schedule. The alternative is many of them breaking on the day an old version is withdrawn.

A realistic first year

Start with existing clients. Offer each one the care plan with a start date, move the willing ones onto your reseller account, and attach the plan to every new build from then on. Twenty sites on the middle tier is $14,160 a year of predictable income against a few hundred dollars of hosting. The agency page shows how the reseller plans map onto that setup.

#business#agency#reseller#recurring-revenue#care-plans

Keep reading

More from Hosting Business

All guides

Hosting Business

Reseller Hosting Explained: How It Works and Who It's For

What a reseller hosting plan is, how accounts and packages work in DirectAdmin, what overselling means in numbers, and when a VPS is the better buy.

6 min read →

Hosting Business

How to Start a Web Hosting Business in 2026 (Step by Step)

What a hosting business really is, the reseller route that needs no servers, the numbers behind a viable plan, the legal basics and the first 90 days.

4 min read →

Hosting Business

White-Label Hosting: How to Sell Under Your Own Brand Without Servers

Every place a customer can see who hosts them, and how to brand each one: nameservers, panel, billing, email records, plus the checks to run before launch.

6 min read →