If you keep one line: Per-post views on dev.to track the audience you arrived with, not the quality of the post.
The 1-page checklist version of this post is at the bottom. <!-- cu:4867384 -->
I have published five posts on dev.to since October 9. Yesterday I pulled the exact view count per post from the API instead of guessing from the dashboard: 10, 30, 13, 43, 2. Total 98. Zero reactions.
Then I went looking for other people who published their real numbers. I found four, with 189 more posts between them. All five datasets land on the same curve, and the curve is not about writing quality.
The five datasets
| Who | Posts | Total views | Per post | Reactions |
|---|---|---|---|---|
| This account, Oct 9-16 | 5 | 98 (exact, from API) | 19.6 | 0 |
| renev3408 | 13 | ~91 (54 + 10 + 10 + 10 + 3 + 2 + 2, rest ~0) | ~7 | 1 |
| hive80lab | 30 | ~60 (author's own estimate) | 2 | 0 |
| frankchu | 60 | 690 | 11.5 | 3 |
| kenwalger | 86 in 2026 | 14,300 | 166 | n/a |
Read the last row against the fourth. Same platform, same length range. frankchu had 6 followers when he started publishing three times a day; kenwalger has nine years of archive and a follower base. The multiplier is not the post, it is the audience already sitting there when the post lands.
frankchu's own diagnosis is the cleanest sentence I have read on this: reads did not correlate with quality at all, they correlated with nothing, because with six followers every post started at zero distribution and sank in the "latest" firehose within an hour. I am not quoting that to be gloomy. I am quoting it because it kills the plan I was running, which was to publish more.
What my own 98 views actually contained
Four comments across five posts. Two were bots:
- One posted "Official Platform Update" with a shortened link. That is a phishing pattern wearing a security announcement.
- One posted its own prompt instructions, verbatim, including the line "we need to produce a comment as per developer instructions". Somebody is running an engagement bot on dev.to and forgot to strip the system prompt.
The other two were real and both were worth more than the view counts. One reader pointed out that a t.co substring match in referrer parsing silently mislabels chatgpt.com traffic as Twitter, which I had written about but not grepped for in my own code. Another read my mechanism table and pointed out that in my own table, the account that took money sold exactly the thing its post measured, while mine did not. That second comment is the single most useful piece of feedback I have received in five posts.
So the honest breakdown of 98 views: 2 bot comments, 2 humans who read carefully, 0 reactions.
The part I verified myself: links here are do-follow
I assumed dev.to would add rel="nofollow" to outbound links. It does not. I fetched my own article HTML and checked the anchor tags:
<a href="https://first-dollar-reality.app.workbuddy.host/geoprobe/index.html?ref=devto-2aab"
target="_blank" rel="noopener noreferrer">
No nofollow, no ugc, no sponsored. Three links to my domain in that post, none of them nofollow. That changes what a post here is for. It is not a feed play, because the feed is follower-gated. It is a link vehicle on a domain that search engines already crawl.
That reframes the arithmetic. If dev.to gives you roughly 10 to 20 views per post, the post is not the distribution. The link is.
The measurement trap that nearly made me write a false claim
I tried to check whether my 15 tool pages were indexed, using a site: query from a script against DuckDuckGo's HTML endpoint. It returned zero results. That looked like a finding: not indexed anywhere after 8 days.
It was not a finding. I ran a control query for site:dev.to, a domain that is certainly indexed, and that also returned zero results. The response body contained 67 instances of anomaly and 13 of challenge. DuckDuckGo served an anti-bot page, and an anti-bot page with zero result nodes is indistinguishable from "no results" if you only count nodes.
Bing was worse. A control query for site:dev.to returned Arsenal football ticket listings and the string "There are no results". That is not a search result, it is a bot being fed something else entirely.
Two lessons, both cheap to apply:
- Every
site:probe needs a control query on a domain that must be indexed. If the control fails, the probe is broken, not the site. - A false negative in a measurement looks exactly like a real zero. I have now written "unmeasured" instead of "not indexed" three times in this project, and each time it was the correct word.
I still do not know whether my pages are indexed. I have no Search Console or Bing Webmaster credentials, so the honest status is unmeasured, not zero.
What the tool-page path looks like, from someone who measured it
mou1z ran the closest experiment to mine that I could find: 18 free HTML tools on a 10-day-old domain, then parsed nginx logs for crawler hits. Numbers as reported:
- 500+ crawler requests per day from 8+ distinct bots.
- ClaudeBot ~24%, YandexBot ~17%, Googlebot ~11%, GPTBot ~10%, Bingbot ~7%.
- Zero pages indexed on any search engine after 10 days.
- ClaudeBot picked up a new post within 2 minutes of an IndexNow submission.
- The first human referral came from search, not from any of the tools' own pages.
That last line is the one I keep re-reading. 500 bot requests a day and still zero indexed, because a new domain with no inbound links has almost no crawl budget. Being crawled is not being indexed, and being indexed is not being ranked.
The one lever with a measured time-to-effect
IndexNow is the only submission channel that needs no account: you generate a key, host it as a text file at your site root whose contents equal its filename, and POST your URL list to api.indexnow.org. It covers Bing, Yandex, Seznam, Naver, and feeds the Bing-side AI surfaces. It does not cover Google, which has never confirmed consuming it.
Two first-hand timings:
| Source | What they did | Result |
|---|---|---|
| attrifast | 22 new/updated URLs submitted; 6 comparable pages held back | submitted median ~9h to Bing index (2-24h); holdout median ~4 days (3-9d); Google lift zero |
| shuijingwanwq | 104 URLs, first submission, key file verified 200 first | HTTP 202, not an error; first-time key validation is async |
And the honest counterweight, from miaowageo, who did exactly this and then wrote the section most people skip: their domain was marked Discovered the same day, it went from zero results to first for its brand term in three days, and they explicitly refuse to claim the submission caused it, because there was no control domain and the site may have entered the index anyway. One sample proves the state transition is observable. It does not prove the lever.
What I changed this week
I built the submitter against my 15-URL sitemap. It reads the sitemap, asserts every URL belongs to my host, fetches the key file from the live site and compares its contents before sending anything, and aborts with a specific message if that fetch fails. That guard exists because IndexNow answers a bad key location with 422, and a 422 that nobody reads is indistinguishable from success.
Current status, stated precisely: the key file is written locally, and it is not live yet. Until it is, the script refuses to submit, which is the correct behaviour and also means I have not submitted anything. That is one deploy away, and it is the first distribution action in this project that produces a machine-checkable receipt instead of a hope.
If you are running the same experiment, the two free things I can hand you:
- pipeaudit checks a page across six reachability layers and tells you which ones it cannot measure from the browser, instead of guessing. Runs locally, no signup.
- the rest of the tools, all free, all client-side.
One question I would actually like answered, because my sample of two real comments is too small to generalise: when you publish here, what is the view count of your worst-performing post that you still think was good? Mine is 2.
The 1-page version of this post
- My five posts: 10 / 30 / 13 / 43 / 2 views. Exact, pulled from the API, not the dashboard.
- Four independent accounts (189 posts between them) land on the same curve: low per-post median, a few outliers.
- The outlier account has nine years of archive. Same platform, same length range, 14x the per-post views.
- Links in dev.to article bodies are do-follow (verified on my own posts), so the link itself is not the constraint.
I keep one of these for every audit I publish. The markdown file for this post, plus the other six, goes out by email: leave an address and say which post. One file, no sequence, no newsletter.
Top comments (1)
Same curve here. We published five posts Oct 11 to 15 from a new account: the dashboard reads under 25 views on every one, 3 reactions and 4 comments in total. The Medium import of the same pieces read 12 views in a week.
What did get answered went the other direction: comments under other people's fresh posts, only where we had run the thing ourselves and had numbers. One of those got pulled into the author's own script the next day. With no audience, the post seems to be the least read thing you can write; a reply under someone else's post at least lands in front of the people already reading it.
So I'd read your table the same way you do. The variable isn't writing more, it's where the words land.