I Automated Daily GEO Content for Two Weeks and Made $0. Then I Found I'd Never Installed Analytics.

Published: 2026-08-02 · Author: Alex K · Build in Public

I ran an automated content system for two weeks that published a GEO-optimized article every day across two sites. Eighteen articles. Every technical box checked: JSON-LD schema, llms.txt, IndexNow submission, AI-crawler rules in robots.txt, front-loaded answers, sourced statistics every 150 words. Revenue over those two weeks: $0. Paying users on the SaaS: 0.

Yesterday I stopped publishing and audited the whole thing instead. I found four problems. Three were bugs I had shipped and never noticed. The fourth was arithmetic I had never bothered to do, and it explains the other outcome entirely.

What the system actually did

A scheduled agent ran daily: pick a topic that doesn't duplicate existing coverage, research it with real sources, write 1,200–1,600 words in the structure AI engines tend to cite, run an eleven-point self-check, publish, ping IndexNow for Bing and Yandex, append to llms.txt.

It worked. The articles are fine. Seven on the products site, eleven on the SaaS site. The self-check caught real problems — word counts, missing citations, banned filler phrases. If you graded this on execution it would pass.

Bug 1: my llms.txt advertised two pages that did not exist

llms.txt is the file you publish so AI crawlers can find your best content without guessing. Mine listed seven articles. Two of them returned 404.

They had been written into the index by an earlier run, but the article files were never created. So the file I was specifically publishing for AI crawlers — the one whose entire job is to say "here is my good content" — pointed two of its seven entries at nothing. That had been live for days.

Nobody tells you when this happens. There is no error, no report. The crawler requests the URL, gets a 404, and adjusts its opinion of your domain silently.

Bug 2: I had no analytics on the site where I sell things

Not misconfigured. Not sampling wrong. None. No Google Analytics, no Plausible, no Umami, nothing.

I spent two weeks asking "why is nobody buying" while having literally no way to know whether anyone was visiting. Those are two completely different problems with opposite solutions — a traffic problem means go get distribution, a conversion problem means fix the page — and I had no instrument that could tell them apart. I was optimizing blind and calling it strategy.

The other site was worse, because it looked solved. It had a Google tag firing on every page, and I had assumed that meant analytics. It was AW-18257847196 — a Google Ads conversion pixel. The AW- prefix tracks conversions attributed to ad campaigns. It reports nothing about organic traffic, sources, or behavior. A GA4 property is G- prefixed and is a separate thing entirely. Both load from googletagmanager.com, so a quick check of the page source shows a Google tag and tells you nothing about which one.

Bug 3: I had been carefully maintaining a robots.txt that is never served

This one is specific to Next.js App Router and I suspect it catches a lot of people.

If your project has both app/robots.ts and public/robots.txt, Next.js serves the generated one from app/robots.ts and silently ignores the static file. No warning at build time. Both files sit in your repo looking equally authoritative.

I had both. I had spent time adding explicit Allow rules for GPTBot, PerplexityBot, ClaudeBot and OAI-SearchBot — to the static file. The one that is not served. The live robots.txt had none of it. I only caught this because I curled the live URL after deploying and the rules I had just written were not there.

The lesson generalizes: after any change intended for crawlers, fetch the live URL and confirm. Do not verify against your source tree. Verify against what the internet actually receives.

Bug 4: the math was never going to work

This is the one that actually explains the $0, and it required no debugging — only arithmetic I had avoided doing.

My X account is at 102 followers, up from 31 about five weeks ago. That is my only real distribution channel. Here is the funnel, using deliberately generous numbers:

StageRateResult
Impressions per post (~100 followers)~500
Penalty for external link in post body−30% to −50%~300 effective
Click-through on the link~1%~3 clicks
Cold conversion, $39.90 product, unknown brand~0.5–1%~0.02 sales

That is roughly 40 promotional posts per sale. I made about 28 posts in two weeks, and most were about the other product. The expected number of sales was well under one.

Zero sales was not a signal. It was not the market rejecting the product, or the price being wrong, or the copy underperforming. Zero was the single most likely outcome of the distribution I had. I had built no mechanism capable of producing a sale, then treated the absence of sales as information about the product.

