Fifteen Perfect Readers in Twenty Seconds
Fifteen page views hit my site in twenty seconds, every one claiming a perfect read. My bot filter passed all four of its own tests. Here is the signal that finally caught it.
By Ryan Nichols
- 6 total reach
- 0 reading now•0 active 24h
- 0 shares•0 inbound
- 0 comments
My own dashboard told me 52 people read something on my site this morning.
Thirty-seven did.
The other fifteen were one machine, and it walked straight through the exact test I built to catch machines.
Twenty seconds
At 8:46:28 this morning, a page view landed on my site. Fourteen more followed it. The last one came in at 8:46:48.
Twenty seconds. Fifteen views.
Every one reported a different visitor. Every one reported a scroll depth of 100 percent. Every one arrived with no referring link, from one country.
FACT. The browser string on all fifteen: Mozilla/5.0 (Linux; U; Android 4.3; en-us; SM-N900T Build/JSS15J).
DOCUMENTED INFERENCE. SM-N900T on Android 4.3 is a Samsung Galaxy Note 3 running an operating system from 2013. Fifteen of them, in twenty seconds, each one reading my article all the way to the bottom.
Why my own filter missed it
Three weeks ago I found robots padding my traffic and I wrote about it here: I Woke Up to 480 Visitors. 364 of Them Were a Robot.
Out of that I built a four question test, and I have run it every morning since.
- Does the browser admit it is a bot? Filter it.
- Is one browser string eating the whole day with no country and no referrer? Filter it by name.
- Is it one of the two fake browser strings I already caught? Filter both.
- Did the visitor scroll at all? Zero scroll means nobody read anything.
Question four was the backstop. It was the one I trusted most, because a scraper grabs the HTML and leaves. It does not scroll.
This one scrolled.
It reported 100 percent on all fifteen hits. Perfect reads. Question four does not ask whether the scroll depth looks human, it asks whether it is greater than zero. One hundred is greater than zero.
The first three questions missed it too. The site never flagged it as a bot. It is neither name on my list. And it did not eat the whole day, so nothing about its volume stood out. It took twenty seconds and left.
Four tests. Zero hits. Fifteen fake readers sitting inside my human number.
Look at what actually caught it
It was not the browser string.
| Signal | Fifteen real readers | What this was |
|---|---|---|
| Time span | spread over hours | 20 seconds |
| Visitor IDs | some repeat visits | 15 hits, 15 different IDs |
| Scroll depth | all over the map | exactly 100 on every single one |
| Referrer | mixed, some from links | none, all fifteen |
| Country | mixed | one |
No person reads fifteen pages in twenty seconds. No fifteen people all stop reading at the same pixel.
The tell was the behavior, not the name.
And that is the part worth your time, because every filter I had written until this morning was a list of things that already fooled me once. A list like that cannot catch the next one. It is a list of yesterday.
What I fixed before I wrote this
FACT. The string is filtered by name now, same as the other two. That took thirty seconds and it stops this one machine.
FACT. Corrected numbers for this morning: 37 human page views, 16 human visitors, and 15 real clicks in from X.
FACT. That last number matters on its own. X referrals were 2 on Monday and 8 on Tuesday. They are back to 15 before 8 a.m. today, with my posting rate unchanged at seven a day.
FACT. This burst appears on exactly one day out of the last twelve. Nothing I published before today was inflated by it. I ran that query before I wrote this sentence, because the dramatic version of this article is the one where every number I ever gave you was wrong, and that version is not true.
What this does not prove
It does not prove anybody is targeting me. Fifteen requests is somebody's cheap scraper or somebody's SEO crawler, not an operation.
It does not prove the rest of my numbers are clean. It proves the opposite of clean. There is no finished version of this filter.
What it does prove
Somebody hands you a number every day and calls it people. Your ad dashboard. Your website plugin. Your analytics tab.
Nobody in that chain is going to tell you which of those people were machines. My own site did not tell me, and I built the thing.
So ask three questions about any number before you spend money chasing it.
Where did it come from.
What did it do after it got there.
Could a machine produce that exact shape.
The third one is the one nobody asks.
I run this on my own site every morning before I look at anything else, because a marketing decision made on a padded number costs real money. If you want it run on yours, that is part of what I build.
Text me at (903) 500-8898 and tell me what you are working with.
Read next
Fighting Shadows · Pre-order
Early access for $29.99$29.99
Read it first and own a piece of the story — or become a Founding Supporter (limited to 250).
Don't lose this story to an algorithm.
The next chapter gets posted here first — on my own domain, where no platform can throttle it and no one can ban it. Drop your email or number and the update reaches you the moment it's live.
Email gets one confirmation click. Unsubscribe anytime. No spam, no selling your data — ever.
Tap how this hits you — no signup, everyone sees the count
Share this post — get it back in front of people
Comments
Speak here
Create an account to comment.
This is where people can say what gets buried or cancelled elsewhere. Comments are signed-only, moderated, and tied to a real profile so the record stays usable.
No approved comments yet. Create an account and put the first opinion on the record.