SiteBrief/Documentation

Keyword Monitoring

Verify that specific text appears (or doesn't appear) on your clients' pages with every uptime check.

How it works

When a keyword is configured, SiteBrief downloads the full page HTML on every uptime check and searches for your keyword in the raw HTML. If the keyword is not found, the check fails and the site is marked as down — even if the HTTP status code is 200.

This catches scenarios where a page returns 200 OK but is showing wrong content — a cached error page, a maintenance message, a blank page, or broken server-side rendering.

ℹ️
Note:Keyword monitoring requires the HTTP method to be GET(the default). It doesn't work with HEAD requests since those don't return a response body.

What to use as a keyword

GoalRecommended keyword
Verify the site is renderingUnique text from the main heading, e.g. "Welcome to Acme Corp"
Verify a product page is liveThe product name or SKU
Detect maintenance modeText that appears during maintenance, e.g. "Under maintenance"
Verify footer is renderingCopyright text in the footer, e.g. "© 2026 Acme Corp"
Verify an API responseA field from the JSON response, e.g. '"status":"ok"'
Check a CMS-driven pageA CMS-specific string that only appears when the CMS is working
💡
Tip:Choose a keyword that is unique and stable— something that won't change with normal content updates. Avoid using text from navigation menus or dynamic areas of the page.

Keyword rules

  • Case-insensitive — "Acme Corp" matches "acme corp" and "ACME CORP"
  • Searches raw HTML — the keyword is searched in the full HTML source, including meta tags and attributes
  • No regex — the keyword is a plain text string, not a regular expression
  • Partial match — the keyword just needs to appear anywhere in the response body
  • One keyword per site — you can set one keyword string per monitor

JSON assertion (API monitoring)

For API endpoints that return JSON, use the JSON assertion field instead of a plain keyword. Enter a dot-notation path and expected value:

API responseJSON assertion
{"status": "ok"}status = ok
{"data": {"active": true}}data.active = true
{"health": {"database": "connected"}}health.database = connected
ℹ️
Note:The JSON assertion checks that the field at the given path equals the expected value (string comparison). Use keyword monitoring for partial or non-JSON checks.

Common scenarios

Scenario 1: WordPress site showing an error instead of content

A PHP error or plugin crash can cause WordPress to return 200 OK with an error page instead of normal content. Set keyword to the site's brand name or homepage title — e.g. Acme Corp – Digital Agency. If WordPress breaks and shows a white screen or PHP error, the keyword won't be found and you'll be alerted.

Scenario 2: Shopify store going into maintenance mode

Shopify shows "Opening soon" or "Password protected" when a store is taken offline. Set keyword to a product name or store-specific phrase that only appears when the store is open.

Scenario 3: Health check endpoint on a Node.js API

Your API has /health which returns {"status":"ok"}. Use either keyword "status":"ok" or the JSON assertion status = ok. If the database or a critical service fails and the health endpoint returns {"status":"error"}, you'll be alerted immediately.

Frequently asked questions

Can I use keyword monitoring to check that a word does NOT appear?
Not directly — keyword monitoring alerts when the keyword is missing. To detect unwanted content (e.g. "Error 500"), add a separate monitor for that URL and set the keyword to "Error 500". You'll be alerted when it appears. Note: this inverts the logic — the monitor will be "down" (keyword found) when you want to know about it.
The keyword is definitely on the page but SiteBrief says it's not found
The most common cause is that the content is loaded via JavaScript (client-side rendering). SiteBrief checks the raw HTML from the server — content that requires JS to render won't be in the response body. Use a server-rendered page for keyword monitoring, or add a dedicated /health endpoint that returns the expected keyword.
My keyword contains special characters like quotes or angle brackets — is that ok?
Yes. The keyword is matched as-is against the raw HTML. So "status":"ok" would match that exact string in the response.
Can I set different keywords for different pages on the same site?
Each monitor can have one keyword. To monitor different pages separately, add them as separate site entries — each with their own keyword.