Content validation
Uptime tells you if an endpoint responds. Content validation tells you if it’s still correct.
Because “200 OK” can still mean: an error page, a login loop, missing keywords, or an API response that changed shape.
The most painful incidents are silent
Many failures don’t show up as downtime. They show up as a broken user flow — and you only hear about it when a client says “something feels off.”
- • A deploy ships an error banner but still returns HTTP 200.
- • A CMS edit removes the “Request demo” button.
- • An API returns valid JSON… but the field your app needs is gone.
- • A page is accidentally set to noindex, killing SEO quietly.
What we do
We perform HTTP checks and validate the response body, JSON shape/values, and basic page metadata — so you detect correctness regressions early.
Keyword checks that catch error pages, missing UI text, and broken states.
Validate that fields exist and equal the expected value.
Catch accidental noindex, wrong title, or missing OpenGraph tags.
If your validation fails, the check fails — even if the server responds.
Examples (pseudo-config)
These snippets show the kind of rules you can set up. The idea is simple: define what “healthy” looks like for real users — not just for the load balancer.
Confirm the critical UI text is present (for example: a login page still shows “Sign in”).
checks:
- name: Login page keyword
url: https://app.example.com/login
expect:
status: 200
contains: "Sign in"Fail the check when an error banner or maintenance message appears — even if the page returns 200.
checks:
- name: No error banner
url: https://app.example.com/
expect:
status: 200
not_contains:
- "Something went wrong"
- "Internal Server Error"Validate API correctness: field exists and has the expected value. Great for /health endpoints.
checks:
- name: API health
url: https://api.example.com/health
expect:
status: 200
json:
- path: "$.status"
equals: "ok"
- path: "$.build.commit"
exists: trueCatch accidental noindex, wrong titles, or missing metadata after a CMS/template change.
checks:
- name: Homepage metadata
url: https://example.com/
expect:
status: 200
title_contains: "Example"
meta:
- name: "robots"
not_contains: "noindex"Who it’s for
Prove what broke, when it broke, and reduce “it seems down?” client messages.
Catch regressions right after deploys — before support tickets spike.
Validate that key conversion paths still work (checkout text, inventory flags, error states).
Add your first check in minutes: start with uptime, then layer in content validation so “200 OK” actually means “working.”