Search is splitting into two jobs. Classic SEO gets you a blue link. Generative Engine Optimisation — GEO — gets your words quoted inside somebody else’s answer, with your name on the citation.
They overlap heavily. But three things genuinely differ, and getting them right is most of the work.
1. Answer first, context second
A traditional article warms up: an introduction, some background, then the answer around the fourth paragraph. Answer engines are looking for a passage they can extract and attribute without misrepresenting you. A buried answer is a passage they cannot safely lift.
Put a direct, self-contained answer in the first 40–60 words of the page — one that makes sense quoted entirely on its own, with no dependency on the sentence before it. Then write the full article underneath for humans.
Every article on this blog carries a “short answer” box for exactly this reason.

2. Be specific enough to be checkable
Generative systems weight content that reads as verifiable. Vague claims are risky to quote, so they get skipped in favour of something concrete.
| Weak, unquotable | Specific, quotable |
|---|---|
| “Websites can be quite expensive.” | “A custom WordPress build typically costs $1,500–$15,000 depending on how many custom systems sit behind the pages.” |
| “Page speed is important.” | “Largest Contentful Paint should complete under 2.5 seconds; the most common cause of failure is lazy-loading the hero image.” |
Numbers, thresholds, named tools and explicit conditions all make a passage safer to quote.
3. Structure the page so a machine can parse it
- Descriptive headings. “How much does it cost?” is parseable. “The investment question” is not.
- One idea per section. A heading that covers three topics cannot be cleanly extracted.
- Real FAQ markup. FAQPage structured data hands answer engines pre-formed question and answer pairs. It must mirror visible content on the page — marking up text that is not there is a structured-data violation.
- Tables for comparisons. Structured comparisons get extracted intact far more often than the same information written as prose.
Let the crawlers in
This is the one that silently costs sites everything. If your robots.txt blocks the AI crawlers, none of the above matters.
The relevant agents include GPTBot and ChatGPT-User (OpenAI), ClaudeBot and anthropic-ai (Anthropic), PerplexityBot, Google-Extended, Applebot-Extended and CCBot. A blanket User-agent: * allow already covers them, but several check for their own name first, so naming them explicitly removes any ambiguity.
This is a genuine business decision, not a purely technical one: allowing these crawlers means your content may be used in training as well as citation. For a services business trying to be found, that trade is usually worth making. For a paid-content business it may not be.
Entity clarity
Answer engines reason about entities — people, organisations, products — not just keywords. Help them:
- Use
PersonandOrganizationstructured data, with a stable@idreferenced consistently across pages. - Keep your name, role and location consistent everywhere they appear.
- Link out to authoritative sources. Citing others makes your own content easier to place in a graph of related material.
What does not work
Keyword stuffing has no effect — these systems operate on meaning, not term frequency. Thin AI-generated content performs particularly badly, because it lacks the specific, checkable detail that makes a passage safe to quote. And no amount of markup rescues a page that does not actually answer its own title.
How to tell if it is working
There is no Search Console for answer engines yet. Practical proxies: ask the engines your target questions directly and see who gets cited; watch for referral traffic from chat.openai.com, perplexity.ai and similar; and track branded search volume, which tends to rise when you are being mentioned in answers.
I build this into every site I ship — structured data, crawler access and answer-first content are part of the technical SEO work, not an add-on. If you want to know why your content is not being cited, send me the site.