GEO Results After One Month: What Actually Moved
In early July I published What Is GEO? and promised something most optimisation write-ups skip: numbers later, not a confident story now. A month of Generative Engine Optimization (GEO) passes, internal linking, and the usual publishing rhythm later, the analytics finally moved enough that I can report without inventing a narrative.
Generative Engine Optimization (GEO) is structuring content so AI answer engines can parse, quote, and cite it. This post is the one-month measurement follow-up: what GA4 and Google Search Console show, which AI tutorials carried the growth, why “Direct” is the awkward headline, and what I will change next. A longer three-month piece with deeper infrastructure notes is already sketched for later.
I am not going to pretend this is a laboratory experiment. I changed content structure, links, and publishing cadence at the same time. What I can do is show the evidence, separate the one screenshot I can pin to exact dates from the supporting slices, and keep the claims smaller than the charts.
What Changed in One Month of Active Users
The verified GA4 snapshot is the Trend of 30-day active users report for 12 July – 10 August 2026, compared with 12 June – 11 July 2026, with Singapore excluded:
| Metric | Value |
|---|---|
| Current 30-day active users | 28,924 |
| Previous period | 19,164 |
| Change | +9,760 (+50.93%) |
That is a real step up for this blog. The line does not look like a single viral day. It climbs in stages — roughly mid-July around 700–800 on the daily 30-day series, a step near late July toward ~1,000, then another near early August toward ~1,400 — rather than one vertical spike.
GA4 — Trend of 30-day active users (12 Jul–10 Aug 2026 vs 12 Jun–11 Jul 2026). Country filter: Singapore excluded. Current period climbs in stages; previous period stays flatter.
Two caveats before anyone tattoos “+51% from GEO” on a slide:
- A 30-day rolling metric also steps upward when stronger recent days replace weaker days that fall out of the window. The jump is real; it is not always “hundreds of brand-new people arrived in one afternoon.”
- I excluded Singapore while checking whether one country was distorting the story. The upward trend still held without that traffic. Caution was reasonable; panic was not required.
How people arrived is a separate question. The traffic-acquisition and pages reports below come from supporting GA4/Search Console reviews around the same period — useful for direction, not as precise as the table above until I re-export them on the same date range.
Which Pages Grew: AI Tutorials, Not Only the Homepage
In a pages-and-screens slice from that review, homepage and blog index grew modestly, while a few AI tutorials grew much faster — on the order of roughly +70% for the Codex CLI guide and roughly +90% for Local AI agents with Cline, Ollama, and MCP, with Claude Pro vs Free up only a little. Absolute view counts in that slice were far smaller than the 28k active-user total, which is normal when GA4 reports use different metrics, filters, or windows.
That pattern usually means people land on the article itself — from search, a shared link, or an AI citation — rather than only browsing the site like a magazine.
Two more observations:
- Growth is not concentrated on a single page. If only one URL exploded, I would suspect a Hacker News or Reddit front page. Several related posts rose together.
- At least one older, news-tied AI post declined sharply in that slice. That is not automatically failure. News-cycle pieces fade; evergreen install-and-setup guides often take their place as the durable traffic source.
The topical cluster that won is consistent across GA4 and Search Console: Codex CLI, Claude, local AI / Cline / Ollama / MCP, and supporting tooling such as Homebrew. Google tends to reward coherent clusters more than isolated one-offs — which is exactly what internal linking and GEO restructuring are meant to reinforce.
Organic Search vs Direct: What GA4 Can and Cannot Tell Us
A traffic-acquisition slice from the same review period was Direct-heavy: on the order of ~2.4k sessions (~+60%), with Direct around ~2.1k (~+70%) and Organic Search only a few hundred sessions (~+20%). That put Direct near ~88% of sessions in that window. Treat those figures as approximate until they are re-exported against the same 12 Jul–10 Aug range as the active-user chart.
An earlier monthly measurement snapshot from 3 August 2026 (last 7 days) showed the same shape: Direct 717, Organic Search 47, AI Assistant 3. Different window, same awkward mix.
For a content-heavy blog that sounds wrong if you still think “Direct = someone typed the URL.” In GA4, Direct is often the bucket for missing attribution: Slack, Discord, Telegram, WhatsApp, some email clients, bookmarks, privacy-preserving browsers, desktop apps, and AI assistants that do not pass a reliable referrer or UTM.
So my working reading is:
- Google Search is steadily helping (Organic up in both slices, and Search Console agrees the same tutorials are surfacing).
- Something else is sending a lot of visits that GA4 cannot name, and those land in Direct.
- The labelled AI Assistant channel is still tiny (single digits to low teens depending on the window). Treat it as a lower bound, not the full AI-referral story — and nowhere near enough to explain the Direct jump on its own.
This is also why GEO and classic SEO are hard to disentangle in practice. Clear titles, command-line examples, and answer-first sections help humans, Google, and answer engines. When Direct rises while Organic rises more slowly, the honest sentence is: search is improving, and unattributed discovery is doing heavy lifting too.
Search Console: Almost-Ranking Pages and High-Intent Queries
Search Console is the independent check I trust when GA4 gets mysterious. The query/page export from the review (not yet re-synced to the exact Jul 12–Aug 10 window) still points the same way.
Codex CLI showed up as a search leader — low double-digit clicks with an average position around the low teens. The queries attached to that cluster are not casual browsing. They look like people stuck mid-install:
- Codex CLI install on Linux
zsh: command not found: codex- Homebrew / WSL install paths
- curl-based install script lookups
That matches the GA4 page winners: high-intent developer problems.
Average positions elsewhere in the same niche were also encouraging rather than depressing — roughly Claude ~9, Codex ~12, Homebrew ~13, local AI agents ~16. Positions around 9–16 mean Google is already testing these pages on page one or early page two. Moving from 12 → 6 often unlocks more clicks than moving from 40 → 30. CTR figures in the raw export looked suspiciously tiny (likely rounding or a very wide impression base), so I am treating position and query intent as the useful signals, not a single CTR decimal.
Importantly: Search Console does not show the kind of click volume that would, by itself, explain a Direct-dominated acquisition mix. That reinforces the mixed hypothesis — Google up steadily; shares / chat / bookmarks / AI opens filling Direct.
Why GEO and Internal Linking Are a Plausible Explanation
After the July GEO pass and ongoing link work, here is why I think site architecture belongs in the explanation — without claiming it is the only cause.
GEO changes I already described in the first post — one-sentence definitions, question-shaped headings, answer-first paragraphs, self-contained chunks, FAQ/HowTo structured data — make pages easier for both RAG-style retrieval and classical ranking systems to interpret. They do not invent authority. They stop burying the answer.
Internal linking helps crawlers and humans see one topical neighbourhood:
- AI coding assistants
- Codex CLI
- Claude
- Cline + Ollama + MCP
- Developer setup (Homebrew, shells, WSL)
When several related AI posts improve together, improved crawl paths and link equity are a credible mechanism — more so than a single viral referral.
Site-wide pieces from the GEO infrastructure work (llms.txt, FAQ/HowTo schema includes, clearer crawler policy) support the same goal: make the library legible to machines. Per-post optimisation is handled by the AI Search Optimization skill; monthly geo-act-on-report and weekly geo-action-execute tasks queue structure back-fill and indexing links so the work does not depend on one heroic weekend.
Could scrapers still be in the mix? Possibly. I watch for single-country spikes, empty engagement, and odd device mixes. So far the multi-page, multi-metric pattern plus Search Console impressions on the same tutorials argues for mostly real readers. GitHub Pages is static; it will not invent sessions by itself if the GA4 tag is loaded once.
What I Will Do Next
I am not pivoting the blog into “whatever is trending this week.” The data says: deepen the cluster that is already almost ranking.
- Expand Codex CLI troubleshooting — FAQ and sections that use the exact wording of install/error queries (
zsh: command not found: codex, Linux install, Homebrew on WSL). - Keep growing the local AI agents line — freshness (versions, screenshots) for Cline / Ollama / MCP, plus tighter links to Codex and Claude posts.
- Add an AI Coding Tools hub — a short map page so humans and crawlers see the hierarchy in one place.
- Refresh winners before inventing thin new posts — structure back-fill (
faq:,howto:,article_type: tech) and contextual links via the existing GEO action queue. - Measure the right things for 2–3 months — GSC impressions and average position for the almost-ranking set; Organic vs Direct on a matched date range; landing pages for Direct sessions; AI Assistant as a noisy lower bound.
The planned list lives in _organisational/blog_content/POSTS_TO_PUBLISH.md so I do not lose the thread between monthly reports.
Final Thoughts on One Month of GEO Measurement
This does not look like a random spike, and it does not look like a pure Google fairy tale either. It looks like a technical blog building a recognisable niche — practical AI tooling — while analytics struggle to name every door people walk through.
GEO did not “cause +51%” in a clean causal sense. GEO and internal linking and evergreen tutorials and unattributed sharing are allowed to share the credit. What I refused to do a month ago still holds: I will not sell you a traffic firehose. I will keep measuring, keep restructuring pages so machines can quote them accurately, and keep writing for the human who is stuck on an install error at 11pm.
If you are doing the same work on your own site, watch positions 5–20 harder than yesterday’s user count. That is usually where the next real step lives.
The three-month follow-up will fill in longer trends and the deeper infrastructure layer. Until then: same library, clearer shelves, and a little more evidence each month.
References
- What Is GEO? How I Optimised My Blog for AI Search
- Getting Started with Codex CLI
- Local AI Agents with Cline, Ollama, and MCP
- Claude Pro vs Free
- Homebrew Setup and Usage
- Moving to GA4
- GEO: Generative Engine Optimization — Princeton et al. (KDD 2024)
- Google Search Console Help
- GA4 Traffic acquisition reports
GEO Results FAQ
Did GEO increase this blog’s traffic in one month?
Traffic rose, and GEO plus internal linking is a plausible contributor — but it is not a clean A/B proof. Verified GA4 30-day active users grew about 51% (19,164 → 28,924, Singapore excluded). Several AI tutorials improved together in a separate pages report. Causation is shared with normal SEO, freshness, and unattributed Direct traffic from shares or AI chats.
Why is most of the traffic Direct in GA4?
GA4 Direct includes visits with no usable referrer: bookmarks, some email clients, Slack/Discord/Teams, privacy browsers, desktop apps, and many AI-assistant link opens. For a technical blog, a high Direct share often means real readers arriving through channels analytics cannot name — not only people typing the URL.
Which pages grew after GEO work?
In the pages-and-screens review, the strongest movers were the Codex CLI tutorial and Local AI agents with Cline, Ollama, and MCP — both well ahead of homepage and blog-index growth. That pattern fits people landing on tutorials from search or shares rather than only browsing the site.
What should I measure next for GEO?
Prioritise Google Search Console impressions and average position for your almost-ranking pages (roughly positions 5–20), then Organic Search vs Direct in GA4, and landing pages for Direct sessions. Total users alone can mislead because a 30-day rolling window steps up when stronger recent days replace weaker ones from a month ago.
Is a sudden country spike (for example Singapore) always bots?
Not always. Exclude that country temporarily and check whether users, sessions, and the same tutorial pages still rise. If growth remains multi-page, Search Console impressions also climb, and engagement does not look empty, treat bots as less likely — but keep watching for single-country, short-session anomalies.
Enjoyed this? Get more like it.
Weekly notes on AI tools, Python, and what I'm actually building — plus two free gifts: the 15-page Fantastic AI: The 2026 Toolkit and a Git Commands & Contribution Workflow Cheatsheet.