Essays / Building in public
My web log said 245 visitors and the honest count was 36
A traffic number turns up already believed. It sits in a box, it is bigger than last week’s, and everyone reading it adjusts their mood to match. Almost nobody asks what the box is treating as a visitor.
On 3 September 2026 the raw web log for my product site showed 245 apparent visitors for the day. The honest figure, once the counting rule was fixed, was 36.
The gap is not a bug and it is not unusual. My site sits behind a content network that cannot see the apex domain, so the numbers do not come out of an analytics product. They are parsed from the server’s own request log. That log is a list of everything that asked the server for something, and a great deal of what asks a server for something is not a browser with a person in front of it. At the level of a single request there is nothing to tell them apart. A scanner hitting one URL looks the same as somebody arriving from a link. If you count requests, or count the distinct sources of requests, you will get a number like 245 and it will feel great.
So the definition had to be about behaviour rather than identity. Naming the bots is a race you cannot win, since anything can claim to be anything in the part of the request that says who it is. What is harder to fake is what happens next.
The rule I settled on is that a visit only counts when the same session asked for a page and also asked for something that page would have told a browser to fetch. A stylesheet, a font, a script, an image. One request on its own does not count as anything. Anything that asks for a single page and nothing else is treated as a scanner. My reasoning is that a browser rendering a page has to come back for the rest of it, because that is what rendering a page involves, whereas something that only wants to know if the page exists takes the HTML and stops there. That rule will throw away some real visits. I am comfortable with that, and the reason why is the actual point of this piece.
It is worth being precise about what the corrected number is. Thirty-six is the count of sessions that behaved the way a browser behaves. It is not proof that thirty-six humans read anything. Some of those could still be automated, and some of the 209 I threw away might have been a person on a connection that dropped. What I can say is that thirty-six is a floor built on an observable event I can describe in one sentence. Two hundred and forty-five was a count of things that made a noise.
That is the trade, and the asymmetry runs one way. If I under-count, the number is a floor, and when a floor moves the movement is real, because the noise was discarded before the comparison. If I over-count, I am inflating by an amount I do not know and cannot hold steady between one week and the next. Growth then becomes impossible to separate from a change in whatever happens to be scanning the internet that month. There is also the version where somebody eventually checks, finds the 245 was 36, and quietly stops believing every other number I have ever put in front of them. That risk does not stay contained to the number that was wrong.
So this is now written into how marketing reporting works here. A traffic number is guilty until corroborated. Under-count and be believed. When a platform number jumps, find the mechanism before reporting the lift, not after a client asks what caused it. If I cannot say what physically happened to produce a rise, I do not have a rise, I have a change in the log. I run my businesses with a team of AI agents I built, and this rule is one of the things checked before a figure goes anywhere.
The wider version, which I think holds well beyond web traffic, is that a number you cannot explain the mechanism behind is not a number yet. It is a reading. Here the honest number is 36, and publishing 36 makes the week look worse than publishing 245 would have. Nobody congratulates you for a number that went down because you counted better. There is no version of this where I get to say the site tripled overnight.
None of it is clever. The way I think about it, it is closer to counting stock, where you count what is on the shelf rather than what the paperwork says should be on the shelf. The difference is that a bad stock count gets caught by an empty shelf, and a bad visitor count gets caught by nothing at all. It just makes every report downstream of it slightly fictional, always in the flattering direction.
The other 209 asked for a page that day and stopped. None of them ever came back for the stylesheet.