Ein KI-Agent versteht deine Produktseite dann als Angebot, wenn er drei Fragen beantworten kann, ohne zu raten: Was bekomme ich, für wen ist es, und was kostet es genau? Diese Antworten gehören zuerst als sichtbarer Text in die Seite, in fester Reihenfolge und mit vollständigen Preisangaben aus Betrag, Einheit, Zeitraum und Steuerhinweis. Strukturierte Daten nach Schema.org kommen als zweite Ebene dazu. Sie wiederholen den Text, sie ersetzen ihn nicht.
- Der erste Absatz nennt Produkt, Zielgruppe und Einstiegspreis in einem Satz.
- Ein Preis ohne Einheit, Zeitraum und Steuerhinweis ist für einen Agenten kein Preis.
- „Nicht enthalten“ und „nicht geeignet für“ helfen beim Vergleich genauso viel wie die Leistungsliste.
- Was im Markup steht, muss auch im Text stehen. Der Text ist die Quelle, die nach bisherigen Beobachtungen zuverlässiger ankommt.
- Verkaufst du an Verbraucher*innen in Deutschland, ist der Gesamtpreis inklusive Umsatzsteuer Pflicht.
Wie liest ein KI-Agent deine Produktseite?
Die meisten Agenten sehen kein Layout. Sie lesen bevorzugt den Accessibility-Tree, also die Struktur, die der Browser aus dem HTML baut: Überschriften, Listen, Tabellen, Linktexte. Slobodan Manic beschreibt sie im Search Engine Journal (Juni 2026) als dasselbe Modell, das seit zwei Jahrzehnten Screenreader nutzen. Er warnt außerdem: Ein Preis, der erst nach clientseitigem JavaScript erscheint, erreicht diesen Baum womöglich nie. Eine Preiskachel, die nur durch Farbe und Schriftgröße als „Preis“ erkennbar ist, bleibt dort eine lose Zahl.
Bei ChatGPTs Websuche kommt noch weniger an. Laut der Rekonstruktion von Dan Petrovic erhält das Modell kein rohes HTML, sondern umgewandelten Klartext in Ausschnitten. Unsere Einschätzung dazu führen wir im Beitrag zu ChatGPTs eigenem Index aus: Wir gehen davon aus, dass der Crawler kein JavaScript rendert und JSON-LD beim Übertrag in diesen Klartext verloren gehen kann. Eindeutig belegt ist das nicht. Die Konsequenz ist trotzdem klar: Liefere die Angaben serverseitig aus und schreib sie in den Text.
Welche Blöcke gehören auf die Seite, und in welcher Reihenfolge?
Sechs Blöcke in fester Reihenfolge decken ab, was ein Agent für einen Vergleich braucht. Jeder Block bekommt eine echte Überschrift (H2) und steht für sich. Ein Agent zerlegt die Seite in Abschnitte und bewertet jeden einzeln, ein Mensch springt genauso zur passenden Stelle. Das Beispiel in der Tabelle ist ein ausgedachtes Software-Abo für Praxen.
| Block | Was rein muss | Beispiel |
|---|---|---|
| Angebotssatz (H1 und erster Absatz) | Produkt, Zielgruppe, Einstiegspreis | „Online-Terminbuchung für Arztpraxen mit bis zu 5 Behandlungsräumen, ab 49 € pro Monat zzgl. USt.“ |
| Leistungen | Liste der enthaltenen Funktionen, danach ausdrücklich: nicht enthalten | „Enthalten: Online-Buchung, SMS-Erinnerung. Nicht enthalten: Abrechnung mit Krankenkassen.“ |
| Preise | Tabelle: Plan, Betrag, Einheit, Zeitraum, Steuer, Mindestlaufzeit | „Basis: 49 € pro Praxis und Monat, zzgl. USt., monatlich kündbar“ |
| Zielgruppe | Für wen, mit konkreter Grenze, und für wen nicht | „Für Einzel- und Gemeinschaftspraxen. Nicht für Kliniken mit eigener Patientenverwaltung.“ |
| Bedingungen | Region, Laufzeit, Kündigung, Einrichtung | „Verfügbar in Deutschland. Einrichtung ohne Aufpreis.“ |
| FAQ | Die Fragen, die vor dem Kauf wirklich kommen | „Kann ich zwischen den Plänen wechseln?“ |
Die Reihenfolge hat einen Grund. Der Angebotssatz oben ist die Passage, die ein Agent am ehesten übernimmt, wenn er einer Person eine Kurzantwort gibt. Steht dort nur „Die smarte Lösung für Ihre Praxis“, hat er nichts, was er weitergeben kann.
Wie schreibst du Preise, die ein Agent vergleichen kann?
Die häufigste Lücke ist nicht der fehlende Preis, sondern der halbe. „49 €“ allein lässt vier Fragen offen: pro was, für welchen Zeitraum, netto oder brutto, und gilt das ab sofort oder erst nach einer Aktion? Ein Mensch erschließt sich das aus dem Kontext. Ein Agent, der drei Anbieter vergleicht, setzt im schlechtesten Fall Netto neben Brutto.
Schreib deshalb jede Preisangabe vollständig aus, am besten in einer HTML-Tabelle statt in gestalteten Kacheln: „49 € pro Praxis und Monat, zzgl. USt.“ Staffeln, Add-ons und Rabatte bekommen eigene Zeilen mit eigener Einheit. „Preis auf Anfrage“ ist erlaubt, nimmt dich aber aus jedem Preisvergleich heraus. Wenn möglich, nenn wenigstens einen Einstiegspreis. Wie du Kostenfragen ohne festen Listenpreis beantwortest, zeigen wir in Muss ich meine Preise öffentlich zeigen?
Für den deutschen Markt kommt eine Regel hinzu. Die Preisangabenverordnung regelt Preisangaben von Unternehmern gegenüber Verbrauchern. Wer als Unternehmer Verbraucher*innen etwas anbietet oder ihnen gegenüber mit Preisen wirbt, muss den Gesamtpreis angeben, und wird der Preis aufgegliedert, ist der Gesamtpreis hervorzuheben. Gesamtpreis heißt laut Verordnung der Preis einschließlich Umsatzsteuer und sonstiger Preisbestandteile. Wer ihn vorsätzlich oder fahrlässig nicht, nicht richtig oder nicht vollständig angibt, handelt ordnungswidrig.
Für die Struktur der Seite heißt das: Bei B2C steht der Bruttopreis vorne, und im Markup steht dieselbe Zahl. Richtet sich dein Angebot ausschließlich an Unternehmen, schreib den Nettopreis mit dem sichtbaren Zusatz „zzgl. USt.“ und mach die Zielgruppe im Zielgruppen-Block eindeutig.
Wie beschreibst du Leistungen und Zielgruppe?
Schreib die Grenzen hin, nicht nur die Stärken. Agenten arbeiten im Auftrag von Menschen, die eine konkrete Anforderung haben: „Termin-Software, die SMS-Erinnerungen kann, für eine Praxis mit drei Räumen.“ Eine Leistungsliste, die nur Stärken aufzählt, lässt den Agenten mit der Frage allein, ob etwas fehlt oder bloß nicht erwähnt ist.
Zwei Regeln helfen:
- Zahlen statt Adjektive. „Bis zu 5 Behandlungsräume“ statt „für kleine und mittlere Praxen“. „Für KMU“ kann ein Agent nicht gegen eine Anforderung prüfen.
- Ausschlüsse ausdrücklich nennen. Ein Satz „Nicht enthalten: …“ verhindert, dass ein Agent dich für etwas empfiehlt, das du nicht lieferst. Das spart dir Anfragen, die nie zu Kunden werden.
Halte die Begriffe auf der ganzen Seite gleich. Heißt der Plan oben „Basis“, darf er in der Preistabelle nicht „Starter“ heißen und im FAQ „Einstiegspaket“. Für einen Menschen ist das Stil, für einen Agenten sind es drei Produkte.
Wie sieht das passende JSON-LD aus?
Strukturierte Daten nach Schema.org beschreiben dieselben Angaben in einem festen Vokabular, als zweite Ebene unter dem Text. Ein Offer ist dort ein Angebot, ein Recht an einer Sache zu übertragen oder eine Leistung zu erbringen. Eine UnitPriceSpecification hält fest, ob die Umsatzsteuer enthalten ist (valueAddedTaxIncluded) und auf welche Menge sich der Preis bezieht (referenceQuantity, die Einheit als UN/CEFACT-Code). Die Zielgruppe trägst du über audience ein, das auch auf Product und Service erlaubt ist.
Für das Beispiel aus der Tabelle sieht das so aus:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Product",
"name": "Praxis-Terminplaner Basis",
"description": "Online-Terminbuchung mit SMS-Erinnerung für Arztpraxen mit bis zu 5 Behandlungsräumen. Nicht enthalten: Abrechnung mit Krankenkassen.",
"audience": {
"@type": "Audience",
"name": "Arztpraxen mit bis zu 5 Behandlungsräumen"
},
"offers": {
"@type": "Offer",
"eligibleRegion": "DE",
"priceSpecification": {
"@type": "UnitPriceSpecification",
"price": "49.00",
"priceCurrency": "EUR",
"valueAddedTaxIncluded": false,
"referenceQuantity": {
"@type": "QuantitativeValue",
"value": "1",
"unitCode": "MON"
}
}
}
}
</script>
Beachte das Format: Schema.org verlangt den Punkt als Dezimalzeichen und die Währung als ISO-4217-Code, also 49.00 und EUR, nicht „49,00 €“. Und alles darin steht auch im sichtbaren Text. Google formuliert das als Grundsatz: Strukturierte Daten müssen den Inhalt der Seite getreu wiedergeben, und Inhalte, die Leser*innen nicht sehen können, sollen nicht ausgezeichnet werden. Ein Preis nur im Markup ist also doppelt falsch: Er kommt nicht sicher an, und er verstößt gegen die Richtlinie.
Wie prüfst du das Ergebnis?
Vier Prüfungen zeigen, ob die Seite als Angebot ankommt:
- Ohne JavaScript aufrufen. Stehen Angebotssatz, Preistabelle und Zielgruppe noch da, können auch Crawler sie lesen, die kein JavaScript ausführen.
- Nur Überschriften und erste Sätze lesen. Ergibt das ein vollständiges Angebot, ist die Struktur tragfähig.
- Markup und Text abgleichen. Vergleiche jede Zahl im JSON-LD mit der sichtbaren Zahl. Abweichungen entstehen meist, wenn ein Preis im Shop geändert wird und das Markup von Hand gepflegt ist.
- Einen KI-Assistenten fragen. Gib ihm die URL mit der Frage: „Was kostet das Produkt auf dieser Seite pro Monat, inklusive oder exklusive Umsatzsteuer, und für wen ist es gedacht?“ Jede Unsicherheit in der Antwort zeigt auf eine Lücke im Text.
Den technischen Teil prüft unser Tech Audit automatisch, pro Seitentyp: Crawler-Zugang, semantisches HTML und strukturierte Daten. Ob die Preisangabe inhaltlich vollständig ist, beurteilt es nicht. Dafür bleiben die Schritte 2 und 4.
Reicht es, nur JSON-LD einzubauen?
+
Nein. Bei ChatGPTs Websuche erhält das Modell laut Petrovics Rekonstruktion umgewandelten Klartext statt HTML. Ob Markup in diesem Klartext erhalten bleibt, ist nicht eindeutig belegt. Der sichtbare Text ist der sicherere Weg, auch wenn das Modell ihn nur in Ausschnitten liest.
Netto oder brutto: Was steht auf der Seite?
+
Gegenüber Verbraucher*innen der Gesamtpreis inklusive Umsatzsteuer. Bei reinen B2B-Angeboten der Nettopreis mit sichtbarem „zzgl. USt.“, im Markup passend dazu valueAddedTaxIncluded: false.
Hilft eine llms.txt für Produktseiten?
+
Sie kann helfen, ersetzt aber keine gut gebaute Seite. Die llms.txt ist ein Vorschlag von Jeremy Howard (Answer.AI, September 2024): eine Markdown-Datei unter /llms.txt, die die wichtigsten Seiten mit je einem Satz Kontext nennt. Googles John Mueller sagte im April 2025 laut Search Engine Journal, seines Wissens habe kein KI-Dienst angekündigt, die Datei zu nutzen.
Was kommt nach der lesbaren Produktseite?
+
Der nächste Schritt ist eine Seite, auf der Agenten handeln statt raten. Mit Web-MCP stellt eine Website klar definierte Werkzeuge bereit, etwa „Verfügbarkeit prüfen“ oder „Termin buchen“. Grundlage bleibt eine Seite, die sauber gelesen wird.
