What is GEO, in one paragraph
GEO, generative engine optimization, is the work of making your website easy for AI assistants to use. When someone asks ChatGPT, Claude, Perplexity or Gemini a question, the assistant builds an answer from pages it has read. GEO is everything you do so that your pages are among them: readable by AI crawlers, clear enough to quote, and worth linking to. If SEO (search engine optimization, the work of ranking in Google's results) is about ranking in a list of results, GEO is about being part of the answer.
I came to GEO from the other side. I built Skald for our own small-business site (the story), because our analytics could not say whether ChatGPT, Claude or Perplexity had read our pages at all. That question, "did it work?", is the hard part of GEO, and most of this guide is about answering it.
How AI answers pick their sources
An assistant can know about your page in two ways, and they matter for different reasons.
Read earlier, by training and index crawls
AI companies send crawlers to collect pages long before anyone asks anything. GPTBot and ClaudeBot collect pages that may train a model. OAI-SearchBot, Claude-SearchBot and PerplexityBot build the search indexes that ChatGPT, Claude and Perplexity answer from. Nobody is waiting on any of them. They read your site the way Googlebot does: on their own schedule, page by page.
Read right now, by live fetches
The second way is newer. When a person asks a question, the assistant may fetch pages at that moment to answer it. These fetchers have their own names: ChatGPT-User, Claude-User, Perplexity-User, Gemini-User. A live fetch means a real person is waiting for an answer that uses your page. It is the closest thing to a reader that a machine can be.
Then, sometimes, the person clicks the link in the answer and lands on your site. That is the only one of the three a normal analytics script can see. I wrote more about the three in AI traffic tracking.
GEO and SEO: what stays the same, what is new
A lot of GEO is good SEO with a new reader in mind. Pages that answer a real question clearly, that load fast, that machines can fetch without errors, and that other pages link to, do well with both. Both kinds of crawler fetch your pages the same way, so the same errors stop both.
Three things are new.
- The answer comes before the click. In a search result, the person has to visit you to learn anything. In an AI answer, they may get what they need from your page without ever visiting. Your page did its job, and nothing in your analytics moved.
- There are new formats. AI fetchers ask for files made for them: an
llms.txtfile (a short list of a site's key pages for AI), Markdown copies of pages, plain text. In a server log you see them ask for/llms.txtand.mdfiles by name. - There are new choices. You can let AI read your site for answers but keep it out of training, because the crawlers are separate. GPTBot trains; ChatGPT-User answers. Blocking one does not block the other.
What GEO work usually involves
There is no secret switch. The work people call GEO usually falls into five parts.
- Let the right crawlers in. Check your robots.txt (the file where a site asks crawlers to stay away) and any rules at your CDN (a service such as Cloudflare that serves your pages from near each reader). Decide which AI crawlers may read the site, and which may train on it. A page an assistant cannot fetch is a page it cannot quote.
- Make pages easy to quote. Put the answer near the top, in plain sentences. Name things the way your buyers name them. One page, one question, answered well.
- Fix what crawlers trip on. Pages that return errors, long chains of redirects, slow answers and pages missing from your sitemap (the file that lists your pages for crawlers) trip up AI crawlers and search crawlers alike.
- Give AI a map. A sitemap, and if you like an
llms.txtthat points to your best pages. It is a guide, not a guarantee. - Be worth citing. Original facts, clear prices, real reviews and honest comparisons give an answer something to quote.
None of this is hard to start. The hard part is knowing whether any of it changed anything.
Why GEO is hard to prove
Most of what GEO changes never shows up in the tools people already have.
- Script tags cannot see machines. Google Analytics and tools like it count browsers that run their script. AI crawlers and AI fetchers do not run scripts. Every training crawl and every live fetch is invisible to them.
- Clicks lose their referrer. The referrer is the address of the page a click came from. Many apps and privacy settings strip it, so a click from an AI answer can arrive as a direct visit. Any count of AI clicks is a floor, not a total.
- Some clicks cannot be told apart at all. A click from a Google AI Overview arrives exactly like an ordinary Google click. No tool can count those honestly. Google's AI Mode can be told apart only when the click carries
udm=50, the mark AI Mode puts in its addresses. - Prompt trackers sample answers, not events. A tool that asks ChatGPT your buyers' questions and records whether you were named is useful. But a sampled answer says what the assistant might say, not whether it read your page or sent you anyone. I compare the two in prompt tracking vs server logs.
How to prove GEO works, from your server log
Your web server already writes a line for every request it answers, whether a script ran or not. That access log is the one record that saw the crawlers, the live fetches and the clicks. Read it well, and GEO becomes a chain you can check, one link at a time, each proven by a different record:
- Cited. An AI answer names your page. You find this by sampling answers: Skald asks ChatGPT, Perplexity, Gemini and Claude your buyers' questions with your own API keys, at your cost, with a daily cap. It is a direction over weeks, not a census.
- Read. The assistant's fetcher asked your server for that page. This is in the log:
"GET /pricing/" 200 "ChatGPT-User/1.0". Skald checks the address against the list OpenAI publishes, so a fake shows as "claims to be". - Sent a visitor. A person clicked through, with
chatgpt.comas the referrer. Skald counts that click as a person, and lists the pages ChatGPT fetched in the 15 minutes before it. A direct visit to a page ChatGPT had just fetched is shown as likely from ChatGPT, kept apart, never added. - Became a lead. That visitor booked a call or filled a form. A signed webhook (a message your form or booking tool sends Skald when it happens) ties the lead to the visits before it.
Each link is counted on its own, and never added to the others. A cited page that was never read tells you one thing; a page read every day that never sends anyone tells you another. That is the whole point: GEO work you can steer, instead of GEO work you have to take on faith. The full chain is in cited, read, visited, lead.
-
proven by sampled answers to your buyers' questions
-
proven by your access log: ChatGPT-User, address checked
-
proven by your access log: chatgpt.com as the referrer
-
proven by a signed webhook from your form or booking tool
what you can say
- An answer named your page, in a sample. It shows what the assistant may say, not that anyone asked.
- The fetcher read the page while a person asked. Someone used your page, click or not.
- You cannot say AI sent anyone. A click without a referrer is Direct, shown as likely at best.
- You cannot say it paid.
See your own chain, 30 days free Open the live demo
A GEO check you can run this week
You do not need a tool to start. With your access log and a few commands you can answer the first questions. With Skald, each one is a screen.
- Which AI crawlers read my site last month, and are they real? See AI crawler tracking.
- Which of my sitemap's pages has each crawler never fetched? See AI crawl health.
- Does anyone ask for my
llms.txt, and what would a good one hold? See llms.txt. - How many people did ChatGPT, Perplexity and Claude send, and what did they read first? See AI referral traffic.
- Which crawlers should I let in, and which keep out of training? See block AI crawlers.
For a longer, step-by-step version, read the AI traffic guide.
What GEO cannot promise
Be wary of anyone who promises a place in AI answers. Nobody controls what an assistant says, and answers change from one asking to the next. What you can control is whether your pages are reachable, clear and worth citing, and whether you measure the result honestly.
Honest measurement has limits too. AI clicks are a floor, because referrers are stripped. Estimates of the rest should be labelled as estimates. Clicks from AI Overviews cannot be counted by anyone. And without a server or CDN log, the crawlers and fetchers are not seen at all. A GEO report that hides these limits is guessing. One that states them next to the numbers is one you can act on. For more short reads on AI traffic, see AI traffic insights.