GEO

SEO Is Not Enough Anymore

Generative Engine Optimization is SEO for the AI era. If your brand is not being cited by GPTBot, ClaudeBot, and Perplexity, you do not exist in AI search. Here's how to fix that.

The Basics

What Is GEO?

The Old Game

Traditional SEO optimizes for Google's crawler — structured content, keywords, backlinks, page speed. You rank on a results page. Users click. That model still works. But it's no longer the only game.

The New Game

AI crawlers — GPTBot, ClaudeBot, PerplexityBot, Amazonbot — are indexing the web to train models and power AI-generated answers. When someone asks ChatGPT a question, it pulls from what it has indexed. If your site is not in that index, your answer never gets cited.

Why It Matters Now

AI-powered search is growing fast. Perplexity, ChatGPT, Claude, and Gemini are all fielding search queries that never touch a traditional search results page. Your future traffic increasingly depends on whether AI crawlers can find, understand, and cite your content.

The Four Pillars

How to Optimize for AI Crawlers

01

llms.txt and llms-full.txt

This is the new robots.txt for large language models. Add two plain text files to your site root:

  • llms.txt — a short, concise summary of what your site is, who it's for, and what the key pages are. Think of it as the one-page brief you'd hand an AI to explain your site in under 2 minutes.
  • llms-full.txt — the comprehensive version. Full content breakdown, all major topics covered, detailed descriptions of your tools, workflows, and key pages. This is what the AI reads when it wants the full picture.

AI crawlers and LLM operators look for these files specifically. They're a direct handshake that tells the model what your site contains and how to interpret it. Not having them is leaving the door closed when a visitor is standing outside.

This Site alchemy-ai.dev has both llms.txt and llms-full.txt in the root directory. You can view them directly: llms.txt and llms-full.txt.
# Example llms.txt structure

# Site Name
> One-line description of what your site does.

## What This Site Is
2-3 paragraphs covering mission, who it's for, key value.

## Core Content
- Page 1: What it covers
- Page 2: What it covers

## Links
- Home: https://yoursite.com
- Key Page: https://yoursite.com/key-page
02

Schema Markup (JSON-LD)

Schema markup is structured data embedded in your HTML that tells crawlers — human and AI — what your page actually is. Not just what it contains, but what type of thing it represents: an article, a product, a how-to guide, a FAQ, a person, an organization.

JSON-LD is the recommended format. It goes in a <script> tag in your page head. Google reads it. AI crawlers read it. It helps both understand your content at a semantic level rather than just keyword matching.

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Article",
  "headline": "How to Use Claude Code with CLAUDE.md",
  "author": {
    "@type": "Person",
    "name": "Billy Williams"
  },
  "publisher": {
    "@type": "Organization",
    "name": "Stacked Alchemist LLC"
  },
  "description": "Step-by-step guide to using Claude Code..."
}
</script>
Priority Add schema markup to your home page (WebSite/Organization), key content pages (Article/HowTo), and any FAQ sections (FAQPage). These three types have the highest impact on AI citability.
03

AI Citability

AI tools quote content that is specific, confident, and authoritative. Vague content gets skipped. Clear, opinionated, factual content gets cited. This is a content strategy issue as much as a technical one.

Write content that AI wants to quote:

  • Make clear statements. "Claude scores 80.8% on SWE-bench Verified" is quotable. "Claude is pretty good at coding" is not.
  • Include unique data points. Specific numbers, dates, and findings give AI something concrete to pull from.
  • Write clean conclusions. End sections with a clear takeaway sentence. AI extracts conclusions, not middle-of-paragraph observations.
  • Use headers and structure. Well-structured content is easier for crawlers to parse and attribute correctly.
  • Be specific about who the content is for. "For self-taught developers building their first app" is more citable than generic advice.
04

SSR — Server-Side Rendering

If your critical content is loaded by JavaScript after the page renders, AI crawlers may miss it entirely. Crawlers fetch a URL, receive the HTML, and move on. They don't always execute JavaScript to wait for content to load.

What this means for your site:

  • Static HTML sites are crawler-friendly by default. If your content is in the HTML, crawlers see it. This is why Alchemy AI is built in plain HTML — it renders instantly with no JavaScript required for content.
  • React and Vue sites can have problems if content is fetched client-side. The page loads with an empty shell and the content fills in later. Crawlers may index the empty shell.
  • SSR frameworks like Next.js render content server-side so the initial HTML includes your actual content. Vercel and Firebase both support SSR.
  • Test your pages. Use "View Page Source" in your browser. If you see your content in the raw HTML, crawlers see it too. If you see mostly empty divs, you have a crawler visibility problem.
Quick Test Right-click any page on your site and select "View Page Source." Search for your most important paragraph of content. If it's in the source, you're good. If it's not there, that content is invisible to crawlers.
Run the Audit

GEO Audit with Claude Code

Use Claude Code to score and improve your site's AI crawler accessibility. Target: 77/100 GEO score or higher.

1

Check for llms.txt

"Does my site have llms.txt and llms-full.txt in the public folder?
If not, create both. Use the site content in [filename] as the source.
llms.txt should be under 500 words. llms-full.txt should cover all major pages."
2

Audit Schema Markup

"Audit every HTML file in the /pages folder.
Check which pages are missing JSON-LD schema markup.
For each missing page, add the appropriate schema type:
- Article for content pages
- HowTo for workflow/tutorial pages
- FAQPage for FAQ sections
- WebSite for the home page"
3

Check Crawler Visibility

"Review every page in /pages and check if the main content
is present in the static HTML. Flag any pages where content
appears to be loaded dynamically via JavaScript and
would not be visible to a crawler reading raw HTML."
4

Improve Citability

"Review the content on [page]. Identify 3 places where the
content could be made more citable by AI tools — more specific
data points, clearer conclusions, or stronger authoritative statements.
Rewrite those sections to improve AI citability without changing the meaning."
Know the Bots

AI Crawlers You're Optimizing For

Crawler Company Powers User Agent
GPTBotOpenAIChatGPT training & searchGPTBot
ClaudeBotAnthropicClaude training & knowledgeanthropic-ai
PerplexityBotPerplexity AIPerplexity search answersPerplexityBot
GooglebotGoogleGoogle Search + GeminiGooglebot
AmazonbotAmazonAlexa + AWS AI servicesAmazonbot
ApplebotAppleSiri, Spotlight, Apple IntelligenceApplebot
robots.txt You can block specific crawlers in your robots.txt if you want to opt out of training. "User-agent: GPTBot / Disallow: /" prevents OpenAI from crawling your site. Most public sites leave all crawlers open — blocking them means you don't show up in AI answers.

Start with the llms.txt

The fastest GEO win is adding llms.txt and llms-full.txt to your site root. It takes 30 minutes. It signals to AI crawlers exactly what your site is and why it should be cited. Do that first, then tackle schema markup.