vibedraft
All posts
x-growthdistributionbuild-in-public

Why My X Posts Get Reach But No Traffic (1,627-Post Audit)

My X posts hit 11,590 impressions but sent 1 visitor to my product. After auditing 1,627 of my own posts, the cause is a fixable reach/CTA split.

Ricky Miskin6 min read

I build a tool that helps founders get seen on X. On July 23, 2026, my own product site got one visitor.

So I did the uncomfortable thing. I pointed my own analytics at 1,627 of my posts and asked one question: how do I drive traffic to my product from X when the reach clearly exists somewhere?

The answer is simple, and it is fixable. Your reach and your call-to-action are living in two different posts. The post that gets seen never asks anyone to click. The post that asks for the click never gets seen.

TL;DR:

  • Across 1,627 of my own posts, the median post reached 68 people and 91% earned zero bookmarks.
  • My biggest post ever hit 11,590 impressions. It was about a pain, and it linked nowhere.
  • The posts that actually sent clicks had the link inside them and got roughly 60 to 300 impressions.
  • The fix: fuse them. One thread that names the pain to earn reach, then a soft link in a reply.

The short answer: your reach and your call-to-action live in different posts

A post that names the pain gets seen. A post that names your product gets clicked. They are almost never the same post.

That is the entire problem, stated in one line. Everything below is the proof from my own account and the exact way I am fixing it.

Here is the honest starting picture. On the day I ran this audit, the product got one visitor and seven page views. Not one visitor from X. One visitor, total.

vibedraft.app Vercel analytics for July 23 2026 showing 1 visitor and 7 page views
The real dashboard on audit day. 1 visitor, down 75% from the day before. This is what shouting into a void looks like on a graph.

What 1,627 of my own posts actually show

I have been posting on X for months and tracking every post in my own database. The numbers are humbling, and they are exact.

MetricValue
Total posts tracked1,627
Posts with zero bookmarks1,480 (91%)
Median post reach68 impressions
Biggest post ever11,590 impressions
Product visitors on audit day1

Figures from my first-party post database, snapshots polled every three hours since April 2026.

Read that median again. Half of everything I posted reached 68 people or fewer. I had been calling this "building in public." It was closer to talking to myself in a room with the door shut.

But the 11,590-impression post proves the reach is reachable. So the problem is not that people ignore me. The problem is what I do with the attention when I get it.

My best posts were all the same pain, and none of them linked anywhere

I sorted every post by reach and by save rate. The winners were not random. They were all about one thing: how hard distribution is after you ship.

My single biggest post said, in part: "you built the SaaS. now comes the part nobody talks about: distribution." It reached 11,590 people.

My best save rate came from this one: "you built your SaaS. no audience. no newsletter. no connections in the space." People bookmarked it because it named their exact fear.

Look at what those posts have in common. They name a pain the reader is living inside. And not one of them contained a link. The most-seen content I have ever made pointed the reader at nothing.

The posts that did drive clicks got almost no reach

Now the other side of the split. When I filtered for the posts that actually sent clicks, the pattern flipped.

My best link-driver got 87 clicks. It reached 943 people, because the post was basically the link itself. A post that said "I built this to automate my posting on X" got 16 clicks off 203 impressions. My straight product posts, the ones that name the tool, mostly sat around 60 impressions.

So here is the trap, in a table:

Post typeTypical reachTypical link clicksGood for
Pain post (names the reader's problem)2,000 to 11,5900 (no link)Getting seen, saved, followed
Pitch post (names your product)60 to 300a handfulGetting clicked, by almost no one

The pain post earns the room. The pitch post has the microphone. They are never on stage at the same time. That is why the reach never becomes traffic.

The fix: put the call-to-action where the reach already is

The fix is one decision. Stop separating the pain from the ask.

Write one thread. The opening post names the pain and carries no link, so it keeps its full reach. The middle delivers the proof or the story. The last step is a single reply that carries the link, so the click has somewhere to land.

Reach first. One clear call-to-action second. Same thread.

The reply matters more than it looks. X ranks posts with outbound links lower, so a link in your main tweet quietly caps the reach of the exact post you wanted seen. Keeping the link in a reply protects the reach and still gives one honest place to click.

I almost kept doing it the old way. The reasoning sounded fine: "pain posts are for reach, product posts are for selling, keep them separate so you don't look thirsty." It sounds disciplined. It isn't. It just guarantees the two audiences never overlap.

The hook pattern that earns the reach

If the plan is "earn reach with the pain, then hand over the link," you need pain posts that reliably land. Mine share a pattern I can now name.

Second person. Name what is missing, not what is there. Short lines. A specific stake.

Three that worked:

  • "you just launched. crickets. not because your product is bad. because distribution is a full-time job you didn't sign up for."
  • "you built your SaaS. no audience. no newsletter. no connections in the space."
  • "everyone says build something people want. nobody explains how to get it in front of those people."

None of these are clever. They are exact. They describe the reader's Tuesday. That is why they travel. If you want the wider playbook behind why these land, I broke it down in how to grow on X.

How I'm testing this in public right now

I did not want to write a theory post. So before writing this, I ran the fix live.

I posted a five-part thread that opens with the one-visitor confession, walks through this same data, and drops the product link only in the final reply. Reach in the main post, one call-to-action in the reply. The exact structure this post argues for.

Now I get to watch a real number: do the clicks on that final reply beat my old isolated-pitch baseline of roughly 60 impressions and near-zero clicks? If they do, this stops being a theory and becomes my template.

The bottom line

If your X posts get impressions but your product gets no traffic, you almost certainly have a reach/CTA split. The posts that get seen carry no link. The posts that carry the link never get seen. The traffic dies in the gap between them.

The fix costs nothing. Write one thread that earns reach by naming a real pain, keep the main post link-free, and put a single soft link in the first reply. Reach first, one call-to-action second, same thread.

The caveat: this only works if the pain post is genuinely good on its own. A weak hook with a link in the reply still reaches 68 people. Fix the hook first, then attach the ask.

Sources: the 1,627-post figures come from my own X analytics database, snapshots polled every three hours since April 2026. The 1-visitor figure is from vibedraft.app analytics on July 23, 2026. The live thread above is the experiment in progress.