Back to the studio
Studio Calanque FR

Growth9 min

Generative engine optimization for a small business site: what ChatGPT actually reads

Generative engine optimization from a practitioner: what ChatGPT, Perplexity and Claude read on a small business site, a checklist and a 30-day plan.

The owner of an estate agency on the Vieux-Port in Marseille, open since 2011, came to me this spring because Perplexity never mentioned her agency. A buyer from Lyon had asked Perplexity for agencies selling sea-view apartments in the 7th arrondissement and been given four names, two of them franchises based well away from the sea, and he only found the agency later through a friend.

Generative engine optimization (GEO) is the name for this kind of problem and its fixes, meaning the work of getting a site read, trusted and quoted by ChatGPT, Perplexity, Claude, Google's AI Mode and the other engines that write answers rather than lists of links. On a small business site the work is mostly unglamorous, since it consists of letting the right crawlers in and serving them real text, putting one question and its answer at the top of each page, and writing prices, dates and addresses out in plain text so an engine can check them.

The agency's site was failing at the first step. A WordPress security plugin had a "Block AI bots" setting that her web agency had enabled in 2023, which made the server answer 403 Forbidden to OAI-SearchBot and to every other crawler on the plugin's list, and OpenAI's documentation says that sites opted out of OAI-SearchBot won't be shown in ChatGPT search answers. The owner had been paying €150 a month for SEO throughout.

What the engines actually read

Each of these companies runs more than one crawler, and they don't do the same job. At OpenAI, OAI-SearchBot builds the search index, ChatGPT-User fetches a page while somebody is waiting for an answer, and GPTBot collects text that might be used for training. Anthropic has the same three roles under the names Claude-SearchBot, Claude-User and ClaudeBot. Perplexity has two, PerplexityBot for its index and Perplexity-User for live fetches, and its documentation says Perplexity-User generally ignores robots.txt because a person asked for the page.

