pingrobot

Blog / Uptime monitoring

Which URLs Should You Monitor? A Checklist by Site Type

· 7 min read

Short answer

Monitor the pages and endpoints that would cost you money or trust if they broke, not every URL. For most sites that means the homepage, one page that proves the database works, the login or checkout path, the API health endpoint, and a heartbeat for each important scheduled job. Five to ten well-chosen monitors cover most small sites.

Monitor the URLs whose failure would cost you customers, revenue or trust, and choose them so each monitor covers a different part of your stack. For most sites that is the homepage, one uncached page that proves the database answers, the login or checkout path, an API health endpoint if you have one, and a heartbeat for each scheduled job that matters. Use keyword checks where a broken page can still return HTTP 200. The checklists below are organized by site type; most real projects combine two or three of them.

Principles that apply to every site

Before the checklists, five rules that decide which URLs earn a monitor:

  1. One monitor per failure domain. Pages served by the same template, server and database fail together. Monitor one representative page per component, not every URL.
  2. Bypass the cache at least once. A CDN can keep serving the homepage while your origin is down. Include at least one page that is generated on each request, or a health endpoint that is not cached.
  3. Prove the dependency, not just the server. A keyword that comes from the database proves more than a static page. See keyword monitoring for how to choose one.
  4. Monitor what users type. Use the real public host name, with https://, including www if that is your canonical address. A check on an internal address misses DNS, TLS and CDN problems.
  5. Silence is a failure too. Jobs that run in the background do not have a URL that goes down. Use heartbeat monitors so you are alerted when they stop reporting.

Marketing site or blog

A brochure site or blog has few moving parts, but the domain, DNS, hosting and contact form are all single points of failure.

Monitor Type Why
Homepage https://www.example.com/ HTTP(S) Catches DNS, TLS, hosting and CDN problems
A content page, such as the latest blog post or pricing page Keyword Catches broken templates and empty pages that return 200
The non-canonical host, such as https://example.com/ without www HTTP(S) Confirms the redirect still works
Contact or booking form backend, if hosted separately HTTP(S) Leads are lost silently when the form endpoint fails

Three or four monitors are enough. If the site is static and hosted on a CDN, the homepage check plus one keyword check covers most risks.

SaaS application

A SaaS product usually has a marketing site, an application, an API, and background workers, often on different infrastructure. Each needs its own coverage.

Monitor Type Why
Marketing homepage HTTP(S) Different hosting from the app in many setups
App login page https://app.example.com/login Keyword The first page every customer hits; keyword proves it rendered
Application health endpoint /health Keyword Checks the app and its database or cache in one request
API health endpoint https://api.example.com/health Keyword API clients fail before humans notice
Authentication provider callback or sign-in route, if self-hosted HTTP(S) Login problems lock everyone out
Database or cache port, if reachable from outside TCP port Separates "app down" from "database unreachable"
Background worker, queue consumer Heartbeat Workers can stop while the web app looks fine
Nightly billing, reports, cleanup jobs Heartbeat Missed runs are invisible until a customer complains
Your own status page HTTP(S) It needs to work when everything else does not

Do not expose a database port to the internet just to monitor it; a TCP port check only makes sense for ports that are already reachable, such as SMTP, SSH or a public game server. For internal services, report their state through the health endpoint instead.

E-commerce store

For a store, the path to purchase matters more than the homepage.

Monitor Type Why
Homepage HTTP(S) Domain, DNS and hosting
A best-selling product page Keyword on add-to-cart text Catches broken themes, empty catalogs, maintenance or password pages
A category or collection page Keyword Catches search, filter or catalog failures
Cart page Keyword Last page before checkout that does not need a session
Payment or order webhook receiver, if self-hosted HTTP(S) on a health route Missed payment notifications cause unfulfilled orders
Inventory, feed or ERP sync Heartbeat Stopped syncs cause overselling and wrong prices

Checkout itself is hard to monitor from outside because it needs a session and a real payment. Watch your payment provider's status page and test a real order after significant changes. For a hosted platform, see how to monitor a Shopify store.

API

APIs are used by programs, which fail quickly and loudly when the API breaks, often before anyone looks at a dashboard.

