GEO: Why AI Search Engines Overlooked Us
This week we audited senn-tech.com with the same method we normally apply for clients: technical SEO, crawler access, structured data, and GEO, Generative Engine Optimization, as well. We sell this as a service, so the obvious first question was whether our own site holds up against our own yardstick. Partly. And the part that didn't is more instructive than the part that did.
What GEO means technically
AI search engines and assistants (ChatGPT, Perplexity, Google's AI overviews, Claude) crawl and process web content differently from a classic search engine. Three things have to be in place before a system will even consider a page as a source:
- Explicit crawler permission: our
robots.txtallowsAllow: /for all user agents, but also names bots likeGPTBot,ClaudeBot,PerplexityBot,Google-Extended, andApplebot-Extendedindividually. Technically that's redundant, since anything already allowed under*doesn't need repeating by name. We do it anyway because it's the unambiguous, checkable statement to exactly the agents that listen for their own name. Aggressive crawlers with no discernible upside for our market are left out on purpose. - A machine-readable summary: alongside
robots.txtwe maintain anllms.txt, a still-young, voluntary standard. In a few lines it holds what a human would otherwise have to piece together from the homepage: who we are, what services we offer, with links, plus address, opening hours, and a pointer to the full blog directory by category. A system no longer has to guess the site's structure. - Structured data: every blog post carries JSON-LD markup,
BlogPostingwith title, description, date, author, and publisher, plusBreadcrumbListfor the navigation hierarchy and, where present,FAQPagewith the individual questions and answers asQuestion/Answer. The homepage carriesProfessionalServiceandLocalBusinessschema. Structured data tells a system with no time for interpretation exactly which block of text answers which question.
All three can be fully in place and a page can still stay invisible in AI answers. Permission and structure only open the door. Whether there's something citable behind it is a separate question, and that's the one we got wrong ourselves.
The case in point: our own blind spot
We ran several test queries against common AI search systems, including "Proxmox vs VMware migration Austria". That's a question we should be well positioned for: we run a six-node Proxmox cluster ourselves and have written a whole cluster of articles about it: From VMware to Proxmox, Proxmox VE vs. VMware vSphere, and Proxmox as a VMware Alternative. On the subject matter, it's our strongest material.
None of the three articles turned up in the tested answers. Instead, the systems cited German providers such as epta-it.de and hostzero.com, neither with any visible Tyrol or Austria connection, but both sharing one trait our whole cluster lacks: an explicit geographic signal for the Austria/DACH context. None of our three articles mentions Austria, Tyrol, or any region at all, and that's exactly the hook the test query was fishing for.
A second point we'd also flagged as a gap on first review has since been fixed for one of the three articles by a separate, parallel revision of the cluster: Proxmox VE vs. VMware vSphere now carries a compact six-row comparison table under the heading "What vSphere honestly does better", exactly the format an AI system needs to lift a core claim into an answer unchanged instead of first distilling it out of several paragraphs of prose. That's real progress, but it doesn't change the actual finding for this test query: without the Austria signal, even a good table won't get surfaced for an Austria-specific query, because the system never classifies the article as regionally relevant in the first place. Extractability alone doesn't earn a citation if the geographic framing is missing.
The obvious fix we're planning next for the cluster: add an explicit Austria/Tyrol reference to all three articles, and give the two that are still purely prose-based — From VMware to Proxmox and Proxmox as a VMware Alternative — their own summary table on the same pattern.
What this means for a client's site
The lesson isn't specific to us. Any page that wants to be locally or regionally relevant faces the same gap: a piece of content can be technically correct, well written, and well placed on Google, and still never surface in an AI-generated answer, because it's missing two things a human reader fills in silently and a language model doesn't.
In practice, for a client project that means the three technical foundations (crawler permission, llms.txt, structured data) are the entry point, not the goal. The content work follows: explicit geographic framing where it applies, and at least one extractable summary per key page, whether as a table, an FAQ block, or a clearly marked core claim. Whether it lands can be checked with the same kind of test queries we ran against our own site, run regularly rather than once, since AI systems' answers can shift from run to run.
Conclusion
Crawler permission, llms.txt, and structured data are technically complete on our site, and still didn't get our best material into the AI answer window, because the decisive geographic signal is missing. An extractable table alone isn't enough, as our own cluster just showed: one article now has one and still didn't turn up for the test query. That's the difference between "readable for AI systems" and "citable by AI systems", and it only shows up when you check with real queries instead of just ticking off the checklist.
Further sources
What's the difference between GEO and classic SEO?+
Classic SEO optimizes for a crawler indexing a page and a human clicking it in the results list. GEO (Generative Engine Optimization) optimizes for an AI system reading, understanding, and citing a page inside a generated answer, without anyone ever clicking through. The two aren't mutually exclusive, but a good Google ranking is no guarantee of a mention in ChatGPT or Perplexity.
Is an open robots.txt enough for AI systems to cite a page?+
No, it's only the entry requirement. Without explicit permission for crawlers like GPTBot or ClaudeBot, the system never reads the page in the first place. Whether it then understands the content and names it as a source depends on machine-readable structure as well, and that's exactly where we found a gap on our own site.
What is llms.txt, and why do I need it alongside robots.txt?+
robots.txt only governs who's allowed to crawl. llms.txt is a separate, voluntary standard: a short, machine-readable summary of a company, its services, and its content, at a fixed path. It saves an AI system from having to guess a site's structure and hands it the key facts directly.
Why can a page rank well on Google but be missing from an AI answer?+
Because the two systems work differently. Google weighs, among other things, links, user signals, and years of history. An answer engine like Perplexity or an AI overview has to decide within seconds which paragraph of a page answers the user's question, and that's easier when the answer sits in a clearly delimited table or FAQ block instead of being spread across several paragraphs of running text.
senn-tech