📞 Phone: 03111092111💬 WhatsApp Us

Agency Hosting

Manage 50 Client Websites Without Hiding Maintenance Labor

by Adiba Technical Team9 min read

To manage 50 client websites, an agency needs an operating model for an ongoing book of sites. Each account needs a risk tier, a maintenance price that is not the hosting line, a named owner, a rule for which updates may share a window, a restore drill, and a labor log. Fifty is the size of that book. It is not a claim that a server, a disk quota, or a reseller plan can hold that many stores.

Editorial review date: 10 October 2026. The original publication date is unchanged.

Fifty names are a book, not a capacity claim

A hardware count asks how many accounts a plan will accept. An operating model asks who may change each site, how often, on whose approval, and whether those hours were priced.

The other article is the cheap reseller hosting purchasing worksheet. That page is the buying decision: what the upstream account includes, what it leaves out, and which costs sit beside the provider invoice. This page is the monthly system after that purchase. A filled buying sheet is not a maintenance calendar.

The work of agency hosting still needs that split. A panel login does not assign an owner, freeze a plugin list, or record hours against one client. The review row shows the tier, the approver, the plugin list, the next drill, and this month's hours. A blank field means the site is not ready for shared work.

Use risk tiers when you manage 50 client websites

Give each site one tier before any shared window. The tier sets the cadence, who may approve, and whether a batch is allowed. The rows are an illustration, not a product menu and not a map of servers. Retag the site when its job changes. A brochure becomes a shop the day a cart takes payment.

TierUpdate cadenceWho may approveMay join a batch
BrochureMonthly core and plugin updates on a frozen listNamed maintainerYes, when the plugin list still matches the last written approval
EditorialEvery two weeks for core and the frozen plugin list. Content edits stay outside the update batchNamed maintainer, with the editor told before a plugin changeOnly the frozen plugin set. A new editorial plugin stays out
ShopOn a copy first, then monthly, and again before a campaign. Checkout is rechecked after each updateShop owner or technical lead, in writingNo
CustomOn the custom release calendar, not a shared windowDeveloper who owns the custom code, in writingNo

A brochure may join a batch when the named maintainer approves monthly updates and the plugin list still matches the last written approval. An editorial site may join only for that frozen list. Posts stay outside the window, and a new plugin stays out. A shop stays out, with copy tests and written approval, so a failed checkout does not travel with the brochures. A custom site stays out until the developer who owns the code approves the release.

Price maintenance on its own line

Hosting pass-through is money collected and paid onward for the account. Maintenance is the price of judgment, updates, replies, and restore drills. Separate lines on the invoice and on the internal sheet keep those hours visible. One line called hosting hides them until a shop update takes an unpriced day.

The hosting line is the pass-through. The maintenance line is the retainer for a named tier, a named cadence, and a named owner. Work outside the cadence is an exception with its own hours. Shop care at a brochure price is a different risk decision, so retag the site or refuse the request. Write the internal hourly rate on the sheet. If hours and tier disagree for two months, reprice before you resize the account.

Hold plugin and update variance to a written list

Variance is a change that moves the update set, the test, or the approver off the tier rule: a plugin, a theme, a PHP change, a snippet, or a new mail path. Write it down before installation, or the site leaves the batch. A plugin from the client's own login still counts.

Keep the frozen list short: core, one known performance plugin, forms, a backup method you can restore, and the live theme. Anything else needs an owner, a reason, and a decision on whether the tier still fits.

WordPress hardening notes treat updates, permissions, and admin access as ongoing administration. Record those decisions on the row. They do not choose the tier or the price.

The WHM reseller chapter describes account administration inside limits the host already set. Creating an account does not approve a shared update window, and a site count is not spare capacity. Host limits stay on the buying sheet. Tier rules stay on this operating sheet.

Update the row the same day a variance is approved. A chat message is not a record the next maintainer can find.

Name an owner before the month starts

