Switching from UptimeRobot? Import your monitors in one click with a read-only API key.Start free →
  1. Home
  2. Monitoring
  3. Keyword monitoring

Keyword monitoring: catch the error page that still returns 200

Require a phrase to be on the page, or require another phrase to be absent. It is the cheapest way to notice a database error that your server answers with a happy status code.

  • 30 monitors free
  • No credit card
  • Failures confirmed from other regions
www.clienta.comGET / · must contain “Add to cart”
Up
  • Amsterdam97msfound
  • London142msfound
  • Keyword“Add to cart” present
  • Forbidden“Error establishing” absent
  • TTFB55 ms

Illustrative example

Try it

Check it now, in your browser

No account. Keyword monitoring: type a target and see roughly what it looks at. Nothing you type is stored.

One real request from a Tenium checker. It follows redirects and reads the certificate. Nothing is saved.

The public test checks that the page answers. The keyword rule itself (must contain, must not contain) runs in a saved monitor.

The result appears here.

Create this monitorOpen the full tool

What it checks

What a keyword monitor looks at

Must be present

Fail when a phrase vanishes, for example "Add to cart" missing from a product page after a theme update.

Must be absent

Fail when a phrase shows up, for example "Fatal error", "Error establishing a database connection" or a leftover maintenance banner.

Plain text match

Scripts, styles and tags are stripped first, then the phrase is matched case-insensitively against the visible text. Regular expressions are not supported.

Served HTML only

The match runs on the HTML your server returns, up to about 1 MB. Text that only appears after JavaScript runs is not seen.

Alerts

Keyword monitoring: what an alert looks like

The same event arrives as an e-mail, a Telegram message or a Slack card. This is the wording the channels send; the host, times and numbers are made up.

To [email protected]

Subject [DOWN] www.clienta.com — Keyword "Add to cart" missing

DOWN

www.clienta.com

www.clienta.com · Keyword "Add to cart" missing · confirmed from Amsterdam (AMS), London (LON)

ErrorKeyword "Add to cart" missing
Confirmed byAmsterdam (AMS), London (LON)
Since14:02:11 UTC
Targetwww.clienta.com
Next stepCheck the server / hosting panel. Acknowledge so the team knows you are on it.

AcknowledgeOpen incident

<h1>Error establishing a database connection</h1>

Tenium · checked from Amsterdam · 14:02 UTC

Tenium alerts

🔴 DOWN · www.clienta.com · Keyword "Add to cart" missing · confirmed from Amsterdam (AMS), London (LON)

TTenium APP 2:02 PM

DOWN · www.clienta.com
www.clienta.com · Keyword "Add to cart" missing · confirmed from Amsterdam (AMS), London (LON)

  • Error: Keyword "Add to cart" missing
  • Confirmed by: Amsterdam (AMS), London (LON)
  • Target: www.clienta.com

AcknowledgeOpen incident

Check the server / hosting panel. Acknowledge so the team knows you are on it. · checked from Amsterdam

Keyword monitoring: e-mail, Discord and Google Chat work on every plan; Slack, Telegram, Teams and Mattermost start on Starter. There are no SMS or voice-call alerts.

Response time

Response time with a threshold

Every check stores how long the response took. Keyword monitoring: drag the threshold and see when a slow-response alert would have fired.

Response time Threshold alert illustrative data
Response time with a threshold. Illustrative data. 02505007501000 Threshold 500 ms 00:0006:0012:0018:0024:00 Response time (ms)
Rule. Keyword monitoring: the alert fires when the average of the last 3 checks is above the threshold (Pro and Agency).
Speed

How fast you find out

Pick a plan to see its check interval and how long a failure takes to reach you, including the confirmation round.

Checks every30 s
On average you hear after15 s
At worst90 s
Checks everyConfirmation window (up to 60 s)

Keyword monitoring: a failure lands at a random moment between two checks, so on average you wait half an interval, and the worst case is a whole interval plus the confirmation window. A single failing region is not enough: all two regions must agree before an incident opens. The other regions are asked straight away, and we allow up to 60 seconds for the answers.

Setup

How to set up keyword monitoring in 30 seconds

1

Enter the target

Add the page URL, choose the Keyword type, and Tenium fills in a sensible timeout and default confirmation settings.

2

Pick an interval

Fastest check interval: 30 s on Pro and Agency, 1 min on Starter, 5 min on Free. Slower intervals are available on every plan.

3

Set present and absent phrases

Choose who is told. Email, Discord and Google Chat work on every plan, Slack, Telegram, Teams and Mattermost start on Starter, webhooks on Pro.

4

Save

The first check runs within seconds. If a check ever fails, other regions re-check it before an incident opens, so one bad route does not page you.

Failure modes

What each error means

This is the text an incident shows in its Error line, the usual cause, and the first thing to look at.

KEYWORDKeyword "Add to cart" missing

The page answered but the phrase is not in it: a cached error page, a half-rendered template, an empty product feed. This is exactly what status-only checks miss.

Shown as: Keyword "Add to cart" missing

KEYWORDForbidden keyword "Error establishing a database connection" present

