Ordinary site monitoring asks three things: does the URL connect, what’s the status code, and how long did the response take.
All three are about whether the server responded. None of them looks at the content.
A 200 that’s empty
The frame of the page comes from a template, and the content in the middle is filled in from a data source. When the data source comes back with nothing, the frame still renders as usual.
The result is a page with a 200. Title, menu, footer and the whole structure are there, and the middle is empty.
The monitoring reports everything normal. Visitors see a blank page.
Check the content instead
Our checks no longer look at the status code. They look at how much text is in the main content area.
They grab the main content block, strip the tags and count what’s left. Below the threshold it goes red, whatever the status code is.
Thresholds have to be set page by page. A normal article listing and a normal contact page can differ in word count by a factor of ten. For pages where you really can’t settle on a number, at least require that it isn’t zero.
Same thing elsewhere
A batch job that returns 0 when it’s done means it finished, not that it processed anything. Process 300 records and you get 0. Process none and you also get 0.
A file existing doesn’t mean there’s anything in it. A write that fails halfway often leaves a 0-byte file behind, and most downstream programs only check whether the file is there.
So when we see a green light, we ask one more question: does it prove “it ran,” or “the thing is there”?



