Generative Engine Optimization fuer kleine Sites, damit Perplexity und ChatGPT-Search Dich zitieren
Solo-Site, Service-Site oder Portfolio. Du willst dass AI-Assistenten Dich finden und zitieren wenn jemand nach Deinem Thema fragt. Zehn Schritte vom Inventar bis zum Citation-Tracking.
Klassisches SEO war zehn Jahre lang die Frage "wie ranke ich bei Google für das Keyword". Das funktioniert noch, aber daneben ist eine zweite Disziplin entstanden die genauso wichtig ist und die fast keiner sauber bedient: Generative Engine Optimization. Also die Frage "wie zitiert mich Perplexity, ChatGPT-Search, Gemini-Mode und Claude-Web wenn jemand nach meinem Thema fragt".
Ich hab das für drei Sites durchgezogen die ich aktiv pflege. Eine Service-Site (studiomeyer.io), die Academy (studiomeyer.academy) und eine ganz frische Workshop-Site (aifinca.es). Was ich gemerkt hab: AI-Search ist anders als Google. Es geht nicht darum eine Keyword-Page zu bauen die rankt. Es geht darum eine Site zu bauen die für einen Crawler maschinenlesbar genug ist dass er überhaupt eine Aussage über Dich trifft. Wenn er Dich nicht versteht, zitiert er Dich nicht.
Hier ist die Reihenfolge die ich seitdem fahre. Zehn Schritte, einmal durch ist eine knappe Stunde Arbeit, danach hast Du eine Basis von der Du messen kannst.
Schritt 1, ein Inventar der Discovery-Surfaces machen
Bevor Du irgendwas optimierst musst Du wissen was schon da ist. Schau in Dein Repo und such die üblichen Verdächtigen:
find . -maxdepth 3 \( \
-name "robots.txt" -o \
-name "llms.txt" -o \
-name "sitemap.xml" -o \
-name "humans.txt" \
\) -not -path "*/node_modules/*"
Wenn Du Next.js oder eine andere SSR-Framework nutzt sind diese Files vermutlich generiert. In Next.js liegen sie als app/robots.ts, app/sitemap.ts, app/llms.txt/route.ts. Schreib Dir auf was Du hast und was fehlt. Bei mir hatten alle drei Sites am Anfang robots.txt und sitemap.xml. Niemand hatte llms.txt. Das ist der Default-Stand 2026 für kleine Sites.
Schritt 2, robots.txt mit explizit erlaubten AI-Bots
Default ist meistens User-agent: * und das ist Mist weil viele Sites unbewusst per Cloudflare oder Crawler-Blocker AI-Bots blocken. Du willst diese Bots explizit zulassen wenn Du zitiert werden willst:
User-agent: GPTBot
Allow: /
User-agent: OAI-SearchBot
Allow: /
User-agent: ChatGPT-User
Allow: /
User-agent: ClaudeBot
Allow: /
User-agent: anthropic-ai
Allow: /
User-agent: PerplexityBot
Allow: /
User-agent: Google-Extended
Allow: /
Sitemap: https://example.com/sitemap.xml
GPTBot ist Training-Crawl, OAI-SearchBot ist der Live-Retrieval-Crawler hinter ChatGPT-Search, ChatGPT-User ist was passiert wenn ein User in ChatGPT auf einen Link klickt. Quelle ist die offizielle OpenAI-Doku unter developers.openai.com/api/docs/bots. Wenn Du einen davon ausschließt, schließt Du eine konkrete Citation-Quelle aus.
Ein häufiger Fehler: Cloudflare Bot-Fight-Mode steht auf "block all bots" und das blockt auch OAI-SearchBot per Default. Prüf die WAF-Rules. Wenn Du cf_managed_rulesets aktiv hast und AI-Crawlers explizit blockt, dann ist Deine robots.txt egal weil Cloudflare vorher abdreht.
Schritt 3, eine llms.txt schreiben die ein Mensch lesen kann
llms.txt ist eine Markdown-Datei auf /llms.txt die Crawlern eine schnelle Übersicht gibt. Spec ist auf llmstxt.org. Format ist simpel:
# StudioMeyer Academy
> Lern-Plattform fuer AI-Praxis. Kostenlose Lessons, Playbooks und Recipes ueber Claude Code, MCP, Memory-Setups und Agent-Building.
## Levels
- [Level 1, Grundlagen](https://studiomeyer.academy/levels/1): Was ist AI, Halluzinationen, Prompting-Basics
- [Level 4, Memory und MCP](https://studiomeyer.academy/levels/4): MCP-Server verstehen, Memory einrichten
## Playbooks
- [Erster MCP-Server in 90 Minuten](https://studiomeyer.academy/playbooks/erster-mcp-server-in-90-minuten)
## Wer
StudioMeyer, gefuehrt von Matthias Meyer. Standort Mallorca. Fokus auf praktische AI-Werkzeuge fuer Solo-Founder und Career-Changer.
Halt das knapp. Maximal eine A4-Seite. Was Du da reinschreibst ist quasi der "wenn Du mich nicht crawlen willst, lies wenigstens das hier"-Pitch. Schreib nichts rein was nicht auch auf der Website steht. Drift in llms.txt ist die häufigste Halluzinations-Quelle in AI-Zitaten über Dich.
Schritt 4, JSON-LD Schema auf jeder relevanten Page
Schema.org ist der zweite Trick. JSON-LD im <head> jeder Page sagt dem Crawler exakt was die Page ist. Für eine Service-Site brauchst Du mindestens drei Schema-Typen:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Organization",
"name": "StudioMeyer",
"url": "https://studiomeyer.io",
"logo": "https://studiomeyer.io/logo.png",
"founder": {
"@type": "Person",
"name": "Matthias Meyer"
},
"sameAs": [
"https://github.com/madetocreate",
"https://www.linkedin.com/in/matthiasmeyer"
]
}
</script>
Auf Blog-Posts und Lessons setzt Du @type: Article mit headline, datePublished, author, mainEntityOfPage. Auf FAQ-Seiten oder Sections mit Fragen kommt @type: FAQPage mit mainEntity als Array von Question/Answer. Schema-Markup hilft Perplexity und Google AI-Overviews direkt strukturierten Antwort-Snippets zu bauen. Wenn Dein Schema fehlt, baut der Crawler eine eigene Synthese und die geht oft schief.
Test-Tool: validator.schema.org. Paste die URL rein, sieh was er erkennt. Bei mir war auf der Service-Site die Hero-Headline nicht als headline erkannt weil ein Wrapper-Div dazwischen war. Eine halbe Stunde Arbeit, danach war jede Page maschinenlesbar.
Schritt 5, FAQ-Schema für die Top-3-Fragen pro Page
Crawlers lieben Frage-Antwort-Strukturen weil sie direkt als Zitat-Block weiterverwendet werden können. Such Dir Deine drei wichtigsten Pages und schreib pro Page drei bis fünf Fragen die ein User in Perplexity tippen würde. Antwort kommt von der Page selber, gekürzt auf zwei bis drei Sätze.
Beispiel auf einer Service-Page "AI-Beratung Mallorca":
{
"@type": "FAQPage",
"mainEntity": [{
"@type": "Question",
"name": "Was kostet eine AI-Beratung bei StudioMeyer?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Pricing variiert je Format. Solo-Workshops ab 2.990 EUR pro Person, Inhouse-Team-Workshops zwischen 18.000 und 25.000 EUR pauschal."
}
}]
}
Wichtig: was im FAQ-Schema steht muss auf der Page sichtbar im DOM stehen. Crawler vergleichen JSON-LD mit dem Rendered-DOM, und Schema das nichts mit der Page zu tun hat wird ignoriert oder als manipulation gewertet.
Schritt 6, Author-Profile mit sameAs verzweigen
AI-Assistenten gewichten Citations nach Author-Authority. Wenn Du nur ein Logo und keinen Author hast, bist Du eine anonyme Brand. Wenn ein konkreter Author hinter dem Content steht, der ein LinkedIn hat, ein GitHub, ein Wikipedia-Eintrag, eine andere Site, dann steigt die Wahrscheinlichkeit dass Du als Quelle zitiert wirst.
Pro Author-Page einen Person-Schema-Block mit sameAs-Array auf alle Profile. Ich hab eigene Author-Pages für jeden Bereich angelegt (/about auf der Service-Site, /team auf der Academy). Das hat in den ersten zwei Wochen messbar die Wahrscheinlichkeit erhöht in Perplexity-Antworten als Quelle zu erscheinen.
Schritt 7, sitemap.xml und IndexNow Setup
Eine vollständige sitemap.xml ist Pflicht. Wenn Du Next.js nutzt, lass sie generieren in app/sitemap.ts. Wichtig: jeder Eintrag braucht lastModified, sonst denkt der Crawler die Site sei statisch.
Dazu IndexNow. IndexNow ist ein Push-Protokoll von Microsoft mit dem Du Bing und Yandex direkt benachrichtigst wenn sich was ändert. Bing wiederum ist die Source für ChatGPT-Search und Copilot. Wenn Du IndexNow nicht laufen hast, kann es Tage dauern bis Bing Deine neue Page hat.
curl "https://api.indexnow.org/IndexNow?url=https://example.com/blog/new-post&key=YOUR_KEY"
Key ist eine Random-UUID die Du als File auf https://example.com/YOUR_KEY.txt hostest. Ein Cron-Job der bei jedem Deploy die neuen URLs pingt. Fertig. Ich pushe seit Mitte April jeden neuen Academy-Post automatisch und seitdem ist die Indexierungs-Latenz auf Bing unter zwei Stunden.
Schritt 8, Citations messen statt schätzen
Ohne Messung weißt Du nicht ob Deine GEO-Arbeit was bringt. Drei Mess-Punkte die Du brauchst:
Erstens, Server-Logs. Filter nach den User-Agent-Strings GPTBot, OAI-SearchBot, ChatGPT-User, ClaudeBot, PerplexityBot, anthropic-ai. Wenn diese gar nicht erscheinen, bist Du gar nicht crawlbar (Cloudflare blockt, robots.txt blockt, oder Site liefert 404).
Zweitens, Brand-Suchen. Einmal pro Woche tippst Du in Perplexity, ChatGPT-Search und Gemini Deine Hauptsuchen ein und schaust ob Du in der Antwort als Quelle gelistet bist. Beispiel-Queries: "AI Workshops Mallorca", "Claude Code Lernpfad", "MCP Server Tutorial DE". Wenn Du nach drei Wochen GEO-Arbeit nicht in mindestens einer Antwort vorkommst, ist was kaputt.
Drittens, Referrer-Traffic. In Umami, GA oder Plausible filterst Du Referrer nach perplexity.ai, chatgpt.com, gemini.google.com, bing.com, claude.ai. Das sind Real-User-Clicks aus AI-Antworten. Bei mir kommen aktuell zwischen 4 und 8 Prozent vom Gesamt-Traffic aus AI-Referrern. Tendenz steigend.
Schritt 9, Content-Format das AI gerne zitiert
Was Crawlers ungerne zitieren: Pages mit nur einem Hero, viel Bild, wenig Text. Pages mit langen Marketing-Blöcken ohne Faktendichte. Pages mit Listicle-Format aber ohne klare Aussagen.
Was Crawlers gerne zitieren: Pages die in den ersten 200 Worten eine konkrete Frage beantworten, mit Zahlen, mit Namen, mit Datum. Pages mit klaren Headings (H2/H3) die selber eine Aussage enthalten ("Pricing-Range für Inhouse-Workshops" statt "Unsere Preise"). Pages die Du als Autor mit Namen unterschreibst.
Geh durch Deine wichtigsten zehn Pages und schreib den ersten Absatz so um dass die Hauptaussage in den ersten zwei Sätzen steht. Bei mir war auf der Academy-Startseite Absatz eins ein Marketing-Block ohne Fakten. Ich hab ihn ersetzt durch zwei Sätze die sagen: "47 Lessons in sechs Levels. Alle kostenlos. Schwerpunkt Claude Code, MCP und Memory-Setups." Innerhalb von zwei Wochen tauchte genau dieser Satz in einer Perplexity-Antwort auf. Crawler hatte den Hero gelesen und 1:1 zitiert.
Schritt 10, was als nächstes
Drei Sachen die ich jetzt regelmäßig mache und die in einen Monatsrhythmus gehören: einmal pro Monat die Brand-Suchen wiederholen und protokollieren wer wo zitiert wird (oder eben nicht). Einmal pro Quartal die llms.txt durchgehen ob noch alles stimmt. Und vor jedem größeren Pivot oder Rebrand: alle Discovery-Files gleichzeitig durchforsten, weil sonst die alte Bio in irgendeinem JSON-LD hängen bleibt und nach drei Wochen in einem Grok-Zitat wieder auftaucht.
Wenn Du Discovery-Files konsistent halten willst, lies das Playbook Discovery-Files konsistent halten. Wenn Du tracken willst was AI-Crawler auf Deiner Site machen und automatisch Drift erkennen willst, schau in das Recipe-Bundle GEO-Crew Hook Bundle. Wenn Du erst überhaupt verstehen willst was Discovery-Surfaces und MCP-Marketplaces sind, lies vorher Level 4 Lesson 6, MCP Discovery und Marketplaces.
Source
- OpenAI Crawler-Doku: https://developers.openai.com/api/docs/bots
- llms.txt Spec: https://llmstxt.org
- Schema.org Article-Typ: https://schema.org/Article
- IndexNow API: https://www.indexnow.org/documentation
- Anthropic Crawler-Doku: https://support.anthropic.com/en/articles/8896518-does-anthropic-crawl-data-from-the-web-and-how-can-site-owners-block-the-crawler