The error text appeared in the body, usually with a cheerful 200. WordPress and many CMSs do this when the database is gone.

Shown as: Forbidden keyword "Error establishing a database connection" present

BLOCKEDBlocked by WAF challenge (Cloudflare)

A bot challenge replaced the page, so the keyword cannot be found. Flagged as blocked, not down; allow the checker and it clears.

Shown as: Blocked by WAF challenge (Cloudflare)

TIMEOUTTimeout after 15 s

The page never finished. Keyword checks read up to about 1 MB of the body, so a very slow origin fails here before the text is judged.

Shown as: Timeout after 15 s

CERT_HAS_EXPIREDTLS error: certificate has expired

The certificate is no longer valid, so the page cannot be fetched securely. Renew it.

Shown as: TLS error: certificate has expired

Plans

Keyword monitoring by plan

Free
$0/mo
Starter
$7/mo
Pro
$29/mo
Agency
$59/mo
Available✓✓✓✓
Monitors301003001000
Fastest interval5 min1 min30 s30 s
Regions1222
Custom headers——✓✓
Response-time alerts——✓✓
Escalation to a second contact——✓✓
Status pages1310Unlimited

Full pricing

The pages that lie with a 200

A status code reports what the web server decided, not what the visitor sees. Plenty of broken states still answer 200: a CMS that prints a database error into the template, a PHP fatal error with display_errors on, a maintenance plugin that serves its splash page with a happy code, a CDN that cached an error body, an expired hosting account showing the provider's parked page, and a staging banner that went live by accident. Each of those has a recognisable sentence, and a keyword monitor turns that sentence into an alarm.

Typical absent phrases are "Fatal error", "Error establishing a database connection", "Briefly unavailable for scheduled maintenance", "Service Unavailable" and "This domain is for sale". Typical present phrases are the company name in the footer, a product page's "Add to cart", or the text of a login button.

Present, absent, or both

A keyword monitor has two optional fields: the phrase that must be present and the phrase that must be absent. Use both on important pages. The present phrase protects you from blank pages and unexpected redirects, the absent phrase from error text that appears next to normal content. If both are filled in, both conditions must hold, and the failure names the one that broke, for example Keyword "Add to cart" missing or Forbidden keyword "Fatal error" present.

Leave both fields empty and the monitor degrades to a status check with a note in its details, which is rarely what you want; use a plain website monitor for that.

Choosing a phrase that survives redesigns

The best phrases are boring. Legal footer text, the registered company name, a copyright line or a form label change far less often than headlines or promotional copy, so they will not trigger an alert every time marketing runs a test. Avoid text that varies by visitor (greetings, prices in a local currency, "3 items in your cart"), text from A/B experiments, and anything inside a cookie banner. Keep the phrase short enough to survive line breaks and word-wrap edits, but long enough to be unique: "Add to cart" is better than "cart".

Use two monitors with different phrases on the same page when you want to separate a missing header from a missing footer. It costs one more monitor and makes the failure message self-explanatory.

What the matcher actually does

The response is fetched like any other HTTP check, then scripts, style blocks, comments and tags are removed, a handful of common HTML entities are decoded, and whitespace is collapsed. The phrase is searched in that text with a case-insensitive, plain substring comparison. Consequences worth remembering:

  • No regular expressions. A pattern such as order #[0-9]+ cannot be expressed; pick a fixed neighbour phrase instead.
  • Only text nodes count. A word that appears in an alt attribute, a meta description tag or inside JavaScript is not visible to the matcher, while text in hidden elements still is.
  • Only the HTML as served is searched, up to about 1 MB. Text that a framework inserts after load is invisible, so test single-page apps against their server-rendered output or the API behind them.
  • All conditions use the same fetch, so the expected status range, redirects, basic auth and timeout settings apply to keyword monitors exactly as they do to website monitors.

Plans and interactions with other monitors

Keyword checks are included on every plan, Free too. JSON assertions begin on the Starter plan ($7 a month). A keyword monitor produces the same incident, alert and status-page data as any other monitor, and it can be switched into a maintenance window when you plan to change the page. If your site sits behind a bot filter, a challenge page will be recorded as a blocked incident rather than as a missing keyword, so a Cloudflare rule change does not look like a content problem.

Keyword monitoring questions

Is the match case-sensitive?

No. Both the page text and your phrase are compared in lower case, so "Add To Cart" and "add to cart" are the same. There is no option to make it case-sensitive.

Can I check text that is loaded by JavaScript?

Not from the page itself, because scripts are not executed. Monitor the JSON endpoint the script reads with the JSON API type, or serve the critical text in the initial HTML.

How do I catch a phrase on every client site at once?

Create one keyword monitor per site and import them from a CSV with a keyword column; the import guide in the docs lists the columns. Tags make it easy to filter the whole group.

What if the phrase appears twice on the page?

One occurrence is enough for a present check, and any occurrence trips an absent check. There is no counting of matches.

Start keyword monitoring free

30 monitors on the Free plan, no card needed, with failures confirmed from other regions (2 regions live today). Upgrade when the client list grows.