Blocking training without blocking search is a few lines in robots.txt, which for OpenAI looks like this (Anthropic's two crawlers work the same way):

User-agent: OAI-SearchBot
Allow: /

User-agent: GPTBot
Disallow: /

After robots.txt I look in the access logs, where every request from ChatGPT-User or Claude-User is a person somewhere who asked a question and made the engine go and fetch your page to answer it, so I grep for those two names and count the lines. On her server there were 212 of them over ninety days, and every single one had gotten a 403 back.

Getting in is only half of it, though, since the other half is what the crawler finds once it's in, and the quickest way I know to check is to turn JavaScript off in your browser and reload the page. If all that's left is a menu and a cookie banner, then that's all an answer engine has to work with, and fixing it on a site that builds its content in the browser means server-side rendering, which is real work rather than a setting (I go into it in the guide to custom web application development).

Cloudflare's figures from August 2025 put this in proportion, since in July of that year Anthropic's crawlers fetched about 38,000 pages for each visit they referred back to a site, OpenAI's about 1,100 and Perplexity's about 195, which means your pages get read by these engines far more often than anyone visits because of them.

Generative engine optimization versus SEO

For about six months I told clients that GEO was SEO under a new name, and the two do overlap more than the people selling GEO admit. The difference is in the result. A search engine returns a ranked list of links and the searcher picks one, whereas a generative engine returns a written answer with a few citations attached, so a page is either among those citations or absent, and being cited does not guarantee a visit.

The effect on clicks has been measured. Pew Research Center recorded the browsing of 900 adults in the US during March 2025, and on Google searches that displayed an AI summary 8% of visits ended with a click on an ordinary result, against 15% on searches without one, while links inside the summary were clicked in about 1% of visits. An Ahrefs study of 300,000 keywords found a 34.5% lower click-through rate for the top result when an AI Overview appeared above it.

Visitors who do arrive from an AI answer are usually further along. On the agency's site, most of the people referred by Perplexity went straight to the contact form to ask for a viewing.

What hasn't changed is that a page has to be indexed first. Google's documentation on AI features says there are no additional requirements for AI Overviews or AI Mode, no special schema and no new machine-readable files, only a page that is indexed and eligible to be shown with a snippet. If your local pages and listings are in poor shape, local SEO for a small business still comes before any of this.

One question per page

The term GEO comes from a paper by researchers at Princeton and IIT Delhi, posted in November 2023 and presented at KDD in 2024. They tested nine ways of rewriting a page to get a generative engine to cite it more, and the ones that worked best were adding quotations, adding statistics and citing sources, with visibility in the answers up by as much as 40%. Keyword stuffing made things worse. Results varied by subject, the authors say, but the general idea seems sound to me, which is that an engine prefers repeating things it can check.

On the agency's site we took down the "Our services" page and wrote one page per question that buyers ask her, starting with "How much does a sea-view apartment cost in the 7th arrondissement in 2026?" That page gives the answer in its first two lines, with the month the prices were recorded, and after that the detail by street and floor. There are twelve of these pages now. They replaced around forty older neighborhood pages, most of which had fewer than ten visits a year.

llms.txt, schema and sources

llms.txt was proposed by Jeremy Howard in September 2024. It's a Markdown file at the root of your site with a title, a short summary and lists of links to readable versions of your pages, and I like the idea, but on June 17, 2025, Google's John Mueller wrote on Bluesky that no AI system currently uses it and that none of the chatbots even fetch the file. Our own logs agree with him, with zero requests for /llms.txt since we put one up, and the blog generator keeps writing it anyway because it costs nothing.

Schema is similar. Google asks for no special markup for AI Overviews, only that whatever JSON-LD you have agrees with the page. I still fill in LocalBusiness and FAQPage for clients, even though Google stopped showing FAQ rich results on May 7, 2026. On the agency's site, adding foundingDate to the LocalBusiness block is what showed that her site said 2011 while an old directory listing said 2009, and an engine that finds two versions of a fact like that picks one on its own.

Sources are simpler. "According to Pew Research", with a link to the page, can be checked. "Studies show" can't.

The checklist I use

On an existing site I check the following, roughly in this order. Most sites fail one of the first two.

  • robots.txt allows OAI-SearchBot, Claude-SearchBot and PerplexityBot. GPTBot and ClaudeBot are training crawlers, and blocking them is a separate decision.
  • The main pages can be read with JavaScript disabled.
  • Each page that brings in business is built around one question, stated in the title and answered within the first hundred words.
  • Prices, the address, the opening year and the number of staff appear in the page text, with a date where the figure can change.
  • Each of those pages ends with three to five FAQ entries taken from questions clients ask on the phone.
  • Publication and update dates are shown on the page.
  • The JSON-LD matches the visible text.
  • The sitemap lists only pages that exist.
  • Every month, the same twenty client questions are put to ChatGPT, Perplexity and Claude from an account with no history, and the businesses named are recorded in a spreadsheet.

Thirty days

On a site that already exists, the plan below fits into one calendar month and takes two to four days of actual work spread across it, which is roughly what I quote for it.

The first week is an audit and nothing gets changed. I read robots.txt, filter the access logs for the AI user agents, and go through the ten most visited pages with JavaScript switched off to note what disappears. On the agency's site nothing disappeared, since all of the text was in the HTML, and the only problem was the plugin refusing the crawlers.

The second week is for the five pages that bring in the most business. For the agency these were the sea-view page, the fees page, a page on selling an apartment with a tenant in it, valuations, and a page for buyers who can't visit more than twice, which is the one the buyer from Lyon would have needed. Each page got its question as the title and the answer in the first hundred words, and anything that didn't help answer the question was removed, which brought the pages from about 1,400 words each to around 600.

The third week covers the technical items, usually JSON-LD that matches the page text, visible dates, a sitemap without dead URLs and, for sites built as JavaScript applications, server-side rendering. For the agency the fix took ten minutes and didn't wait for week three, since we unchecked the plugin option on the afternoon we found it and resubmitted the sitemap in Search Console. For a company running skippered sailing trips out of Cassis last year, this was the most expensive part of the month, because the site was a React application that rendered everything in the browser and had to be moved to server rendering.

The fourth week is measurement, done by hand: I put the twenty questions to the three engines, record the answers in a spreadsheet and do it all again a month later. Eight weeks after the plugin setting was turned off, Perplexity cited the agency in its answers to six of the twenty questions and ChatGPT in three, including the question the buyer from Lyon had asked in March.

On a new site none of this is billed separately, because it's simply how we build sites at the studio down here in the south of France, with a showcase site starting at €1,900 before VAT (around $2,200).

If you want to see what ChatGPT gets back when it asks for your homepage, bring your access logs to a fifteen-minute call.

FAQ

What is generative engine optimization?

Generative engine optimization, a name taken from a paper posted in November 2023 by researchers at Princeton and IIT Delhi, is the work of getting AI answer engines such as ChatGPT, Perplexity, Claude and Google's AI Mode to read your site, check it against other sources and quote it. On a small business site most of it is unglamorous work, which means letting OAI-SearchBot and the other search crawlers in, serving text that exists without JavaScript, answering one question per page and putting dates and sources on your facts.

How long before ChatGPT cites my site?

According to OpenAI, a change to robots.txt takes about 24 hours to reach ChatGPT search, but that only opens the door, and the rewritten pages still have to be crawled, indexed and judged worth quoting before anything shows up. On the agency's site Perplexity started citing pages after about three weeks and ChatGPT after five or six, and I put the same twenty questions to them each month so that the numbers can be compared.

Should I block AI crawlers?

That depends on which ones you mean, because blocking GPTBot or ClaudeBot only stops your text from being used for training, which is a reasonable choice to make. Blocking OAI-SearchBot, Claude-SearchBot or PerplexityBot takes you out of the answers, which is rarely what a small business wants, and the fetchers that act for a user, like ChatGPT-User, may not follow robots.txt anyway.

Sources