Uptime Checks Across the Dependencies Behind Your Pages

GhostHosts editorial ·

Juniper Networks headquarters in Sunnyvale, California
Illustrative image. LPS.1 · CC BY-SA 3.0 · Cropped and resized. Image source

A homepage that loads is not the same as a site that works. Many small sites are assembled from pieces: a hosting account, a domain registrar, a DNS zone, a contact form relay, an analytics tag, a payment widget, a font service, and an email sender. Each piece can fail independently, and most of those failures leave the homepage looking perfectly healthy. This article takes a different angle from checks that focus only on the front page. Instead of asking whether the site responds, it asks which dependencies the site needs in order to do its job, and how a team can design uptime checks around those dependencies. The goal is a practical map that tells you what to probe, how often, and what to do when a probe goes red.

Start With a Dependency Inventory, Not a Tool

Before choosing any monitoring method, write down everything your site relies on to function for a visitor. Walk through a real visit in your head or with a browser's developer tools open. Note every domain the page requests, every script that loads, every form that submits, and every redirect that fires. Then note what happens behind the scenes: where the form data goes, whether an order email is sent, and which service issues the certificate that makes the padlock appear.

Group these items into categories. Typical groups include the origin host that serves your files, DNS resolution for your domain and subdomains, the certificate chain, third-party scripts, outbound email, form or checkout handlers, and scheduled jobs such as backups or content syncs. Each group becomes a candidate for its own check. A dependency you cannot name is a dependency you cannot monitor, so this inventory is the foundation of everything that follows.

Keep the inventory short enough that someone will actually update it. A one-page table with columns for dependency, what breaks if it fails, who owns it, and how you would notice is usually enough for a small team.

Separate Reachability From Function

Reachability asks whether a service answers. Function asks whether it does the thing you need. A contact form can return a 200 status and still fail to deliver messages because the mail relay rejected its credentials. A checkout page can render completely while the payment script fails to initialize. Your check design should make this distinction explicit.

For each dependency, decide what a successful result means in terms a human would accept. For a form, that might mean a test submission arrives in a designated inbox within a set window. For a login, it might mean a test account reaches its dashboard. For a scheduled job, it might mean a heartbeat signal is received at the expected time. Reachability checks are cheap and useful for catching outages, but functional checks catch the quieter failures that cost you leads and sales without ever triggering a red status page.

Be careful with test data. A test form submission should be clearly labeled, routed to a sink address, and filtered out of your real reports so that monitoring does not pollute the records you rely on.

Probe Order Matters: Check Dependencies From the Bottom Up

When several things fail at once, the alert you see first may be a symptom rather than a cause. If DNS stops resolving, every browser-based check will fail, and the alert storm will hide the one fact you need: the name no longer points anywhere. Design your checks so that foundational layers are tested first and their results are interpreted in order.

A practical sequence runs from the network outward. Check that the domain resolves to the expected addresses. Check that the certificate is valid and matches the hostname. Check that the origin answers on the expected path. Then check application behavior such as a login or a form submission. Then check third-party dependencies like scripts, payment widgets, and email delivery. When a lower layer fails, suppress or annotate alerts from the layers above it so responders see the root condition first.

Write this ordering into your runbook. During an incident, a responder who knows that DNS is checked before the application can skip several misleading investigations.

A Short Checklist for Your Next Review

Use this list to review your current checks. Each question can be answered in a few minutes, and an honest "no" points to a gap worth closing.

Do you have a written list of every third-party domain your pages load? Does each one have a named owner on your team, even if that owner is you? Do you know which dependencies a visitor needs to complete a purchase, a signup, or a contact request? For each of those, is there a check that tests the outcome rather than just the response code? Do your checks cover subdomains, not only the primary domain? Are scheduled jobs covered by a heartbeat that alerts when a run is missed? Is there a note describing what to do when a third-party service is down, such as temporarily removing a script or switching to a fallback contact method? Has someone reviewed the inventory in the last quarter?

If several answers are no, do not try to fix everything at once. Choose the single dependency whose failure would cost you the most and build a functional check for it this week.