TYPO3 für die KI-Suche einrichten: robots.txt, llms.txt und Schema.org
Für KI-Suche braucht eine TYPO3-Website keine neue Extension, sondern drei Einstellungen: eine robots.txt, die die richtigen KI-Crawler hereinlässt, strukturierte Daten, die Firma und Inhalte eindeutig beschreiben, und eine llms.txt, die von den dreien am wenigsten bewirkt. Google schreibt selbst, dass AI Overviews und AI Mode keine zusätzlichen Anforderungen haben, kein spezielles Schema und keine KI-Textdateien. Anfangen sollten Sie deshalb bei der unscheinbarsten Datei: Die robots.txt entscheidet, ob ChatGPT, Claude und Perplexity Ihre Seiten überhaupt lesen dürfen.
Dieser Artikel zeigt technischen Ansprechpartnern und Marketingleitung, was zu tun ist, wie es in TYPO3 geht und was Sie realistisch davon erwarten können. Die Konfiguration steht jeweils eingeklappt unter dem Abschnitt, das Codebeispiel direkt danach.
- Generative Engine Optimization (GEO)
-
GEO ist die Arbeit daran, dass KI-Systeme wie ChatGPT, Claude, Gemini oder Perplexity eine Website finden, verstehen und in ihren Antworten nennen oder verlinken. Ziel ist, in der Antwort vorzukommen, nicht nur in einer Trefferliste.
-
Abgrenzung
Suchmaschinenoptimierung (SEO) zielt auf Positionen in der Trefferliste. GEO kommt zu SEO hinzu, es ersetzt sie nicht.
Zwei Arten von KI-Antworten, zwei Schalter
Googles AI Overviews und AI Mode gehören zur Google-Suche. Eine Seite muss dafür laut Google indexiert und mit Snippet anzeigbar sein, mehr nicht. Gesteuert wird das über Googlebot und die bekannten Mittel der Suche: nosnippet, data-nosnippet, max-snippet und noindex.
ChatGPT, Claude und Perplexity betreiben eigene Crawler mit eigenen Namen. Wer dort vorkommen will, muss diese Crawler zulassen, und zwar die richtigen: OpenAI, Anthropic und Perplexity trennen zwischen Suchindex und Abruf auf Nutzeranfrage, OpenAI und Anthropic zusätzlich das Training.
Die Stellschrauben nach Wirkung und Aufwand
| Maßnahme | Wirkung (unsere Einschätzung) | Aufwand (unsere Schätzung) |
|---|---|---|
| robots.txt prüfen: Such-Crawler zulassen, Training bewusst entscheiden | Hoch, wenn heute Such-Crawler ausgesperrt sind, sonst keine | 1–2 Stunden |
Kernseiten auf noindex, nosnippet und max-snippet prüfen | Hoch für AI Overviews: Ohne Indexierung und Snippet keine Chance | 1–3 Stunden |
Organization und WebSite als JSON-LD einmal sauber pflegen, alle anderen Knoten verweisen per @id darauf | Mittel: eindeutige Angaben zu Firma, Ort und Themen | 2–4 Stunden mit brotkrueml/schema |
| Service-Markup je Leistungsseite | Unklar: Google nennt kein Schema als Voraussetzung für AI Overviews | 1–2 Stunden je Seite |
| llms.txt anlegen | Niedrig nach heutigem Stand | 1–2 Stunden |
In welcher Reihenfolge Sie vorgehen
Klären Sie zuerst die beiden Zugangsfragen: Dürfen die Crawler herein, und darf Google ein Snippet zeigen? Diese zwei Schritte kosten zusammen zwei bis fünf Stunden und entscheiden, ob alles Weitere überhaupt gelesen wird. Erst danach lohnt Arbeit an Markup und llms.txt.
GEO muss kein eigenes Projekt sein, die wirksamen Schritte sind gewöhnliche Website-Pflege. Wie Sie messen, ob sie wirken, steht in unserem Artikel GEO-KPIs: So messen Sie Ihre Sichtbarkeit in KI-Antworten.
KI-Crawler nach Zweck: wer was liest
| Name (User-agent) | Anbieter | Zweck | Was die robots.txt bewirkt |
|---|---|---|---|
GPTBot | OpenAI | Training | Sperre signalisiert: nicht fürs Training verwenden |
OAI-SearchBot | OpenAI | Suche in ChatGPT | unabhängig von GPTBot, Änderung wirkt nach etwa 24 Stunden |
ChatGPT-User | OpenAI | Abruf auf Nutzeranfrage | gilt möglicherweise nicht |
ClaudeBot | Anthropic | Training | wird beachtet |
Claude-SearchBot | Anthropic | Suchindex | wird beachtet, eine Sperre kann die Sichtbarkeit in Suchergebnissen senken |
Claude-User | Anthropic | Abruf auf Nutzeranfrage | wird beachtet |
PerplexityBot | Perplexity | Suche, laut Perplexity kein Training | Perplexity empfiehlt, ihn zuzulassen |
Perplexity-User | Perplexity | Abruf auf Nutzeranfrage | wird in der Regel ignoriert |
Google-Extended | Gemini-Training und Grounding, crawlt nicht selbst | kein Einfluss auf die Google-Suche und damit auf AI Overviews | |
Applebot-Extended | Apple | crawlt nicht, regelt nur das Training mit Daten von Applebot | Seiten bleiben in Apples Suchergebnissen |
meta-externalagent | Meta | Training und Indexierung für Meta-Produkte | Sperre per Disallow vorgesehen |
CCBot | Common Crawl | offenes Webarchiv einer gemeinnützigen Stiftung | Sperre per Disallow möglich |
Training und Suche getrennt entscheiden
Die wichtigste Erkenntnis aus der Tabelle: Training und Suche sind getrennte Schalter. Sie können signalisieren, dass Ihre Texte nicht in künftige Modelle einfließen sollen, und trotzdem in den Antworten von ChatGPT, Claude oder Perplexity verlinkt werden.
- Wenn Sie in Antworten von ChatGPT, Claude und Perplexity auftauchen wollen →
OAI-SearchBot,Claude-SearchBotundPerplexityBotzulassen. - Wenn Sie Training ausschließen wollen →
GPTBot,ClaudeBot,Google-Extended,Applebot-Extendedundmeta-externalagentsperren. Meta nutzt seinen Crawler auch zum Indexieren für eigene Produkte. Ihre Sichtbarkeit in der Google-Suche bleibt davon unberührt. - Wenn Sie in AI Overviews erscheinen wollen → nichts KI-Spezifisches tun. Googlebot zulassen, Seite indexierbar halten, Snippet erlauben.
- Wenn Sie Abrufe auf Nutzeranfrage verhindern wollen → bei Anthropic genügt eine Sperre von
Claude-User, bei OpenAI, Perplexity und Meta (Meta-ExternalFetcher) reicht robots.txt dafür nicht, das sagen alle drei selbst.
Wir lassen auf vibe-digital.de bewusst auch die Trainings-Crawler zu. Unsere Inhalte sollen in Antworten vorkommen, und was wir veröffentlichen, ist öffentlich gemeint. Ein Verlag mit Bezahlinhalten würde hier anders entscheiden, und das wäre genauso richtig.
Deep-Scan // Technik
robots.txt in TYPO3 pflegen, und die Falle mit benannten Gruppen
TYPO3 liefert die robots.txt ohne Datei auf dem Server aus: als statische Route vom Typ staticText in der Site-Konfiguration config/sites/<site>/config.yaml. Jede Site einer Multisite-Installation bekommt so ihre eigene robots.txt, und Änderungen laufen über Git und Deployment statt per FTP.
Die Falle: Ein Crawler befolgt nach RFC 9309 nur die Gruppe, die zu seinem Namen passt. Die Gruppe User-agent: * gilt nur, wenn keine passt. Wer eine eigene Gruppe für KI-Crawler anlegt und dort nur Allow: / schreibt, hebt für diese Crawler alle Disallow-Zeilen der allgemeinen Gruppe auf. Das Muster darunter wiederholt sie deshalb in der Gruppe für die Such-Crawler.
Die Zeile Content-Signal stammt aus Cloudflares Content Signals Policy und drückt aus, wofür Inhalte genutzt werden dürfen: search für Suchindex und Suchergebnisse, ai-input für die Eingabe in KI-Modelle, ai-train für Training. Das ist eine Willenserklärung, keine technische Sperre, und laut Cloudflare ignorieren manche Anbieter sie womöglich.
routes:
-
route: robots.txt
type: staticText
content: |
User-agent: *
Disallow: /typo3/
Disallow: /typo3temp/
Content-Signal: search=yes, ai-input=yes, ai-train=no
# Training: no
User-agent: GPTBot
User-agent: ClaudeBot
User-agent: Google-Extended
User-agent: Applebot-Extended
User-agent: meta-externalagent
Disallow: /
# Search and user requests: yes. A named group replaces the * group
# instead of extending it, so the same protections are repeated here.
User-agent: OAI-SearchBot
User-agent: ChatGPT-User
User-agent: Claude-SearchBot
User-agent: Claude-User
User-agent: PerplexityBot
User-agent: Perplexity-User
Allow: /
Disallow: /typo3/
Disallow: /typo3temp/
Content-Signal: search=yes, ai-input=yes, ai-train=no
Sitemap: https://www.example.com/sitemap.xml
Strukturierte Daten: was sie leisten und was nicht
Strukturierte Daten beschreiben einer Maschine, was auf einer Seite steht: wer die Firma ist, welche Leistung angeboten wird, wann ein Artikel erschienen ist. Google stellt klar, dass für AI Overviews kein spezielles Schema nötig ist, und verlangt nur, dass die Daten zum sichtbaren Text passen.
Wir empfehlen sie trotzdem, weil sie Firmenname, Ort und Themen an einer Stelle eindeutig festhalten. Mehr als diese Eindeutigkeit sollten Sie davon nicht erwarten.
Schema-Typen nach Seitenart
| Seitenart | Schema-Typ | Worauf Sie achten |
|---|---|---|
| Jede Seite | Organization und WebSite | einmal beschreiben, mit fester @id; alle anderen Knoten verweisen darauf |
| Leistungsseite | Service | provider verweist auf die Firma; Wirkung auf KI-Antworten nicht belegt |
| Blogartikel, Ratgeber | BlogPosting (eine Unterform von Article) | publisher verweist auf die Firma, statt sie neu zu beschreiben |
| FAQ-Abschnitt | FAQPage | Google zeigt dafür seit 7. Mai 2026 kein Rich Result mehr |
| Unterseiten | BreadcrumbList | brotkrueml/schema kann sie automatisch erzeugen |
Extension oder eigener Code
Für TYPO3 gibt es dafür die Extension brotkrueml/schema. Sie kann unter anderem WebPage und Brotkrumen automatisch erzeugen. Die aktuelle Version 4.4.0 läuft mit TYPO3 13.4 und 14.3.
- Wenn die Angaben für die ganze Website gelten (Firma, Website, Seitentyp) → Extension. Wir nutzen sie selbst, ergänzt um ein eigenes Paket, in dem die Redaktion die Firmendaten in einem Datensatz pflegt.
- Wenn die Daten in eigenen Datensätzen liegen (Blogartikel, Stellenanzeigen) und die Zuordnung einfach ist → eigener Code im jeweiligen Paket.
- Wenn beides zusammenkommt → die Knoten über
@idverbinden, damit die Firma nur einmal beschrieben ist.
Ein typischer Fehler: Ein Blogartikel beschreibt die Firma ein zweites Mal als eigenes Objekt, statt auf den vorhandenen Knoten zu verweisen. Für eine Maschine sind das zwei Firmen, im schlechtesten Fall mit unterschiedlichen Angaben. Wie TYPO3 außerdem hreflang und XML-Sitemaps erzeugt, steht in unserem Artikel zu SEO in TYPO3 mit URLs, Schema.org und Mehrsprachigkeit.
Deep-Scan // Technik
JSON-LD: die Firma einmal beschreiben, überall verweisen
In JSON-LD gibt @id einem Knoten eine eindeutige Kennung. Ein Objekt, das nur aus @id besteht, ist ein Verweis auf einen Knoten, der an anderer Stelle beschrieben ist. Genau so verbinden Sie publisher eines Artikels und provider einer Leistung mit der Firma.
Das Muster darunter zeigt die drei Knoten zusammen. Auf einer echten Seite stehen Organization und nur der Knoten, der zur Seitenart passt. serviceType, provider und areaServed definiert schema.org für Service, name stammt von Thing. BlogPosting erbt publisher von CreativeWork.
{
"@context": "https://schema.org",
"@graph": [
{
"@type": "Organization",
"@id": "https://www.example.com/#organization",
"name": "Beispiel GmbH",
"url": "https://www.example.com/"
},
{
"@type": "BlogPosting",
"headline": "Titel des Artikels",
"publisher": { "@id": "https://www.example.com/#organization" }
},
{
"@type": "Service",
"name": "TYPO3-Upgrade",
"serviceType": "TYPO3-Upgrade auf Version 14 LTS",
"provider": { "@id": "https://www.example.com/#organization" },
"areaServed": "Deutschland"
}
]
}
llms.txt ehrlich eingeordnet
Die llms.txt ist eine Markdown-Datei, üblicherweise unter /llms.txt. Sie fasst zusammen, worum es auf der Website geht, und verlinkt die wichtigsten Seiten. Jeremy Howard hat das Format am 3. September 2024 vorgeschlagen. Es ist ein Vorschlag, kein Standard, und Google schreibt ausdrücklich, dass für AI Overviews keine KI-Textdateien nötig sind.
Wird sie gelesen? Ahrefs hat 137.210 Domains ausgewertet, die im Mai 2026 Besuche im eigenen Analytics-Werkzeug hatten. 28 Prozent davon veröffentlichten eine llms.txt, und 97 Prozent dieser Dateien wurden im ganzen Monat kein einziges Mal abgerufen. Die Stichprobe ist technisch überdurchschnittlich versiert, Ahrefs selbst nennt die 28 Prozent deshalb eine Obergrenze. Ein Abruf heißt außerdem noch nicht, dass ein System die Datei auch nutzt.
Wir pflegen trotzdem eine. Sie kostet eine bis zwei Stunden und ist eine gute Übung: Wer seine Leistungen nicht in zehn Zeilen beschreiben kann, hat ein Inhaltsproblem, kein GEO-Problem. Sichtbarkeit erwarten wir davon nicht.
Deep-Scan // Technik
llms.txt in TYPO3 anlegen
Die llms.txt legen Sie wie die robots.txt als staticText-Route in der Site-Konfiguration an. Damit liegt sie je Site in Git und geht mit dem normalen Deployment live.
Der Aufbau folgt dem Vorschlag auf llmstxt.org. Pflicht ist nur eine Überschrift mit dem Namen. Üblich sind danach eine Zusammenfassung als Zitatblock und Linklisten unter Zwischenüberschriften, jeder Link mit einem Halbsatz Beschreibung nach einem Doppelpunkt. Der Abschnitt „Optional“ markiert, was ein System bei knappem Kontext weglassen darf.
Darunter ein Ausschnitt aus unserer eigenen Datei. Blogartikel listen wir nicht einzeln, wir verlinken die Übersicht.
routes:
-
route: llms.txt
type: staticText
content: |
# vibe digital: TYPO3-Agentur im Raum Ulm
> TYPO3-Agentur für den Mittelstand, Kliniken, Stiftungen und öffentliche Auftraggeber. …
## Leistungen
- [TYPO3-Relaunch](https://www.vibe-digital.de/leistungen/typo3-relaunch): von der Bestandsaufnahme bis zum Go-live ohne Ausfall, danach pflegt Ihr Team selbst
- [TYPO3-Upgrade](https://www.vibe-digital.de/leistungen/typo3-upgrade): von v11, v12 oder v13 auf 14 LTS, Festpreis nach dem kostenlosen TYPO3-Check
- …
## Unternehmen
- [Ratgeber](https://www.vibe-digital.de/blog): Artikel zu TYPO3, Relaunch, Barrierefreiheit und SEO
- …
## Optional
- [Impressum](https://www.vibe-digital.de/impressum)
- [Datenschutz](https://www.vibe-digital.de/datenschutz)
Drei Stolpersteine, die wir häufig sehen
Google-Extended sperren, um aus AI Overviews herauszukommen. Das funktioniert nicht. Google-Extended steuert Training und Grounding für Gemini und hat laut Google keinen Einfluss auf die Google-Suche. AI Overviews gehören zur Suche. Prüfpunkt: Wer Inhalte aus KI-Antworten von Google heraushalten will, braucht nosnippet, data-nosnippet, max-snippet oder noindex, mit allen Folgen für die normale Suche.
Eine KI-Gruppe ohne die Sperren der allgemeinen Gruppe. Eine benannte Gruppe ergänzt User-agent: * nicht, sie ersetzt sie. Prüfpunkt: In jeder Gruppe, die Allow: / setzt, stehen dieselben Disallow-Zeilen wie in der allgemeinen.
Eine Bot-Liste einmal anlegen und vergessen. Die Listen der Anbieter ändern sich. Auch in unserer eigenen robots.txt fehlte im Oktober 2026 der Such-Crawler Claude-SearchBot, dafür stand noch anthropic-ai darin, ein Name, den Anthropic nicht aufführt. Prüfpunkt: Gleichen Sie die robots.txt einmal im Quartal mit den Bot-Seiten von OpenAI, Anthropic, Google, Perplexity und Apple ab.
Häufig gestellte Fragen
Nein. GPTBot ist der Trainings-Crawler von OpenAI und hat mit der Google-Suche nichts zu tun. Google-Extended steuert laut Google nur Training und Grounding für Gemini, es beeinflusst weder die Aufnahme in die Google-Suche noch das Ranking.
Mit der robots.txt allein nicht zuverlässig. OpenAI schreibt, dass für ChatGPT-User robots.txt-Regeln möglicherweise nicht gelten, Perplexity-User ignoriert sie in der Regel. Anthropic gibt an, dass seine Crawler einschließlich Claude-User robots.txt beachten.
Nein. Google schreibt, dass für AI Overviews keine KI-Textdateien nötig sind, und in einer Auswertung von Ahrefs für Mai 2026 wurden 97 Prozent der veröffentlichten llms.txt-Dateien kein einziges Mal abgerufen. In TYPO3 ist sie in ein bis zwei Stunden angelegt, Sichtbarkeit sollten Sie davon nicht erwarten.
Organization und WebSite, einmal sauber gepflegt und mit fester @id. Danach Artikel-Markup wie BlogPosting, dessen publisher auf die Firma verweist. FAQ-Markup bringt in der Google-Suche seit dem 7. Mai 2026 kein Rich Result mehr.
Wann sich Unterstützung von außen lohnt
Die meisten Schritte aus diesem Artikel kann Ihre Technik in ein bis zwei Tagen erledigen. Sinnvoll wird Hilfe von außen, wenn:
- niemand sagen kann, welche KI-Crawler Ihre robots.txt heute zulässt oder sperrt
- Sie mehrere Sites in einer TYPO3-Installation betreiben und jede ihre eigene robots.txt und llms.txt braucht
- Ihre TYPO3-Installation kein JSON-LD ausliefert oder dieselbe Firma mehrfach und widersprüchlich beschreibt
- Ihre TYPO3-Version keinen Support mehr bekommt: Dann kommt das zuerst, siehe unsere Übersicht zu TYPO3-Versionen und Support
Für Ladezeit und Sichtbarkeit als laufende Leistung gibt es unsere Seite Ladezeit und SEO.