AI Feed - visibility for AI agents
AI Feed stellt Shop-Inhalte als Markdown bereit, optimiert für Sprachmodelle und Shopping-Agenten. Ein HTTP-Client sendet Accept: text/markdown (oder hängt ?output_format=md an die URL an) und erhält statt der gerenderten HTML-Seite sauberes Markdown mit YAML-Metadaten.
Warum das wichtig ist
Section titled “Warum das wichtig ist”KI-Agenten (ChatGPT Shopping, Perplexity, Gemini, eigene LLM-Crawler) überspringen zunehmend HTML und fragen direkt nach einer “sauberen” Version der Seite. Klassisches HTML-Scraping ist fehleranfällig, teuer und verliert strukturierte Daten. AI Feed dreht das Verhältnis um: Der Shop veröffentlicht selbst eine maschinenlesbare Version unter derselben URL wie die für Menschen bestimmte.
Modul aktivieren
Section titled “Modul aktivieren”Das Modul ist nach dem Update auf 1.11.0 standardmäßig aktiv. So deaktivieren Sie es:
add_filter('polski/ai_feed/enabled', '__return_false');Einstellungen gespeichert in der Option polski_ai_feed:
| Schlüssel | Standard | Beschreibung |
|---|---|---|
enabled | true | Hauptschalter |
post_types | ['post', 'page', 'product'] | Inhaltstypen, die als Markdown ausgeliefert werden |
Wie die Content-Negotiation funktioniert
Section titled “Wie die Content-Negotiation funktioniert”Markdown wird in zwei Fällen zurückgegeben:
- Der
Accept-Header enthälttext/markdown(mit Ausschluss vonq=0). - Die URL enthält das Query-Argument
?output_format=md.
In beiden Fällen trägt die Antwort:
Content-Type: text/markdown; charset=UTF-8Vary: AcceptReguläre Besucher erhalten weiterhin standardmäßiges HTML. Berechtigungsregeln (read_post, Passwortschutz, Entwürfe) bleiben erhalten.
Auffindbarkeit
Section titled “Auffindbarkeit”Einzelne HTML-Ansichten enthalten im <head>:
<link rel="alternate" type="text/markdown" href="https://shop.test/product/t-shirt/?output_format=md" />Crawler und KI-Agenten können die Markdown-Version finden, ohne die URL-Konvention kennen zu müssen.
Verknüpfung im Admin
Section titled “Verknüpfung im Admin”Auf den Listenansichten von Beiträgen, Seiten und Produkten erscheint neben “Ansehen” eine Aktion “View AI Version”, die dasselbe Markdown öffnet, das ein KI-Agent sehen würde - praktisch zum Testen und zur Vorschau.
Was eine Produkt-Markdown-Antwort enthält
Section titled “Was eine Produkt-Markdown-Antwort enthält”Für ein WooCommerce-Produkt enthält die Antwort:
YAML-Front-Matter
---title: "Basic T-shirt"permalink: "https://shop.test/product/t-shirt/"sku: "TS-001"gtin: "5901234567890"product_type: "simple"currency: "PLN"price: "49,99 zł"regular_price: "59,99 zł"sale_price: "49,99 zł"in_stock: "true"on_sale: "true"modified: "2026-04-30T12:00:00+02:00"categories: ["T-shirts"]---Aufzählungsliste “Product details”
- SKU und GTIN/EAN
- Bruttopreis, regulärer Preis, Aktionspreis
- Steuerklasse (VAT)
- Niedrigster Preis der letzten 30 Tage (Omnibus)
- Lieferzeit
- Lagerbestand und Verfügbarkeit
- Gewicht und Abmessungen
- Marke, Hersteller
- Verantwortliche Person (GPSR)
Vollständige Produktbeschreibung, in Markdown konvertiert.
Vollständiges Antwortbeispiel
Section titled “Vollständiges Antwortbeispiel”---title: "Basic T-shirt"permalink: "https://shop.test/product/t-shirt/"sku: "TS-001"price: "49,99 zł"in_stock: "true"---
# Basic T-shirt
Cotton t-shirt with classic cut.
## Product details
- **SKU:** TS-001- **GTIN/EAN:** 5901234567890- **Price:** 49,99 zł- **Tax class:** Standard- **Lowest price (last 30 days):** 45,00 zł- **Delivery time:** 1-2 days- **Availability:** In stock- **Weight:** 0.2 kg
## Description
Full product description from Gutenberg blocks, including lists, tables, and headings./llms.txt-Manifest
Section titled “/llms.txt-Manifest”Gemäß dem Standard llmstxt.org stellt der Shop eine Datei /llms.txt im Root der Domain bereit. KI-Agenten schauen dort zuerst nach, um die Struktur der Website zu erkennen, ohne URL-Konventionen zu kennen.
curl https://shop.test/llms.txtAntwort (Markdown):
# Your store
> An online store for Polish goods.
## Legal
- [Terms](https://shop.test/terms/?output_format=md): Terms and conditions- [Privacy](https://shop.test/privacy/?output_format=md): Privacy policy- [Returns](https://shop.test/returns/?output_format=md): Returns and withdrawal policy
## Shop
- [Shop](https://shop.test/shop/): Storefront
## Product categories
- [T-shirts](https://shop.test/category/t-shirts/)- [Hoodies](https://shop.test/category/hoodies/)Standardinhalt
- Titel und Beschreibung der Website (aus
get_bloginfo('name'),get_bloginfo('description')) - Abschnitt “Legal” mit
?output_format=md-Links zu den rechtlichen Seiten (Terms, Privacy, Returns, Complaints) - nur wenn diese Seiten existieren - Abschnitt “Shop” mit der WooCommerce-Shop-Seite
- “Product categories” mit den 20 am stärksten befüllten Kategorien (sortiert nach Produktanzahl)
Deaktivieren
add_filter('polski/ai_feed/llms_txt_enabled', '__return_false');Abschnitte anpassen
add_filter('polski/ai_feed/llms_txt_sections', static function (array $sections): array { $sections['Resources'] = [ ['Blog', home_url('/blog/'), 'Latest posts'], ['FAQ', home_url('/faq/')], ]; return $sections;});Kategorielimit
add_filter('polski/ai_feed/llms_txt_category_limit', static fn () => 50);Entwickler-Filter
Section titled “Entwickler-Filter”| Filter | Zweck |
|---|---|
polski/ai_feed/enabled | Hauptschalter (bool) |
polski/ai_feed/post_types | Liste der Inhaltstypen (string[]) |
polski/ai_feed/post_markdown | Endgültiges Markdown für einen Beitrag/eine Seite |
polski/ai_feed/product_markdown | Endgültiges Markdown für ein Produkt |
polski/ai_feed/product_facts | Liste von [label, value]-Paaren im Abschnitt “Product details” |
polski/ai_feed/password_required | Markdown-Text bei passwortgeschütztem Inhalt |
polski/ai_feed/llms_txt_enabled | Kill-Switch für /llms.txt (bool) |
polski/ai_feed/llms_txt_sections | Map aus [heading => list] für das Manifest |
polski/ai_feed/llms_txt_category_limit | Maximale Anzahl gelisteter Produktkategorien (int) |
Beispiel - einen eigenen CPT registrieren
Section titled “Beispiel - einen eigenen CPT registrieren”add_filter('polski/ai_feed/post_types', static function (array $types): array { $types[] = 'recipe'; return $types;});Beispiel - ein eigenes Feld zur Produktausgabe hinzufügen
Section titled “Beispiel - ein eigenes Feld zur Produktausgabe hinzufügen”add_filter('polski/ai_feed/product_facts', static function (array $facts, WC_Product $product): array { $color = $product->get_attribute('pa_color'); if ($color !== '') { $facts[] = ['Color', $color]; } return $facts;}, 10, 2);Ersetzt das mein Theme für reguläre Besucher?
Nein. HTML wird standardmäßig zurückgegeben. Markdown wird nur an Clients ausgeliefert, die es über Accept oder den URL-Parameter anfordern.
Werden passwortgeschützte Seiten offengelegt?
Nein. Wenn eine Seite ein Passwort erfordert, gibt AI Feed einen kurzen Markdown-Hinweis statt des vollständigen Inhalts zurück.
Werden Entwürfe unterstützt?
Ja, für Benutzer mit Bearbeitungsrechten. Die Admin-Aktion “View AI Version” verwendet Vorschau-URLs für Entwürfe und geplante Beiträge.
Kann ich eigene Inhaltstypen hinzufügen?
Ja, über den Filter polski/ai_feed/post_types. Standardmäßig werden post, page und product unterstützt.
Funktioniert es mit HPOS und Block-Checkout?
Ja. Das Modul arbeitet auf der Ebene der Produktansicht, unabhängig von der Bestellspeicherung (HPOS) und dem Checkout (Blocks).