I auto-published 2,300 AI articles. Google buried 90% of my traffic.

A vast field of identical pale documents receding into the distance, with a single green seedling growing from dark soil in the foreground.
Illustration generated with AI (Flux 1.1 Pro).

This is the first post on this blog, and it exists because something I built failed. So let me start with the failure instead of a mission statement.

For sixteen months I ran a content machine on a side project called Startups Españolas. It published on its own, twice a day, nobody in the loop. By the time I actually looked at the numbers it had shipped around 2,300 articles. I was quietly pleased with it, and not for nothing: it was a real piece of software. A Laravel backend, the prompts kept in the database, several LLM providers wired up with fallback, publishing straight to the live site with no hand on the button. It felt like leverage. Set it up once, let it run, watch the pages pile up.

Then I pulled the full Search Console history and sat with it for a while, and the pile stopped feeling like an asset.

The numbers

Here is the monthly click trend, straight from the GSC API, nothing rounded in my favour:

MonthClicksImpressionsAvg. position
2025-0763876,19433.2
2025-0969556,45819.8
2025-1063433,37813.5
2025-1242831,47516.8
2026-0216615,83823.2
2026-0411514,96922.1
2026-06699,23632.1

The peak was September 2025, 695 clicks in a month. The last full month, June 2026, did 69. That is a 90% drop. Average position over the same stretch slid from about 13 back down to about 32, which in plain terms means Google took my pages from the bottom of page one to the bottom of page three and left them there.

The number that actually stung was the long tail. Over a 90 day window, 1,567 of the pages picked up impressions, so Google had indexed almost everything the machine produced. But only 147 of them, about 6%, earned a single click. I had built two thousand articles to feed a hundred and fifty that did anything at all, and even those were quietly going dark.

What I was telling myself, and what was true

The story in my head had been simple: more articles, more surface area, more chances to rank. It is an intuitive story and it is wrong. The thin pages did not add up to more traffic. They competed with each other for the same weak queries, watered down whatever topical signal the domain had, and handed Google a large heap of near-duplicate, machine-written text to judge the entire site by. That last part is precisely what the helpful-content updates exist to push down. I had not built an asset, I had built the exact thing the algorithm was learning to distrust.

And the traffic that did exist was never coming from the volume. It came from a small handful of genuinely useful startup profiles that happened to rank. The machine was not the valuable thing. Those few real pages were, and I had spent sixteen months on the other half.

The part where it got embarrassing

If the slow decline was the lesson, the fast one was the wake-up call. The brand was Spanish, es-ES only, on purpose. One day a channel with no language guard generated a batch of posts in English and pushed them straight onto a Spanish-only site, live, before anyone had seen a word of them.

Nothing caught fire. But that is the whole point of automation with no human gate: the day something does go wrong, it is already public before you know it exists. A pipeline that can publish a good post on its own can publish a bad one on its own, and given enough days it will, at the least convenient moment available.

What I actually took from it

I am not about to turn anti-automation on a blog about building with AI. I let it write most of my code and I am not going to pretend otherwise. The lesson is narrower and more useful than “AI content bad.”

Volume was never a strategy. A young site does not earn authority by producing more of anything; Google pays for depth and trust, not word count, and one real article beats five thin ones by a margin that is not close. Worse, thin content is not even neutral. Those pages did not simply fail to rank, they sat on the whole domain like a tax and dragged down the pages that could have. The reach lived in the content, never in the pipeline, and I had fallen for my own impressive machine.

Underneath both failures, the slow one and the embarrassing one, was the same single cause: things went live without a human reading them first. So that is the hard rule now, the one this whole blog is built on. Nothing publishes until I have read it. And I should have looked at the data in month three instead of month sixteen, because if I had, I would have switched the machine off in month four.

So what is this blog

This is the opposite bet. Static, hand-written, English, and slow on purpose. There is a small script that gathers what I actually did across my projects each week, the git history and the working notes, and hands me the raw material. Then I pick one thing worth writing about and write it myself, and I read every post before it goes live. No CMS, no queue, no provider zoo. When you are reading this, a human decided it was worth your time first.

I build around a dozen real projects, mostly solo, with AI doing a lot of the heavy lifting, and I am going to write honestly about how that actually goes. Some of it works. Some of it is this post. Both are worth showing.

If that sounds useful, the RSS feed is in the footer. No newsletter popup, no cookie wall, just the work.

← All posts