Optimizing for AI Overviews & Answer Engines (GEO)

Earn citations in AI Overviews, ChatGPT and Perplexity with answer-first content, clean structure and llms.txt.

Generative Engine Optimization (GEO) is the practice of getting your content quoted and cited by AI answer engines - Google's AI Overviews, ChatGPT search, Perplexity, and the rest. The good news: it is not a separate discipline. Strong classic SEO plus a few habits does most of the work.

What answer engines reward

  • Answer-first writing - state the direct answer in the first sentence under a clear heading, then elaborate. Models lift concise, self-contained passages.
  • Clean structure - descriptive H2/H3s, short paragraphs, lists and tables. These are easy for a model to chunk and quote.
  • Extractable facts - specific numbers, dates, and definitions beat vague prose.
  • Trust signals - clear authorship, citations, and a strong reputation make an engine more comfortable citing you (see E-E-A-T).

Do not block the AI crawlers you want traffic from

Answer engines use their own user-agents (for example GPTBot, PerplexityBot, Google-Extended). If you want to appear in their answers, do not disallow them in robots.txt. This is a real strategic choice - decide it deliberately, per bot.

llms.txt

llms.txt is an emerging convention: a Markdown file at your site root that points AI tools to your most important, clean content. Adoption is still early and it is not an official ranking signal, but it is cheap to add and signals which pages you consider canonical for machine readers.

Example

Example · bash
# /llms.txt  -  point AI tools at your best, canonical content
# https://example.com/llms.txt

# SoundsCode

> Practical, tested guides on coffee brewing and gear.

## Core guides
- [Pour Over Guide](https://example.com/coffee/pour-over-guide): step-by-step method
- [Brewing Guide](https://example.com/coffee/brewing-guide): every method compared

## Reference
- [Grind Size Chart](https://example.com/coffee/grind-size): grind by brew method

# ---- and in robots.txt, allow the AI crawlers you WANT to cite you ----
# User-agent: GPTBot
# Allow: /
# User-agent: PerplexityBot
# Allow: /

When to use it

  • A B2B software company restructures its documentation with direct-answer headings and citable statistics, gaining citations in ChatGPT and Perplexity responses for their product category.
  • A health publisher publishes an llms.txt file pointing AI crawlers to their evidence-based articles, reducing AI citations of competitor content on medical queries.
  • An SEO team measures 'AI share of voice' monthly by querying ChatGPT and Perplexity for 20 target questions and counting how often their domain appears in citations.

More examples

Answer-optimised page structure for GEO

A concise, self-contained definition paragraph with the term bolded and examples named provides AI answer engines a directly citable snippet with attributable authority.

Example · html
<article>
  <h1>What Is a Content Delivery Network (CDN)?</h1>

  <!-- Citable definition — 40-60 words, self-contained -->
  <p>
    A <strong>Content Delivery Network (CDN)</strong> is a geographically
    distributed group of servers that deliver web content to users from
    the server closest to them, reducing latency and improving load speed.
    Major CDNs include Cloudflare, Fastly, and Amazon CloudFront.
  </p>

  <!-- Supporting depth -->
  <h2>How CDNs Work</h2>
  <h2>CDN vs Origin Server</h2>
  <h2>Choosing a CDN for Your Site</h2>
</article>

llms.txt for GEO discovery

An llms.txt file at the domain root signals to AI crawlers which pages carry the most authority, increasing the probability they retrieve and cite those URLs in generated answers.

Example · bash
# /llms.txt — curate authoritative pages for AI model retrieval
# Published at https://example.com/llms.txt

# Acme Tech — authoritative content for AI models

## Product documentation
https://example.com/docs/api/
https://example.com/docs/getting-started/
https://example.com/docs/cdn-guide/

## Expert guides (cited primary sources)
https://example.com/blog/what-is-a-cdn/
https://example.com/blog/cdn-performance-benchmarks/

## About / trust
https://example.com/about/
https://example.com/editorial-policy/

Measure AI citation coverage

Systematically checking AI citations for a tracked query set and computing a citation rate creates a measurable GEO KPI you can improve against over time.

Example · bash
python3 - << 'EOF'
import requests, json

queries = [
    "what is a content delivery network",
    "how does a CDN reduce latency",
    "cloudflare vs fastly comparison",
]
brand_domain = "example.com"
cited = 0

for q in queries:
    r = requests.post(
        "https://api.perplexity.ai/chat/completions",
        headers={"Authorization": "Bearer YOUR_KEY", "Content-Type": "application/json"},
        json={"model": "llama-3.1-sonar-large-128k-online",
              "messages": [{"role": "user", "content": q}]},
        timeout=20
    ).json()
    sources = r.get("citations", [])
    if any(brand_domain in s for s in sources):
        cited += 1
        print(f"CITED: {q}")
    else:
        print(f"NOT CITED: {q}")

print(f"\nAI Share of Voice: {cited}/{len(queries)} queries")
EOF

Discussion

  • Be the first to comment on this lesson.