Expertise · GEO
Visibility in generated answers: we work on the part that can be controlled and we write in the offer what cannot.
What an agent model actually receives when it requests your page, what you decide for each of the three crawler categories, what you publish so you can be used as a source. No rankings, no citation guarantee.
An offer, with conditionsWe have pieces, not a measured result, and we call them that. The pieces: a `llms.txt` file written by us, served in production with 200 and 2,137 bytes; an access check with ten model-agent identifiers, all receiving 200 and exactly 252,041 bytes on the same page; source lists published alongside claims — 522 citations in 26 content files. What we lack in order to be able to write “already built”: a citation measurement we can show, and an analysis module for that in our own analyser — it has one for direct answers, it does not have one for generated answers. There is another, more important reason: the result does not belong to us. A generated answer has no positions, has no place you can buy, and does not repeat identically from one user to another. A page that promised otherwise would be contradicted first by the client, on the first day.
A generated answer is not a list of links. The model composes a text and, if it chooses, attaches a few sources. There is no first place, there is no guarantee that a page will be cited, and the same question asked by two people, or by the same person the next day, can return a different answer and different sources. That is not a defect of our method, it is the shape of the mechanism. Any offer that starts with “we bring you into ChatGPT” passes over exactly this point.
What remains to be done is the part before the answer: whether the page is accessible to the agents that request it, whether the text is complete in HTML without JavaScript, whether it clearly says what the company is and what it does, and whether the statements on it are verifiable by someone who does not know you. Here everything can be measured, in response codes and in bytes. On this site we requested the same page with ten model agent identifiers — the search ones, the user-triggered ones, the training ones. All received 200 and exactly the same amount of content: 252,041 bytes. That is a finding, not a promise, and it can be repeated with a command.
The second thing that can be controlled is a decision, not a setting: what you do with the three categories of crawlers. The suppliers’ documentation separates them explicitly — at OpenAI, `OAI-SearchBot` for the search index, `GPTBot` for training, `ChatGPT-User` for the request started by a human, about which it is written that the rules in `robots.txt` may not apply; at Perplexity, `PerplexityBot` respects `robots.txt`, and `Perplexity-User` generally does not respect it, because the request comes from a person; `Google-Extended` is related to the training and grounding of Gemini models and, the documentation says, does not affect inclusion or ranking in Google Search. These are three independent decisions, with different consequences. On this site there is today a single general rule, in 129 bytes, so the position is implicit — not decided.
The third thing we say before the contract: for Google, a large part of “GEO” is, mechanically, SEO. Google’s own documentation says that, in order to appear as a supporting link in AI Overviews or in AI Mode, the page must be indexed and eligible to appear in search with a snippet, and that no new machine-readable files are needed to appear there. The practical conclusion is not that the work disappears, but that it moves: without indexing, server-side rendering and a page that says something verifiable, there is nothing to cite. That is why this page is read after the other two, not instead of them.