Wenn ein KI-Agent Ihre Seite abruft, bekommt er bisher dasselbe HTML wie ein Browser: Navigation, Skripte, eingebettete JSON, das komplette Markup-Rauschen. Agenten fragen inzwischen aktiv nach Markdown. Dieser Beitrag zeigt, wie Sie ausliefern – und was Markdown nicht repariert.
Die Kurzantwort
Ein Agent liest Ihre Seite als Markdown, sobald Ihr Server ihm eine Markdown-Fassung ausgibt – dafür gibt es drei etablierte Wege. Erstens Content Negotiation: Der Agent schickt Accept: text/markdown mit, und Sie antworten unter derselben URL mit Markdown, gelabelt als Content-Type: text/markdown; charset=utf-8. Zweitens statische Spiegel: Unter demselben Pfad mit angehängtem .md liegt eine Markdown-Version, die Sie über rel="alternate" im Seitenkopf verlinken. Drittens Konvertierung am Edge: Cloudflares Markdown for Agents wandelt das HTML im Netzwerk um, ohne dass Ihre Anwendung etwas ändert. In keinem Fall bauen Sie eine zweite Website – es bleibt dieselbe URL mit einer zweiten Darstellung.
Warum HTML für Agenten teuer ist
Sprachmodelle verarbeiten Token, und HTML besteht größtenteils aus Dingen, die kein Mensch je zu sehen bekommt: Container-Divs, Klassennamen, Inline-Skripte, Menüpunkte, die sich auf jeder Seite wiederholen. In Audits sehen wir regelmäßig Seiten, deren HTML ein Vielfaches des lesbaren Texts wiegt – bevor ein einziges Wort Inhalt gezählt ist.
Cloudflare hat das an einem konkreten Beispiel gemessen: Der Ankündigungsbeitrag selbst umfasst 16.180 Token als HTML und 3.150 Token als Markdown – eine Reduktion um 80 Prozent.
Unabhängige Messungen bestätigen die Größenordnung und schärfen sie. Eine Analyse von 193 Seiten aus 66 Domains kommt auf 90,9 Prozent eingesparte Token bei schlichter HTML-zu-Markdown-Konvertierung und auf 98,1 Prozent, wenn zusätzlich nur der Hauptinhalt übrig bleibt; das Markup einer typischen Seite wiegt im Median rund 30-mal so viel wie ihr Inhalt. Eine zweite Messung an 20 deutschsprachigen Seiten liegt beim Median bei etwa 128.000 Token für rohes HTML gegen 3.241 Token für Hauptinhalt-Markdown – warnt aber zurecht, dass die Spanne je nach Seite zwischen 18 und 90 Prozent reicht. Realistisch also: gut 80 bis 98 Prozent, stark abhängig von Seite und Methode.
Was HTML schwer macht, immer wieder:
- Navigation, Kopf- und Fußzeile – auf jeder einzelnen Seite neu
- Inline-JSON-LD und Skript-Blöcke im Quelltext
- Div-Verschachtelung und Klassennamen zwischen den Inhalten
- Aktionselemente: Buttons, Formulare, Teaser-Blöcke
Drei Wege, Markdown auszuliefern
Alle drei Wege führen zur selben Stelle: Der Agent fragt, Ihr Server antwortet mit Markdown. Sie unterscheiden sich darin, wer die Arbeit macht – und wie viel Pflege das kostet.
Weg 1: Content Negotiation über den Accept-Header
Das ist Standard-HTTP, keine Erfindung der KI-Ära: Ein Client teilt über den Accept-Header mit, welche Darstellungen er versteht, und der Server entscheidet. Wenn eine Anfrage text/markdown enthält, antworten Sie unter derselben URL mit der Markdown-Fassung und setzen Vary: Accept, damit Caches die beiden Darstellungen getrennt halten.
Wer heute tatsächlich fragt, ist greifbar: Claude Code schickt Accept: text/markdown, text/html, */* – Markdown und HTML gleichgewichtet. Ein Server, der bei Gleichstand HTML bevorzugt, liefert also HTML. OpenCode stuft Markdown dagegen ausdrücklich am höchsten ein:
Accept: text/markdown, text/html, */*
Accept: text/markdown;q=1.0, text/x-markdown;q=0.9, text/plain;q=0.8
Weg 2: Statische .md-Spiegel
Der simpelste Weg: Sie legen neben jede wichtige Seite eine Markdown-Datei – /leistungen.md neben /leistungen. Vercel dokumentiert dieses Muster für Agenten-Dokumentationen, inklusive Rewrites, die jeden Pfad auf seine .md-Variante abbilden. Auch die llms.txt-Spezifikation empfiehlt genau das: eine saubere Markdown-Version unter derselben URL wie die Originalseite, mit angehängtem .md, entdeckt über rel="alternate" type="text/markdown".
<link rel="alternate" type="text/markdown" href="https://beispiel.de/leistungen.md">
Weg 3: Konvertierung am Edge oder im Origin
Statt Dateien zu pflegen, wandeln Sie das HTML um, wenn die Anfrage reinkommt – entweder in Ihrer Anwendung oder, ohne dass Ihre Anwendung es merkt, im CDN. Cloudflare macht daraus ein fertiges Produkt; wer kein Cloudflare nutzt, kann dieselbe Logik selbst implementieren. Dazu gleich mehr.
- Content Negotiation: eine Quelle, immer frisch – braucht Serverlogik, der sauberste Weg für Anwendungen mit eigenem Code
- .md-Spiegel: trivial zu hosten, auch auf reinem Static Hosting – kann veralten und muss gepflegt werden
- Edge-Konvertierung: kein eigener Code, sofort für die ganze Zone – gebunden an den Anbieter und dessen Grenzen
Cloudflare Markdown for Agents im Detail
Cloudflare konvertiert seit Februar 2026 in der Beta: Für aktivierte Zonen wandelt das Netzwerk HTML in Echtzeit in Markdown um, wenn die Anfrage den passenden Accept-Header trägt – keine Änderung am Origin nötig. Die Beta ist kostenlos für Pro-, Business- und Enterprise-Tarife sowie SSL-for-SaaS-Kunden; im Free-Tarif ist sie nicht enthalten. Die Nachfrage existiert schon heute: Agenten wie Claude Code und OpenCode senden diese Header bereits.
Was dabei herauskommt, dokumentiert Cloudflare selbst: Ausgabe mit YAML-Frontmatter, Text als Markdown und JSON-LD-Blöcken. Kopf- und Fußzeilen, Navigation, Skripte und Styles werden entfernt – das JSON-LD bleibt also erhalten, was für Entity-Signale wertvoll ist. Zwei Grenzen gelten: Es wird nur aus HTML konvertiert, und maximal 6 MiB dekomprimiertes HTML pro Seite.
Die erste Grenze verdient Aufmerksamkeit: „Nur HTML“ heißt, dass Seiten, deren Inhalt erst im Browser per JavaScript entsteht, für die Konvertierung wenig hergeben. Cloudflare dokumentiert dazu keine Aussage über Rendering – wer eine SPA betreibt, sollte die Ausgabe aber selbst prüfen, bevor er auf die Funktion baut.
curl https://blog.cloudflare.com/markdown-for-agents/ -H "Accept: text/markdown"
Selbst konvertieren: Markdown aus dem eigenen Stack
Wer keine Cloudflare-Zone hat oder volle Kontrolle will, baut die Konvertierung in die Anwendung ein. In einem PHP-und-Twig-Stack wie unserem sähe das so aus: eine Prüfung des Accept-Headers im Front Controller, ein eigenes Markdown-Template pro Inhaltstyp, fertig. Kein Nachbauen des eigenen HTML, kein Regex-Berg – das Template erzeugt die Markdown-Fassung aus denselben Daten wie die HTML-Seite.
$accept = $_SERVER['HTTP_ACCEPT'] ?? '';
if (str_contains($accept, 'text/markdown')) {
header('Content-Type: text/markdown; charset=utf-8');
header('Vary: Accept');
header('X-Robots-Tag: noindex, nofollow');
echo $twig->render('artikel.md.twig', ['page' => $page]);
exit;
}
Drei Regeln halten die Ausgabe sauber. Erstens: nur Hauptinhalt – Navigation und Fußzeile haben in der Markdown-Fassung nichts verloren. Zweitens: Links und Canonical bleiben erhalten; Markdown-Link-Syntax kostet zwar selbst Token, aber ein Agent, der Quelle und Verweise nicht nachvollziehen kann, zitiert schlechter. Vorsicht bei automatischer Extraktion: In der 193-Seiten-Analyse ging rund ein Fünftel des Textes verloren, der nur auf der jeweiligen Seite existierte. Drittens: die Markdown-Variante per X-Robots-Tag: noindex, nofollow aus der Suche nehmen, damit Google nicht anfängt, die Agenten-Version zu indexieren.
Dass das im großen Maßstab läuft, zeigt Mintlify: Die Dokumentations-Plattform liefert bei Accept: text/markdown sauberes Markdown unter derselben URL aus, mit noindex auf der Markdown-Variante, und beziffert den Effizienzgewinn mit Faktor 30. Der entscheidende Punkt: Autoren müssen nicht mehr zwischen Menschen und Agenten wählen.
Was Markdown-Auslieferung nicht repariert
Schwacher Inhalt bleibt schwach. Markdown macht eine Seite billiger zu lesen, nicht besser – eine unklare Antwort wird durch die Ausgabeform nicht zitierfähig.
Der Zugang entscheidet zuerst: Bevor irgendein Agent Ihre Markdown-Fassung sieht, muss er die Seite abrufen dürfen. Cloudflare fasst das in AI Crawl Control zusammen – Regeln pro KI-Crawler, die erlauben oder blockieren. Wer Agenten im CDN versehentlich aussperrt, optimiert an der falschen Stelle.
Zitate hängen außerdem weiter an Struktur. Schema-Markup, klare Entitäten, eindeutige Antworten – das sind die Signale, an denen sich Modelle festhalten. Eine Markdown-Fassung ohne sauberes Inhalts-Dahinter macht daraus kein Zitat.
Zur Ehrlichkeit gehört auch, was oben schon stand: Content Negotiation ist Konvention, und aggressive Extraktion kann Text kosten. Wer nur den Hauptinhalt ausgibt, sollte wissen, was er weglässt.
In fünf Minuten prüfen, ob es funktioniert
Diese Schritte sind reine Lesezugriffe – nichts davon verändert Ihre Seite:
- Fragen Sie Ihre Startseite mit Markdown-Accept-Header ab – mit und ohne, im Vergleich.
- Prüfen Sie den
Content-Typeder Antwort:text/htmlheißt, es kam noch keine Markdown-Fassung zurück. - Testen Sie einen echten Agent-Header, etwa den von OpenCode, bei dem Markdown explizit am höchsten gewichtet ist.
- Schauen Sie in Ihre Server-Logs, welche Accept-Header in den letzten sieben Tagen tatsächlich angekommen sind – danach richtet sich, ob sich der Aufwand lohnt.
- Bei Cloudflare-Zonen: Nach der Aktivierung denselben curl-Check gegen Ihre eigene Domain fahren.
curl -sI https://beispiel.de/ -H "Accept: text/markdown"
curl -sI https://beispiel.de/
Wer über die Auslieferung hinaus messen will, ob ChatGPT, Claude und Perplexity die eigene Marke tatsächlich zitieren, braucht ein Tracking dafür – dafür haben wir Cited gebaut, das Zitierungen und Markenbeschreibungen der Modelle in Echtzeit verfolgt.
Token-Effizienz als Zitierfaktor
Warum das zitierungsrelevant ist: Ein Agent, der Ihre ganze Seite in 2.500 bis 3.000 Token serviert bekommt, liest sie vollständig. Ein Agent, dem 128.000 Token HTML vorgesetzt werden, kürzt – und was abgeschnitten wird, ist selten der Teil, in dem Sie Ihre Antwort formuliert haben. Günstige Seiten werden eher vollständig gelesen, vollständig gelesene Seiten eher zitiert.
Das passt zu einer Bewegung, die 2024 begann: Jeremy Howard schlug am 3. September 2024 die llms.txt vor, um die Kontextkonstruktion für LLMs zu entwirren – die Spezifikation empfiehlt ausdrücklich Markdown-Versionen pro Seite, gefunden über rel="alternate". In unseren Audits zählt llms.txt inzwischen zum Standard. Unser eigener Stack hat eine gepflegte llms.txt, aber noch keine Markdown-Oberfläche – auch für uns ist dieser Beitrag also Arbeitsliste, nicht nur Ratgeber.
Die 30-Minuten-Checkliste
- Zuerst den Zugang klären (fünf Minuten): robots.txt ansehen, KI-Crawler-Regeln im CDN prüfen, Testabruf mit dem Header eines echten Agenten.
- Cloudflare-Kunde mit Pro, Business oder Enterprise? Markdown for Agents aktivieren und per curl gegen die eigene Domain verifizieren (fünf Minuten).
- Free-Tarif oder anderes CDN: .md-Spiegel für Ihre wichtigsten Seiten erzeugen, per
rel="alternate"verlinken und in die llms.txt eintragen (etwa 15 Minuten). - Eigene Anwendung im Spiel? Content Negotiation im Front Controller ergänzen –
Vary: Accept,X-Robots-Tag, ein Markdown-Template (fünf Minuten plus Templates). - Sieben Tage lang Accept-Header im Log sammeln, dann erst entscheiden, ob ein zweiter Ausbauschritt drin ist.
Wann Unterstützung sinnvoll ist
Markdown-Auslieferung ist der vierte Hebel, nicht der erste. In unserem KI-Sichtbarkeits-Audit prüfen wir deshalb in dieser Reihenfolge: Darf der Agent Ihre Inhalte überhaupt abrufen? Findet er Struktur – Schema, Entitäten, klare Antworten? Ist der Inhalt aktuell? Und erst dann: Wie teuer ist die Seite pro Token, und lohnt sich eine Markdown-Fassung? Wer diese Reihenfolge einhält, investiert dort, wo Zitierungen entstehen – und verschwendet kein Budget an einem Hebel, der ins Leere greift, weil ein anderer noch klemmt.
Wenn Sie nicht sicher sind, wo Ihre Seite in dieser Rangfolge steht, sprechen wir das am schnellsten in einem kurzen Termin zum Festpreis durch – Sie bekommen vorher das Audit, nicht danach.