If you run a web agency -- design, development, managed hosting, or all three -- you have a problem that solo developers do not: you are responsible for sites you did not build, running on infrastructure you do not control, for clients who will blame you when something goes down. Whether you manage 10 client sites or 200, you need uptime monitoring that scales with your client list without turning into an operational nightmare.
The challenge is not just monitoring more URLs. It is organizing monitors by client, routing alerts to the right people, giving clients visibility without giving them the keys to your dashboard, and doing all of this at a cost that does not eat into your margins.
Here is how to set up agency-grade monitoring with CronAlert, covering team organization, per-client status pages, alert routing, and the billing math at scale.
Organizing monitors by client
The first mistake agencies make with monitoring is dumping every client's URLs into a single flat list. At 5 clients, it is manageable. At 30, you are scrolling through a wall of monitors trying to figure out which ones belong to the client who just called you about a downtime incident.
CronAlert's team feature solves this. In CronAlert, every resource -- monitors, alert channels, status pages, API keys -- belongs to a team. You can create a separate team for each client, giving you a clean boundary between client environments.
There are two approaches agencies typically take:
One team per client. Create a CronAlert team for each client. That client's monitors, alert channels, and status page all live in their own team. When you switch to a client's team, you see only their resources. This is the cleanest separation and works well if you have clients with complex setups (multiple domains, staging and production monitors, dedicated alert channels) or if you plan to give client team members direct access to the CronAlert dashboard.
One team for your agency. Keep everything in a single team and use naming conventions to organize monitors -- prefix monitor names with the client name or project code. This is simpler to manage if you have many clients with only 2-3 monitors each and you do not need per-client access control. The tradeoff is that alert channels are shared, so you need to be more deliberate about which channels are assigned to which monitors.
For most agencies, the one-team-per-client approach is worth the small extra overhead. It prevents alert cross-contamination, makes status pages cleaner, and lets you bring client team members into their own workspace without exposing other clients' data.
What to monitor for each client
The specific monitors depend on the site, but here is a baseline that works for most client sites an agency manages:
- Homepage. The bare minimum. If the homepage is down, everything downstream is likely broken too.
- Key landing pages. If the client runs ad campaigns, monitor the URLs those campaigns link to. Wasted ad spend from a broken landing page is money the client will want back from you.
- Contact or lead generation pages. For many agency clients, the website's primary job is capturing leads. A broken contact form means lost business that the client will never know about.
- SSL certificate. SSL monitoring catches expiring certificates before they cause browser warnings that scare away visitors. This is especially important for clients on shared hosting where certificate renewals are not always automatic.
- API endpoints. If the site has a headless frontend, e-commerce backend, or third-party integrations, monitor those API endpoints separately. A 200 on the homepage does not mean the booking widget or product feed is working.
For a typical brochure site, 2-3 monitors cover it. For WordPress sites with WooCommerce, membership areas, or complex plugin setups, you might need 5-8 monitors to cover the critical paths.
Quick math: An agency with 30 clients averaging 4 monitors each needs 120 monitors. CronAlert's Team plan covers 500 monitors at $20/mo -- more than enough headroom to grow your client list without hitting limits.
Per-client status pages
When a client's site goes down, the first thing they do is email or call you. The second thing they do is wonder how long it has been down and whether you even noticed. A public status page answers both questions before they have to ask.
For each client, create a CronAlert status page with their relevant monitors. Share the URL with the client. They can bookmark it and check it anytime to see current status, uptime history, and any active incidents -- without needing a CronAlert account or access to your monitoring dashboard.
This does three things for your agency:
- Reduces support volume. Clients can self-serve status information instead of emailing you. During an outage, this keeps your inbox clear so you can focus on fixing the problem.
- Builds trust. Proactively sharing a status page signals that you take uptime seriously and have nothing to hide. It shows the client you are monitoring their site, not just promising to.
- Documents your SLA. The status page's uptime history is a record of the uptime you have delivered. When contract renewal comes around, you have data to point to -- not just anecdotes.
CronAlert's free plan includes 1 status page, the Pro plan includes 3, and the Team and Business plans include unlimited status pages. For agencies, unlimited status pages is usually a must-have, which makes the Team plan the natural fit.
Alert routing per client
Getting alerted when a site goes down is the easy part. Getting the right alert to the right person for the right client is what separates a clean agency setup from alert chaos.
If you are using the one-team-per-client approach, each team has its own alert channels. Set up the channels that make sense for that client's workflow:
Internal team channel. A Slack channel or Discord channel for your dev team -- something like #client-acme-alerts. This is where your engineers see the alert first and start investigating.
Client notification. An email alert channel pointed at the client's point of contact. Not every client wants real-time downtime alerts, but many do -- especially clients who manage their own ad spend and need to pause campaigns immediately when the site goes down. Ask the client what they prefer during onboarding.
Webhook to your ticketing system. If your agency runs on a ticketing system like Jira, Linear, or even a simple Trello board, use a webhook alert channel to auto-create a ticket when a client site goes down. This ensures nothing falls through the cracks, especially outside business hours.
Escalation for critical clients. For your highest-value clients or clients with strict SLAs, set up PagerDuty integration or a dedicated alert channel that pages whoever is on call. Not every client needs on-call escalation, but the ones paying for managed hosting with 99.9% SLA guarantees certainly do.
Avoid alert fatigue. Do not route every client's alerts to the same Slack channel. At 30+ clients, you will get so many notifications that your team starts ignoring them. Dedicated channels per client or per client tier (critical, standard, low-priority) keep alert noise manageable.
Managing dozens to hundreds of client sites
At scale, manual monitor management through the web dashboard becomes tedious. Here is how agencies operating at volume keep things efficient.
Use the API for bulk operations. CronAlert's REST API lets you create, update, and delete monitors programmatically. When you onboard a new client, a script can create their team, set up monitors for their domains, configure alert channels, and create a status page -- all in one automated flow. When a client leaves, the same script tears everything down cleanly.
Standardize your monitor templates. Define a standard set of checks per client type. A WordPress brochure site gets homepage + contact page + SSL. A WooCommerce store gets homepage + product page + cart + checkout + SSL. An API-driven web app gets homepage + health endpoint + key API routes + SSL. Having a template means onboarding takes minutes, not hours.
Use multi-region monitoring for international clients. If your clients serve users globally, single-region checks miss partial outages. CronAlert's multi-region monitoring checks from 5 locations worldwide. This is particularly important for clients on CDNs where a regional edge failure can take down the site in one geography while it stays up everywhere else.
Review and prune regularly. Client sites change. Pages get removed, domains get consolidated, staging environments get spun down. A quarterly review of your monitor list prevents you from paying for monitors that check URLs that no longer matter -- or worse, generating false alerts on decommissioned pages.
Setting up monitoring during the initial build
The best time to set up monitoring is before the client's site launches, not after the first outage. Work it into your project delivery checklist:
Create the client's team
Before launch, create a CronAlert team for the client. If you are on the Team or Business plan, this takes seconds from the team settings page.
Add monitors for critical paths
Set up monitors for the homepage, key pages, and any API endpoints. Point monitors at the production URLs. If the site is not live yet, create the monitors paused and enable them on launch day.
Configure alert channels
Add your internal Slack channel, the client's email contact, and any webhook integrations. Test the alert channels by temporarily pointing a monitor at a URL that returns an error.
Create the client's status page
Build a status page with the relevant monitors and share the URL with the client. Include it in the project handoff documentation. This shows the client that monitoring is active from day one.
Document the monitoring setup
Add the monitoring configuration to your internal docs for the client -- what is monitored, who gets alerted, and where the status page lives. This is essential for knowledge transfer when team members rotate or when someone else needs to handle an incident for this client.
The billing math for agencies
Monitoring is an overhead cost, and agencies operate on margins. Here is how CronAlert's pricing works out for different agency sizes:
| Plan | Cost | Monitors | Status Pages | Team Members | Agency Fit |
|---|---|---|---|---|---|
| Free | $0/mo | 25 | 1 | 1 | Freelancer with 5-8 clients |
| Pro | $5/mo | 100 | 3 | 1 | Small agency, 20-30 clients |
| Team | $20/mo | 500 | Unlimited | 10 | Mid-size agency, 50-100+ clients |
| Business | $50/mo | Unlimited | Unlimited | Unlimited | Large agency, 100+ clients, SSO needed |
The Team plan at $20/mo is the sweet spot for most agencies. At 500 monitors and unlimited status pages, you can comfortably manage 100+ client sites. Even if you only charge clients $5/mo as part of a hosting or maintenance fee for "uptime monitoring included," the plan pays for itself with 4 clients. More realistically, monitoring is part of a $50-200/mo managed services package, making the $20 cost negligible.
For larger agencies that need SSO/SAML for enterprise compliance or have more than 10 team members who need dashboard access, the Business plan at $50/mo removes all limits. Compare that to Uptime Robot's $48/mo plan that caps at 50 monitors with 1-minute intervals, and the value is clear.
The cost of downtime for even a single client site far exceeds what you will spend on monitoring in a year. A 2-hour outage on a client's e-commerce site can cost more in lost revenue than a decade of CronAlert billing.
FAQ
How many monitors does an agency typically need?
It depends on how many client sites you manage and what you monitor per site. A typical setup is 3-5 monitors per client -- homepage, key landing pages, API endpoints, and SSL certificate. An agency with 20 clients needs 60-100 monitors. CronAlert's Pro plan covers 100 monitors at $5/mo, and the Team plan covers 500 monitors at $20/mo.
Can I give clients access to their own status page without giving them access to CronAlert?
Yes. CronAlert status pages are public URLs that anyone can view without a CronAlert account. You create a status page for each client, add the relevant monitors to it, and share the URL. They see real-time status and incident history without needing login credentials or access to your monitoring dashboard.
How do I keep one client's alerts from flooding another client's team?
Use CronAlert's team feature to separate clients into different teams, each with their own alert channels. Monitors on Client A's team only trigger Client A's alert channels. Alternatively, within a single team, assign different Slack channels to different monitors to keep notifications organized by client.
What is the most cost-effective CronAlert plan for agencies?
For most agencies, the Team plan ($20/mo) is the sweet spot. It includes 500 monitors, 1-minute check intervals, unlimited status pages, 10 team members, and multi-region monitoring. An agency with 50-100 client sites can run a comprehensive monitoring setup for less than the cost of a single lost client.
Start Monitoring Your Client Sites
If you are managing client websites without uptime monitoring, you are finding out about downtime the same way your clients do -- when they call you. That is a reactive posture that erodes trust with every incident.
Start monitoring for free -- CronAlert's free plan includes 25 monitors, email and Slack alerts, and a public status page. Set up monitors for your top 5 clients in under 10 minutes and see the difference it makes the next time something goes wrong. When you are ready to scale, the Team plan at $20/mo gives you 500 monitors, unlimited status pages, and room to grow your client list without limits. See pricing for full plan details.