16 months of blog output, 5 total clicks. We were measuring the wrong layer.
Founder here, I run a done-for-you affiliate storefront service, so I am not neutral about this. I sell storefronts that depend on traffic, and my own marketing blog got 5 clicks in 16 months. That is why I went looking.
Not 5 a day. Five in total.
The rest of what Search Console shows: 294 indexable pages, 236 of which have never received a single impression. 230 URLs sit in "Discovered, currently not indexed", which is Google's own label for an address it knows about and has not crawled. Median position 28.5.
Our working assumption was the usual one. Write more, publish more often, cover more queries. We never questioned it, because production was busy. Busy is not the same as working.
When we finally looked at the serving layer instead of the content layer, the first thing we found had nothing to do with writing. Any path containing a dot, a png file for example, fell through to our locale handler and threw a 500. Googlebot was let in and then handed an error. We fixed that this week.
We also turned off Cloudflare's AI bot blocking this week. That setting targets AI crawlers, not verified Googlebot, so I am not claiming it explains the indexing numbers. I mention it because it was on and we did not know it was on.
Too early to say whether either fix recovers anything. I am reporting what we found, not a turnaround.
The check itself is not clever. Fetch your ugliest URLs with Googlebot's user agent using curl, pass the Googlebot user agent string with the -A flag, and read the status code back with the write-out flag. Do not start with your homepage. It is the page most likely to be healthy, so it tells you the least. Run it against a paginated listing, a URL with a query string, and one deep page nobody links to. This is old advice, not a discovery. We had simply never run it, and that is the part I am least comfortable writing down.
The same failure mode showed up on the writing side. We built a deterministic checker for our content rules, mostly because we wanted claims verified by something other than a careful reader. On a real run it flagged our own writer inventing an observation: a sentence saying we had read search results on a specific date and seen a specific pattern. The research output contained no such observation. The sentence came out. Reading it more carefully would not have caught that, because the sentence was perfectly plausible.
Separately, we measured whether our posts were competing with each other instead of continuing to assume it. 13 posts, 78 pairs, similarity threshold 0.363, highest observed 0.300. The assumption was wrong.
If you have ever run a Googlebot user agent fetch against your ugliest URLs, what status code came back that surprised you?
Replies