I shipped llms.txt and unblocked every AI crawler. Citation count: still zero.
I run five niche content sites. Two months ago I set out to get them cited by AI answer engines, and I did what the current advice says to do.
I shipped llms.txt on all five. It went from 404 to 200, 19–22.6 KB each, written in the same honest voice as the rest of the site — including the part where we state we don't run hands-on lab tests.
I unblocked every AI training and search crawler I could name — GPTBot, ClaudeBot, CCBot, OAI-SearchBot, PerplexityBot — and verified all five homepages returned 200 for each, then re-verified 12 hours later to confirm the config actually stuck.
I unified author attribution: real bylines, real LinkedIn, zero remaining "Editorial Team" placeholders.
Twelve hours later I measured citations again.
Zero. On all five sites, across all five probe questions.
First job: prove the zero is real
A zero is worthless until you've ruled out a broken measurement. This is the part most people skip, and I nearly got it wrong.
My check was source count. The probe returns a set of sources per query, and those counts came back 20, 21, 23, 18, 22 — matching my baseline run one for one. Same numbers means the same retrieval is happening. The probe was working; the answer was genuinely empty.
The second check was stickiness. Over 12 hours, the head of the source pool didn't change at all. That told me something useful: this isn't a volatile set that might roll my way tomorrow. It's a high-retention pool, which means 30 days is the minimum meaningful re-measurement window. Measuring daily is noise.
The false zero I almost published
There was a trap sitting right next to the real one. Brave rate-limits repeated queries. When it happens, source count comes back 0 and navigation times out — which renders as "no citations found."
That is not the same thing as zero citations. It's an empty response wearing the same clothes. Same failure shape as the Cloudflare interstitial trap I'd already hit on Perplexity.
The guardrails I added, all cheap:
- Treat a sample as valid only if source count ≥ 5. Below that, it's a failure, not a finding.
- Retry invalid samples up to 3 times.
- Space queries ≥ 25 seconds apart; ≥ 150 seconds cooldown after a confirmed rate-limit.
- Record invalid samples explicitly instead of silently writing 0.
Without that, I would have written "AI search doesn't cite us" from a rate limit. With it, I can say the zero is real and know why.
Why it's actually zero
The tempting explanation is content shape — our pages just aren't the kind that get quoted. I went looking for evidence and didn't find it.
What I found in the citation pool was a lot of structurally identical small vertical sites. Project management tools, AI-for-education tools especially: the same comparison formats, the same depth, the same "vs" pages we publish. Those sites get cited. Ours don't.
So format isn't the differentiator. The remaining variable is domain age and accumulated authority — the one thing you cannot ship in a sprint.
Traditional search agrees. Across the same sites, Search Console reports an average position of 73 and a CTR of 0.011%. That's not a content-quality signal. That's a two-month-old domain behaving exactly like a two-month-old domain.
My working expectation now: first real citation somewhere in the 6–12 month range. We're two months in.
The conclusion I didn't want
Shipping llms.txt and unblocking crawlers changed nothing measurable. Those two actions moved real numbers — 404 to 200, blocked to allowed — and produced zero movement in the metric I actually care about.
So I downgraded them. They're no longer growth levers; they're completed compliance items. Necessary, cheap, done, and filed. What I will not do is keep re-measuring them and calling it progress.
The separation I now apply to every task on these sites:
- Compliance work — correct, cheap, one-time. Does not move traffic or citations. Stop measuring it after it's done.
- Growth work — expensive, slow, uncertain. This is where the 6–12 month bets live.
Mixing them is how you spend a month feeling productive. "Shipped llms.txt" is a real checkbox, and it is worth exactly zero citations.
The uncomfortable but useful part: the zero was honest data. Knowing why it's zero — and knowing it wasn't a rate limit — is worth more than a lucky citation I couldn't explain.
If you want a second pair of eyes on your site's AI-search visibility, structured data, or the measurements behind them: /