What a monitor checks
An uptime monitor requests your site from the outside on a schedule and alerts you when the request fails. The free plans and open source projects in this list cover a few kinds of checks, named differently on each page:
| Check | What it tests | Named on the official pages |
|---|---|---|
| HTTP | The page answers, usually with a status code in the 200 range | UptimeRobot lists an HTTP, port and ping monitor on the Free plan; Gatus conditions can test [STATUS] == 200 |
| Keyword | The page contains (or does not contain) a given text, which catches error pages that still return 200 | UptimeRobot's keyword monitor; Uptime Kuma's HTTP(s) Keyword and JSON Query monitors; Hyperping's keyword checks on the Free plan |
| Port and ping | A TCP port answers or a host replies to ICMP, for mail servers, databases and game servers | Pulsetic's free plan lists SSL, port, TCP and ICMP monitoring; Uptime Kuma covers TCP, ping and DNS records |
| Heartbeat | Your cron job or script calls the monitor; the alert fires when the call stops coming | Cronitor says every plan includes cron, heartbeat, website and API monitoring; Better Stack's free tier includes 10 heartbeats |
| Certificate | The TLS certificate is valid and not about to expire | StatusCake's Free plan includes 1 SSL monitor; Gatus can alert on [CERTIFICATE_EXPIRATION] > 48h |
Before you add a monitor, check what the site returns right now with the HTTP header checker, and read the certificate dates with the SSL checker. A keyword check needs a text that only appears on the healthy page, not in the error template.
The check interval problem
A monitor only knows what it saw at the moment of a check. With a 5 minute interval, an outage of 2 minutes can start right after one check and end before the next, and the monitor reports 100% uptime for an hour in which your visitors saw errors. The interval also sets the resolution of the uptime figure: a missed check counts as the whole interval, so one failed check at 5 minutes looks like 5 minutes of downtime, which is 0.0116% of a 30 day month (43,200 minutes). Our uptime percentage guide turns every common level into minutes and hours and explains how monitors measure.
From the official pages, the free intervals are: UptimeRobot 5 minutes, StatusCake 5 minutes, Cronitor 5 minutes, Pulsetic 5 minutes, Hyperping 5 minutes, Upptime 5 minutes at the shortest, Better Stack 3 minutes and Checkly 2 minutes. The self-hosted projects set their own pace: Uptime Kuma names 20-second intervals and Gatus checks every 60 seconds by default. If you need to see short outages, the "1 minute or faster" filter shows the free options.
When you compute an uptime figure yourself, the time duration calculator gives the minutes between the first failed and the first successful check.
Free limits compared
The numbers below are from the official pricing pages and docs on the date in the table. An empty cell means the page states nothing for the free plan.
| Service | Free monitors | Interval | Status page | Alerts on the free plan |
|---|---|---|---|---|
| UptimeRobot | 50 | 5 min | 1 basic | 5 integrations; SMS and voice as paid credits |
| Better Stack | 10 monitors, 10 heartbeats | 3 min | 1 | Slack and email |
| Hyperping | 20 | 5 min | 1 basic, no custom domain | Email, Slack, Teams |
| StatusCake | 10, plus 1 SSL, 1 page speed, 1 domain | 5 min | Through integrations | |
| Pulsetic | 10 monitors, heartbeats and domains in total | 5 min | 3 | Email; 1 webhook per monitor |
| Checkly | 10 uptime monitors | 2 min | Up to 20 services, 250 subscribers | Email, Slack, webhooks |
| Cronitor | 5 (jobs, checks, heartbeats) | 5 min | 1, 50 subscribers | Email and chat, no SMS |
| Site24x7 | 50 resources | |||
| Upptime | Unlimited in your GitHub account | 5 min | GitHub Pages | Slack, Telegram, webhooks |
| Uptime Kuma | No cap, your server | From 20 s | Multiple | 90+ notification services |
| Gatus | No cap, your server | 60 s default | Dashboard | Slack, Discord, email, Telegram, PagerDuty and more |
Monitor counts are not the whole story. Checkly's Hobby plan is hard-capped at 10,000 API and 1,000 browser check runs a month and stops the checks when they are used up. UptimeRobot's Free plan keeps 3 months of data.
Alerts and status pages
Email and chat alerts are the free standard. Text messages and phone calls are paid almost everywhere: UptimeRobot sells SMS and voice credits to Free users, Cronitor's Hacker plan has no SMS alerts, Checkly's Hobby plan includes 0 SMS and phone credits, and Hyperping's Free plan leaves out phone calls and SMS credits. If you need to be woken up, a self-hosted monitor can push to a phone app through one of its notification services, or you forward the email through your own phone's rules.
A public status page tells visitors that you know about the outage. Pulsetic includes 3 status pages on your own domain in the free plan, Hyperping one basic status page without a custom domain, Checkly up to 20 services and 250 subscribers without a custom domain, and Upptime hosts the page on GitHub Pages. Uptime Kuma can run multiple status pages and map them to their own domains. When you point a subdomain at a status page, confirm the records with the DNS lookup.
Self-hosting versus hosted
A monitor on the same server as the site goes down with it, so a self-hosted monitor belongs on a different machine, a different provider, or in Upptime's case inside GitHub. What the three open source options need:
- Uptime Kuma (MIT) runs from a Docker image or with Node.js 20.4 or newer, listens on port 3001 and brings its own web interface, 2FA and proxy support.
- Gatus (Apache-2.0) is configured in a YAML file with endpoints and conditions, runs from a Docker image, a binary or a Helm chart, and shows a dashboard with uptime and response time badges.
- Upptime (MIT) needs no server at all: every 5 minutes a GitHub Actions workflow visits your sites, opens an issue when one is down, closes it when it is back and publishes the status site on GitHub Pages.
Hosted plans save you the update work and check from several places, which is what a visitor in another country sees. Either way, run the website speed test once in a while next to the monitor: a site that is up but slow does not trigger an HTTP check, and Gatus's [RESPONSE_TIME] < 300 condition is one way to catch that.
Frequently asked questions
Which uptime monitor gives the most free monitors?
UptimeRobot and Site24x7 both state 50 on their free plans, UptimeRobot with a 5 minute interval and Site24x7 with email alerts. Hyperping follows with 20 monitors, Better Stack with 10 monitors and 10 heartbeats, and StatusCake, Pulsetic and Checkly with 10 each. The self-hosted projects and Upptime have no monitor cap.
Which free plan checks more often than every 5 minutes?
Checkly's Hobby plan runs uptime monitors at most every 2 minutes, and Better Stack states 3 minute checks for its free tier. Uptime Kuma names 20-second intervals and Gatus checks every 60 seconds by default, but you run those yourself. All the other free plans in the list state 5 minutes.
Can I get SMS or phone call alerts for free?
Not on the plans we checked. UptimeRobot sells SMS and voice credits separately, Cronitor's Hacker plan has no SMS alerts, Checkly's Hobby plan includes zero SMS and phone credits, and Hyperping's Free plan leaves out phone calls and SMS credits. Email, Slack and webhooks are the common free channels.
Do free plans include a public status page?
Many do. Pulsetic includes 3 status pages, UptimeRobot a basic status page, Better Stack and Hyperping one each, Cronitor one with up to 50 subscribers, and Checkly up to 20 services with 250 subscribers. Upptime publishes its status site on GitHub Pages, and Uptime Kuma supports multiple status pages on your own domains.
Which uptime monitors are open source?
Uptime Kuma (MIT), Gatus (Apache-2.0) and Upptime (MIT) publish their code under a named license. Uptime Kuma and Gatus run on your own server with Docker, and Upptime runs in your GitHub account with GitHub Actions and GitHub Pages.
Does a free monitor warn me before my SSL certificate expires?
StatusCake's Free plan includes 1 SSL monitor tested every 24 hours, Pulsetic lists SSL monitoring in its free plan, and Hyperping includes SSL monitoring in the Free plan. Gatus can alert on a certificate expiration condition. You can also read the expiry date yourself with our SSL checker.