Each site has a maintainer, an approver, and a client contact, even when one person holds two of those roles. The maintainer does the work. The approver may allow it. The contact answers when a test needs a real page, product, or mailbox. An empty approver cell means the work waits.

Record the batch, the exception, and the restore drill on the task desk, each with an owner and a date. Log exception hours on that client: a broken form, a shop error, a plugin the client installed, or a failed drill. A general support bucket hides who consumed the month. A new maintainer inherits the row, not a folder of logins.

Batch only work that was approved while it was still low risk

A batch is one window and one checklist for sites that still match the same approved plugin set. It is prepared time for brochure work already cleared. A long login list is not an approval.

The runner checks tier, frozen list, and approval date, then updates that set, checks the home page and the form, and writes the result. A failure becomes its own task before the runner continues. Editorial sites join only for the frozen set. Shops and custom sites stay out. A new cart stays out until the site is retagged and a shop owner approves.

Stop if the copy test fails, if an unapproved plugin appears, if the approver cell is blank, or if the tier changed. Later hours are exception hours.

Run a restore drill on a copy

WordPress backup guidance treats a backup as files and a database you can restore, then checks that the site works. An archive never opened on a copy is an unread promise. Run the drill on a copy, record the minutes, and name the person.

Match the drill to the tier. A brochure can use a quarterly copy that loads, sends the form, and opens admin. An editorial site needs a monthly copy with recent posts and media. A shop adds a pre-campaign checkout on a named test product. A custom site is drilled on each release so the archive includes the code that changed.

Record the recovery point, the minutes, the person, and the result. A failure is a dated task. Keep the locker off the live account, which is why the margin sheet carries a locker share.

Show the hours on a per-client margin sheet

The margin worksheet below is illustrative. It is one invented client for one month, not an Adiba price, not a quote, and not a forecast. Replace every figure with a real invoice and real hours.

LineAmount in PKRWhat the line means
Hosting pass-through1500Collected and paid onward. Not margin. Illustrative, not an Adiba price
Maintenance fee6000Separate price for this client's maintenance in the month
Technician time32004 hours at an internal PKR 800
Backup locker share200This client's share of the off-account backup store
Payment fee1202 percent of the PKR 6000 maintenance fee
Remainder before the owner's time24806000 minus 3200 minus 200 minus 120

Read the arithmetic in order. The maintenance fee is PKR 6000. Technician time is 4 hours at an internal PKR 800, and 4 times 800 is PKR 3200. The backup locker share is PKR 200. The payment fee is 2 percent of the PKR 6000 maintenance fee, and 2 percent of 6000 is PKR 120. The remainder is PKR 6000 minus PKR 3200 minus PKR 200 minus PKR 120, which is PKR 2480. That remainder sits before the owner's time.

The hosting pass-through of PKR 1500 is not inside that subtraction. It is collected and paid onward. It is not margin. Adding it to the PKR 6000 and treating PKR 7500 as profit counts money that already has a destination.

Owner time sits outside the PKR 2480. If the owner worked beyond the four technician hours, those hours come off the remainder. If the owner personally worked those four hours, they are already the technician line and are not deducted again.

Do not multiply this client by fifty and call the product a company margin. Log actual minutes, convert them at the internal rate, and reprice when the hours and the tier disagree. Each entry records the date, the site, the tier, the work type, the minutes, the person, and the outcome. Work types stay plain: batch, exception, restore drill, and client reply.

Close the month before you add a site

Confirm changed tiers, list unapproved variances, and batch only rows that still say yes. Shops and custom sites get their own windows. Put drills on that same calendar, log the hours, and update the sheet before the next invoice. A new site needs a tier, an owner, an approver, a frozen list, and a maintenance price separate from hosting. A blank field is a favor. A panel that accepts the login has not accepted the site into the operating model.

Price one real client's last month of hours before you accept a fifty-first site.

AT

About the Author

Adiba Technical Team

Adiba Technical Team is the byline on this operating note. The margin sheet is illustrative. It is not a hardware capacity claim.