Uptime Monitoring for Agencies: A Practical Setup for 50+ Client Sites
There is a moment every web agency knows. A client calls: "our site is down." And the honest internal answer is: we did not know. Now you are debugging under pressure, with the client watching, having already lost the one thing agencies sell beyond deliverables: the feeling that someone competent is watching their stuff.
The fix is not heroics. It is a boring, well-organized monitoring setup that scales past the point where any human could keep the portfolio in their head. This is the setup I recommend after helping agencies put dozens of client sites under watch: what to monitor per client, how to keep 200 monitors from becoming 200 daily notifications, and how to turn the data into the monthly report clients actually value.
The Baseline: What Every Client Gets
Resist the temptation to design per-client monitoring from scratch. Define one standard package and apply it to everyone. Ours is four monitors per client site:
- HTTP monitor on the homepage - 1-minute checks for production sites. Verifies status code and response; this is your "the site is up" signal and your response time trendline.
- HTTP or API monitor on one meaningful backend path - the contact form endpoint, the store's cart, the search. A homepage can render fine while everything dynamic is broken; HTTP 200 is not proof of health.
- SSL monitor - certificate validity, issuer, and expiry alerts. Auto-renewal fails silently more often than anyone admits, and an expired certificate looks like a hacked site to a client's customers.
- Domain expiry monitor - automated WHOIS tracking. Agencies rarely control the client's registrar account, renewal reminders go to an inbox nobody reads, and a lapsed domain is a catastrophe you get blamed for. This monitor is the cheapest insurance in the whole setup.
Add a ping or port monitor for clients where you also manage the hosting (database port, mail port), and skip it for clients on managed platforms.
Four to six monitors per client, 50 clients: you are in the 200-300 monitor range. On UptyBots that is Business plan territory: 250 monitors with 1-minute checks at $49.99/month, which works out to about a dollar per client per month. Price it into your care plans accordingly; monitoring is the most resellable line item in a maintenance contract.
Naming: The Difference Between a System and a Junk Drawer
With five monitors this does not matter. With 250 it is everything. Prefix every monitor with the client slug:
acme - www acme - api /search acme - SSL
acme - domain bluesky - www bluesky - SSL ...
Everything downstream gets easier: scanning the dashboard groups visually by client, alerts identify the client in the subject line, and any filtering or automation can key off the prefix. This also makes the portfolio legible to AI tooling, which I will get to below.
Alert Routing That Survives 50 Clients
The failure mode of agency monitoring is not missing alerts. It is alert fatigue: so much noise that the team tunes out, and then the one real outage scrolls past unread. (Alert fatigue is a monitoring killer.) Three rules keep it sane:
- Downtime alerts go to a channel the whole team watches - Telegram or a webhook into your team chat. Not to one person's inbox. On-call is a rotation, not a personality trait.
- Expiry alerts (SSL, domain) go to the person who handles renewals. These are not incidents; they are tasks with a deadline. Mixing them into the incident channel teaches people to ignore that channel.
- Use webhooks to route programmatically when you outgrow manual routing. A small receiver can parse the monitor name prefix and post to per-client channels or open tickets in your PM system automatically. UptyBots logs every webhook delivery, so you can audit what was sent where.
The Monthly Report: Where Monitoring Pays for Itself
Monitoring data has a second job at an agency: proving the value of the retainer. UptyBots keeps historical analytics for up to 365 days - uptime percentages, response time trends, SSL health, domain timelines. That is your monthly client report, ready-made:
- Uptime percentage for the month, with any incidents listed (when, how long, what happened)
- Response time trend - flat is good news worth stating; degrading is a hosting upgrade conversation backed by data
- Certificates renewed and domains tracked - the disasters that did not happen
Clients do not remember zero outages. They remember the report that says "your site was up 100% this month, we renewed your certificate on the 12th, and your domain is safe until 2028". If you want the client to see status live instead of monthly, you can embed a status widget on their site or your client portal.
Onboarding a New Client in Minutes, Not an Afternoon
The standard package is four to six monitors, so onboarding by dashboard clicking is fifteen or twenty minutes of form-filling per client. Two ways to make it instant:
The REST API. A script that takes a client slug and domain list and creates the standard package via the API. Write once, use for every new client.
Or skip the script and use MCP. If your team uses Claude, Cursor, or any MCP-capable assistant, connect the UptyBots MCP server and onboarding is a sentence:
> New client "northwind", site https://northwindbakery.com.
Create our standard package: HTTP monitor on the homepage
with 1-minute checks, HTTP monitor on /order,
SSL monitor, and a domain expiry monitor.
Prefix all names with "northwind - ".
The assistant creates all four monitors with correct names and settings. The same connection answers portfolio questions during the week ("which client monitors had incidents this weekend?") and drives the deploy-window routine ("pause the acme monitors, we are migrating their hosting tonight"). For the team-wide setup, one named API key per person keeps revocation clean when staff changes.
The Setup Checklist
- Define your standard per-client package (start with the four above).
- Adopt the client-prefix naming convention before you scale, not after.
- Route downtime alerts to a team channel; route expiry alerts to whoever renews things.
- Put the monthly uptime report into every care-plan deliverable.
- Automate onboarding via API script or MCP assistant.
- Review the portfolio weekly: ten minutes, worst performers first.
Frequently Asked Questions
Which plan fits an agency?
The Business plan ($49.99/mo, 7-day free trial) includes 250 monitors with 1-minute checks and priority support - roughly 50 clients on the four-monitor standard package. Smaller agencies fit in Pro (50 monitors, $14.99/mo). You can start free with $5 in credits to model your setup first.
Can clients get their own alerts?
Alert channels are configured per account, and notifications are configurable per monitor - so you decide which alerts reach whom. Most agencies keep alerting internal and give clients the monthly report or an embedded status widget instead; waking a client with a 3 AM alert for a 40-second blip creates panic, not trust.
We manage sites on very different stacks. Does that matter?
No. The checks are external: HTTP(S), API, ping, port, SSL, and WHOIS lookups against whatever is publicly reachable. WordPress on shared hosting and a headless storefront on a container platform get monitored the same way.
How do we monitor staging and development sites?
Same monitors, longer intervals (staging rarely needs 1-minute checks), and pause them during planned work - one sentence via MCP or two clicks in the dashboard - so your team never learns to ignore staging alerts.