Uptime monitors all look interchangeable on a pricing page. They are not, and the thing that separates them is buried in the fine print: how often the service checks, how many endpoints it watches before billing starts, and whether it can page a human at 3 AM. Those three move independently, and the free tiers are where they diverge hardest.
I priced seven of them off their own pages on September 17, 2026 and ran the arithmetic. One result was worth the exercise on its own: if you need a mean detection time under a minute for 10 endpoints, the cheapest option is a free plan, not a paid one. Checkly's Hobby tier does it for $0. UptimeRobot hands you five times as many monitors free, but checks a fifth as often, so it cannot clear the same bar.
The longer version of this lives on DevToolLab with the full per-vendor breakdown. This is the compressed argument.
The Numbers Side by Side
| Tool | Free tier | Free interval | Entry paid plan | Fastest interval |
|---|---|---|---|---|
| UptimeRobot | 50 monitors | 5 minutes | $9/mo, 10 monitors | 15 seconds |
| Better Stack | 10 monitors, 10 heartbeats | 3 minutes | $25/mo per extra 50 | 30 seconds |
| Checkly | 10 monitors | 2 minutes | $24/mo, 50 monitors | 30 seconds |
| Cronitor | 5 monitors | 5 minutes | $2/mo per monitor | 30 seconds |
| Uptime Kuma | unlimited, self-hosted | configurable | none, MIT | configurable |
| Gatus | unlimited, self-hosted | configurable | hosted plan exists | configurable |
| Upptime | unlimited, GitHub Actions | 5 minutes | none, MIT | 5 minutes |
Detection Time Is Half the Check Interval
Here is the piece most comparisons skip. A failure does not politely wait for your monitor. It lands at a random moment between two checks, so on average you wait half the interval before anything even looks. That is your floor, before alerting adds its own lag.
Thirty lines of Node turns that into a ranking. No dependencies, runs on Node 18 or newer.
// Plan data read from each vendor's pricing page on September 17, 2026.
const PLANS = [
["UptimeRobot Free", 0, 50, 300],
["UptimeRobot Solo", 9, 10, 60],
["UptimeRobot Team", 35, 100, 30],
["UptimeRobot Scale", 65, 200, 15],
["Better Stack Free", 0, 10, 180],
["Checkly Hobby", 0, 10, 120],
["Checkly Starter", 24, 50, 60],
["Checkly Team", 64, 75, 30],
["Cronitor Hacker", 0, 5, 300],
]
const NEED = 10 // endpoints you actually have
const TARGET_DETECT = 60 // acceptable mean seconds to detection
const rows = PLANS.map(([name, usd, monitors, interval]) => ({
name, usd, monitors, interval,
meanDetect: interval / 2,
perMonitor: usd === 0 ? 0 : usd / monitors,
fits: monitors >= NEED,
}))
const ok = rows
.filter((r) => r.fits && r.meanDetect <= TARGET_DETECT)
.sort((a, b) => a.usd - b.usd)
console.log(ok.length ? `${ok[0].name} at $${ok[0].usd}/mo` : "nothing qualifies")
// -> Checkly Hobby at $0/mo
The per-monitor column is what reorders the market. UptimeRobot Scale looks expensive at $65 a month until you divide by 200 monitors and get $0.33 each, the cheapest paid slot anywhere in the table. Checkly Team costs a dollar less in absolute terms and works out at $0.85, because it bundles 75 monitors instead of 200. Sorting by sticker price gets this exactly backwards, which is covered in more depth in the original post.
The Hosted Four
UptimeRobot has the most generous free tier here: 50 monitors on a 5-minute interval, no card required, covering HTTP, port and ping. Paid tiers as of September 17, 2026 run $9 (Solo, 60-second checks), $35 (Team, 30-second, 100 monitors) and $65 (Scale, 15-second, 200 monitors) on annual billing. The free tier's catch is arithmetic: 5-minute checks mean roughly 150 seconds pass on average before a failure is noticed. Acceptable for a brochure site, not for checkout.
Better Stack is the one to pick when uptime and on-call should be a single workflow rather than two subscriptions. Its own page advertises 10 monitors, 10 heartbeats and a status page at 3-minute checks for nothing. After that the pricing is modular: another 50 monitors costs $25 a month, or $21 billed yearly.
Checkly treats monitoring as code, so checks live in Git beside the Playwright tests they reuse. Annual pricing is $0 for Hobby (10 monitors at 2-minute frequency), $24 for Starter (50 monitors at 1 minute) and $64 for Team (75 monitors at 30 seconds across 22 locations). Watch the overages, which is where the bill surprises people: browser check runs past your allowance bill at $6.50 per 1,000 on Starter.
Cronitor came from cron job monitoring and still handles that better than the generalists. Hacker is free forever with 5 monitors; Business charges $2 per monitor per month plus $5 per user with no base fee, reaching 30-second checks. Per-monitor billing is excellent at 10 monitors and brutal at 200. If your real question is whether last night's backup ran, this is the right shape.
The Open-Source Three
Uptime Kuma is the default self-hosted answer and dwarfs everything else in this category: MIT licensed, 91,453 GitHub stars, version 2.5.5 shipped September 16, 2026 with commits landing the next day. One docker run gets you HTTP, TCP, ping, DNS and keyword checks plus status pages and around 90 notification integrations. The structural catch deserves saying plainly: one box in one region tells you the service is unreachable from that box, which is not the same as down, and it tells you nothing at all while that box is the thing that broke.
Gatus is Apache-2.0, 12,090 stars, v5.36.0 from May 19, 2026. Everything is YAML, which makes it the natural fit when monitors belong in the same repo as the infrastructure they watch, and its conditions syntax asserts on status code, response time and body content together instead of bare reachability. Note that gatus.io now sells a hosted version too; the self-hosted core stays Apache-2.0.
Upptime removes the server entirely. MIT, 17,157 stars, running on GitHub Actions, Issues and Pages, so checks run on Actions runners, incidents open as issues and the status page deploys to Pages. Two honest caveats: Actions scheduling puts a practical floor near 5 minutes, and the newest tagged release is v2.0.0 from October 13, 2020, even though the repo took commits on September 17, 2026. It works; the tags just do not tell you that.
Picking One
Side project or marketing site: UptimeRobot free. Nothing else gives you 50 endpoints for $0.
Sub-minute detection, no budget: Checkly Hobby, the only free plan in the table that clears a 60-second mean for 10 monitors.
Docker already running, want unlimited monitors: Uptime Kuma on a small VPS, in a different region from whatever it watches.
Monitors belong in version control: Gatus for YAML, Checkly if the checks should reuse Playwright tests.
Uptime and on-call as one product: Better Stack, whose free tier includes the status page and escalation policy instead of selling them separately.
Cron jobs and backups rather than web pages: Cronitor, where the heartbeat model matches the problem.
Open-source project already on GitHub: Upptime, if 5-minute checks are good enough.
Conclusion
The comparison that matters is cost per monitor against detection time, and those two rank these products differently from the pricing pages. On numbers verified September 17, 2026: UptimeRobot Scale is the cheapest paid slot at $0.33 per monitor, Checkly Hobby is the cheapest route to sub-minute detection at $0, and Uptime Kuma deletes the per-monitor question if you will run a box and live with a single vantage point. Count your endpoints, decide how fast you need to know, and run the script against your own list before paying anyone.
Two DevToolLab tools that pair with this: the URL Redirect Checker for finding out your health check is quietly following a 302, and the Latency Percentile Calculator for turning raw response times into a p95 your alert threshold can actually use.
References
- Best Uptime Monitoring Tools in 2026 - the original article on DevToolLab, with the full fit table and per-vendor detail
- 7 Datadog Alternatives and What They Cost - the full observability platforms, priced on one identical workload
- Best Sentry Alternatives in 2026 - error tracking, which answers a different question than uptime
- Uptime Kuma on GitHub - MIT licensed, source of the star count and release date quoted above
- Gatus on GitHub - Apache-2.0, version and license verified here


Top comments (1)
Hey, UptimeRobot here 👋 , appreciate the rigor here, pricing-page comparisons like this are exactly what people need before committing. Happy to clarify any of our tiers if something looked off.