This is the part I would tell anyone in the same position: before you conclude that your product, price, or landing page is the problem, check whether you have sent enough people to it for that conclusion to be possible. For a $39.90 digital product you want somewhere north of 500 targeted visitors before the conversion rate means anything. I was likely in the low double digits.

What I actually got wrong

Not execution. The GEO setup is technically correct, and the articles are good. The strategic error was this:

I invested entirely in a channel that compounds over 6–12 months, while having no channel that works now, and no instrumentation to tell the difference.

GEO is real and I still believe in it. Citations from AI engines are winnable for new domains in a way that Google rankings are not. But a new domain earning AI citations is a slow process gated on things I cannot rush: crawl and index cycles, third-party mentions, domain age. Two weeks in, none of those exist yet. Publishing article nineteen would not have changed that. It would have consumed another day and produced the same zero, with the same absence of data to learn from.

The correct shape is two channels: one slow and compounding, one fast enough to produce traffic this month. I had only the slow one.

The uncomfortable part

One of the products I sell is a playbook on getting organic traffic from Reddit without getting banned.

I do not post on Reddit. Because I am afraid of getting banned.

I noticed this while writing the audit and it is difficult to argue with. Either the method works and I have been leaving a free, fast channel untouched while complaining about a slow one — or I do not trust my own material, which is a different and larger problem. It is the first one. I checked. I just had not used it.

The thing that makes Reddit feel dangerous is trying to promote. Promotion is also precisely what gets you banned. What works instead — posting genuinely useful things and being a real participant — requires no marketing skill at all. It requires being willing to show up before you have something to sell.

What changed after the audit

  1. Analytics on both sites, first. Everything else was guesswork until this existed. Two days of real data will answer the only question that matters right now: is this a traffic problem or a conversion problem?
  2. Dead links removed from llms.txt, and the file's structure fixed so the crawler-facing index matches reality.
  3. robots.txt fixed at the source that is actually served, verified by curling the live URL rather than reading the repo.
  4. Article schema added to every post on the SaaS site, which had FAQPage markup but no Article markup.
  5. Stopped publishing daily. Not permanently — but adding content while blind was the expensive version of doing nothing. The system stays paused until the data says where the bottleneck is.

I am not going to write the follow-up where this all worked out, because I do not know yet. The numbers start arriving in 48 hours. If you have run a slow-compounding channel with no fast one alongside it, I would genuinely like to know what you did first — that is the decision I am facing now.

Frequently Asked Questions

How long does GEO take to produce traffic for a new domain?

Longer than two weeks. AI engines need to crawl and index the content, and citation eligibility depends heavily on signals a new domain does not have yet — third-party mentions, established topical presence, and domain age. Published research suggests content cited by ChatGPT skews strongly toward pages that have existed for a long time. Treat GEO as a 6–12 month compounding investment and pair it with a channel that produces traffic in the meantime.

How much traffic do you need before conversion rate means anything?

For a digital product in the $20–$50 range, expect roughly 0.5–1% conversion on cold traffic from an unknown brand. At that rate you need several hundred targeted visitors before zero sales tells you anything about the product rather than about your distribution. Below about 100 visitors, zero sales is the statistically expected result regardless of how good the product is.

Why doesn't a Google Ads tag count as analytics?

A Google Ads tag (AW- prefix) records conversions attributed to ad campaigns. It does not report pageviews, traffic sources, sessions, or user behavior. Google Analytics 4 uses a G- prefixed measurement ID and is a separate property you create in the Analytics console. Both load gtag.js from googletagmanager.com, so seeing "a Google tag" in your page source does not tell you which one you have. Check the prefix.

Which robots.txt does Next.js actually serve?

In the App Router, if app/robots.ts exists it is served and public/robots.txt is ignored, with no build warning. If you have both files, only the generated one has any effect. The same precedence applies to app/sitemap.ts versus a static public/sitemap.xml. After deploying, curl the live URL to confirm what is actually being served.

Should you keep publishing while you have no analytics?

No. Content published without instrumentation produces no learning — you cannot tell whether it attracted anyone, from where, or what they did next. Installing analytics is usually under an hour of work and turns every subsequent article into a measurement. Publishing blind converts effort into content volume and nothing else.

I Automated Daily GEO Content for Two Weeks and Made $0. Then I Found I'd Never Installed Analytics. | AlexSignal