How We Automated Our Own SEO — the Build Log
Everyone talks about AI. We wanted to run our growth on it, in the open, without faking a number. So we aimed the automation we build for clients at our own worst problem: SEO for a small bootstrapped site in a loud category. No content team. No guessing. Two rules: decisions come from data, and claims have to be true.
We Started With Data, Not Keywords
We didn't start with content. We started with a command center. Every Search Console export gets saved, dated, and compared to the last one, so we know what actually changed instead of guessing. It caught things instinct would miss: impressions rising weeks before any clicks, German cost queries quietly converting, a stack of posts Google found and ignored. Same rigor we bring when we build automation for clients, pointed at ourselves.
The discipline that made the difference is unglamorous: every export is saved with the date it was pulled and the date its data ends, because those are never the same day and comparing two pulls without that distinction produces confident nonsense. Everything interesting we have found came out of a diff between two dated exports rather than out of any single report.
Intent Before Keywords
Then we sort every query the site ranks for — 247 when we started, 585 as of the 30 August pull — by what the person wanted: learn, compare, or buy. A page on the first results page with zero clicks doesn't need a new keyword. It needs a better headline. Most "AI content engines" skip this and just spin up pages around keywords. We start from intent, build the page to match, and make sure someone still owns it after it ships.
Intent classification also tells you when not to write. Several times the read has said the honest answer is that a page already exists and needs deepening rather than a sibling — which is the opposite of what a keyword-driven content engine would do, and the reason we have not shipped a new URL for most of the cycles this engine has run.
We Fixed What Was Actually Broken
The problem was plumbing, not prose. Dozens of posts were orphaned, reachable only from the blog index, so Google never bothered to index them. The cause was almost silly: a "related articles" box showing the same three posts on every page. We rebuilt it so every post links from at least two others, added real links inside the writing, and checked it live. That diagnosis is exactly what an AI audit does for a client site.
Two later fixes belong in the same category of plumbing-not-prose. Sitemap lastmod values had frozen, so pages that had genuinely changed were advertising a stale date and not getting recrawled. And a batch of pages had good, correct content behind snippets Google had crawled months earlier and never re-read — a problem no amount of rewriting fixes, because the rewrite is invisible until the recrawl.
The Engine Runs Weekly
With the plumbing fixed, the loop got boring, which is the point. It reads the latest Search Console data, finds something just off page one, drafts a piece with real facts and the right links, and sends it for review. A person signs off on every word. For a real business making real claims, that isn't a bottleneck. It's the whole point.
The loop has taught us three things about its own metrics, and all three are the kind of thing you only learn by keeping the exports. Site-wide average position is close to meaningless once a single high-impression query dominates the set — one page at position 3 with a quarter of all impressions bends the whole average. It is meaningless again whenever a newly indexed page starts collecting impressions at page eight, which drags the average down while nothing has actually got worse. And the query-level sheet does not cover the whole site — it accounts for well under two-thirds of impressions, so clicks routinely appear that are invisible in it and have to be found by diffing the Countries tab instead. The honest metric is the like-for-like cohort: the same queries, pull to pull.
The honest results so far
Here is exactly where it stands, from the Search Console pull dated 30 August 2026. Monthly impressions have gone from 23 in January to 5,845 in August — a month still three days short of finishing. Clicks over the same span went from 2 to 32. The site now ranks for 585 queries across just over 140 pages, and in twenty-five consecutive pulls it has not lost a single query it had gained.
Two honest caveats, because the point of this post is that the numbers are checkable. Clicks lag position, and they lag it badly at this scale. 104 queries sit in the top ten and the site still takes single-digit clicks in a good week — that gap is a snippet and authority problem, not a ranking one, and it is the current work. And a chunk of the click total is geographically fake — roughly half comes from two markets that are personal network rather than demand. We track the other half separately, because a metric that flatters you is worse than no metric.
What has actually compounded is impressions, and impressions are the leading indicator here: Google shows a page before it trusts it. The interesting number is not the total — it is that the curve bent upward in July, six weeks after the engine started running, and has not bent back.
Key Takeaways
- Start with data, not keywords. Save every Search Console export and compare it.
- Sort by intent first. A first-page result with no clicks is a headline problem, not a keyword one.
- Automate the fetching, scoring, and drafting. Keep a human signing off on every word.
Conclusion
None of this is magic and none of it runs itself. Search Console data, an honest read on intent, fixed linking rules, and a person who checks before anything ships. What automation buys is consistency, not invention — the loop runs whether or not anyone feels like doing SEO this week, and it produces a decision rather than a feeling.
The part worth stealing, if you take nothing else: save every export and diff it against the last one. Almost everything in this post came from a comparison, not from a single report. A single Search Console screenshot tells you where you are; a stack of dated ones tells you what your own work did.
Want it pointed at your site? Start with an AI audit. Curious who keeps it running afterwards? That is AI operations — the difference between a system that rots and one that keeps paying.