Monitor Type Why
Health endpoint, such as GET /health Keyword on "status":"ok" Proves the service and its dependencies respond
One representative read endpoint that needs no authentication Keyword Proves real data flows, not just the health route
Each separately deployed service or region HTTP(S) or keyword Different deployments fail independently
API documentation site HTTP(S) Developers integrating with you rely on it

A health endpoint should check the dependencies that matter and return a non-200 status when one fails, so both a status check and a keyword check can catch it:

$ curl -s https://api.example.com/health
{"status":"ok","database":"ok","cache":"ok"}

Keep it fast and free of side effects, and avoid exposing version numbers or internal host names in the response. Never put secrets or API keys in a monitored URL.

WordPress site

WordPress has a few failure modes that are specific to it.

Monitor Type Why
Homepage Keyword on text from your theme or a recent post Catches "Error establishing a database connection" and the white screen of a fatal PHP error
A single post or page Keyword Catches permalink and template problems
/wp-login.php Keyword on the login form's text Confirms the admin side works
WooCommerce product and cart pages, if used Keyword Same reasons as any store
WP-Cron via a real cron job Heartbeat Scheduled posts, backups and emails depend on it

By default, WP-Cron runs only when someone visits the site, so low-traffic sites may run scheduled tasks late or not at all. A common setup is to disable the built-in trigger with define('DISABLE_WP_CRON', true); in wp-config.php and call it from the server's crontab, adding a heartbeat ping after it succeeds:

*/5 * * * * curl -fsS https://www.example.com/wp-cron.php?doing_wp_cron > /dev/null && curl -fsS --retry 3 https://heartbeat.example/your-token > /dev/null

Replace the second URL with your heartbeat monitor's URL. The cron job monitoring guide explains the && pattern and grace periods.

Background jobs and scheduled tasks

Anything that runs on a schedule rather than in response to a request needs a heartbeat, because there is no page to check.

  • Database and file backups
  • Email and newsletter sends
  • Data imports, exports and feed generation
  • Invoice generation and subscription renewals
  • Cache warmers, sitemap builders and search index rebuilds
  • Certificate renewal jobs, such as a certbot timer
  • Cleanup tasks that keep disks from filling up

For each one, ping the heartbeat URL only after the job succeeds, and set the expected interval to the schedule plus a grace period that covers the longest normal run.

Infrastructure around the site

Finally, a few items that are not pages but often cause outages:

  • Mail server ports (SMTP on 25 or 587) if you run your own mail.
  • SSH on a server you need to reach in an emergency, to tell "web server down" from "machine down."
  • Your status page and documentation, hosted separately from the main site.
  • Domain and certificate expiry. An uptime check fails after a certificate or domain expires; track renewal dates separately, through registrar auto-renew and your certificate tool's renewal job, so it never gets that far.

Putting it together

A small SaaS with a marketing site, app, API and three scheduled jobs might use:

  1. Marketing homepage (HTTP)
  2. App login page (keyword)
  3. App health endpoint (keyword)
  4. API health endpoint (keyword)
  5. Status page (HTTP)
  6. Nightly backup (heartbeat)
  7. Billing job (heartbeat)
  8. Queue worker (heartbeat every few minutes)

That is eight monitors. With PingRobot's free plan of 10 monitors and 5-minute checks, the same set fits with room to spare, and the two leftover slots are a good place for the first gap your next incident reveals. When a monitor does fire, start with the website down checklist.

Start monitoring free — 10 monitors, no credit card.

Frequently asked questions

How many monitors does a typical small website need?

Three to five covers most marketing sites and small stores. A SaaS product with an API and background jobs usually needs eight to fifteen. Add monitors when an incident shows you a gap rather than trying to cover every page up front.

Should I monitor every page of my site?

No. Pages built from the same template and server fail together, so one representative page per template is enough. Spend monitors on different components, such as the app, the API, the database-backed pages and scheduled jobs.

Is monitoring the homepage enough?

Rarely. Homepages are often cached by a CDN and can keep loading while the application behind them is down. Add at least one uncached page that depends on your database.

Should I monitor third-party services I depend on?

Monitor the parts of them you call directly, such as an API endpoint you can reach without side effects, and subscribe to their status pages. Your own health endpoint can also report whether key dependencies respond.