AI Feed - widoczność dla agentów AI
AI Feed udostępnia zawartość sklepu w formacie Markdown zoptymalizowanym pod modele językowe i agentów zakupowych. Klient HTTP wysyła nagłówek Accept: text/markdown (albo dodaje ?output_format=md do URL) i zamiast wyrenderowanej strony HTML otrzymuje czysty Markdown z metadanymi YAML.
Po co to komu
Dział zatytułowany „Po co to komu”Agenci AI (ChatGPT shopping, Perplexity, Gemini, własne crawlery LLM) coraz częściej pomijają HTML i pytają wprost o “czystą” wersję strony. Tradycyjny scraping HTML jest zawodny, kosztowny i tracił dane strukturalne. AI Feed odwraca relację: sklep sam publikuje wersję czytelną dla maszyn na tym samym URL co wersja dla człowieka.
Włączenie modułu
Dział zatytułowany „Włączenie modułu”Moduł jest aktywny domyślnie po aktualizacji do wersji 1.11.0. Możesz wyłączyć go filtrem:
add_filter('polski/ai_feed/enabled', '__return_false');Ustawienia w opcji polski_ai_feed:
| Klucz | Wartość domyślna | Opis |
|---|---|---|
enabled | true | Globalny przełącznik |
post_types | ['post', 'page', 'product'] | Typy treści serwowane jako Markdown |
Jak działa negocjacja treści
Dział zatytułowany „Jak działa negocjacja treści”Markdown jest zwracany w dwóch przypadkach:
- Nagłówek
Acceptzawieratext/markdown(z wyłączeniem jawnegoq=0). - Parametr URL
?output_format=mdjest obecny w żądaniu.
W obu przypadkach odpowiedź ma nagłówki:
Content-Type: text/markdown; charset=UTF-8Vary: AcceptZwykli odwiedzający nadal otrzymują standardowy HTML. Logika uprawnień (read_post, ochrona hasłem, wersje robocze) jest zachowana.
Wykrywanie wersji Markdown
Dział zatytułowany „Wykrywanie wersji Markdown”Na stronie HTML pojedynczego wpisu dodajemy w <head>:
<link rel="alternate" type="text/markdown" href="https://sklep.pl/produkt/koszulka/?output_format=md" />Crawlery i agenci AI mogą znaleźć wersję Markdown bez konieczności znajomości konwencji URL.
Skrót w panelu admina
Dział zatytułowany „Skrót w panelu admina”Na liście wpisów, stron i produktów obok akcji “Wyświetl” pojawia się link “View AI Version”. Otwiera tę samą wersję Markdown, którą zobaczy agent AI - wygodne do testów i podglądu.
Co zawiera wersja Markdown produktu
Dział zatytułowany „Co zawiera wersja Markdown produktu”Dla produktu WooCommerce odpowiedź zawiera:
Nagłówek YAML (front matter)
---title: "Koszulka basic"permalink: "https://sklep.pl/produkt/koszulka/"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: ["Koszulki"]---Sekcja “Product details” z bullet listą:
- SKU i GTIN/EAN
- Cena brutto, cena regularna, cena promocyjna
- Klasa podatkowa VAT
- Najniższa cena z 30 dni (Omnibus)
- Czas dostawy
- Stan magazynu i dostępność
- Waga i wymiary
- Marka, producent
- Osoba odpowiedzialna (GPSR)
Pełny opis produktu przekonwertowany na Markdown.
Przykład pełnej odpowiedzi
Dział zatytułowany „Przykład pełnej odpowiedzi”---title: "Koszulka basic"permalink: "https://sklep.pl/produkt/koszulka/"sku: "TS-001"price: "49,99 zł"in_stock: "true"---
# Koszulka basic
Bawełniana koszulka klasycznego kroju.
## 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 dni- **Availability:** In stock- **Weight:** 0.2 kg
## Description
Pełny opis produktu z bloków Gutenberga, w tym listy, tabele i nagłówki.Manifest /llms.txt
Dział zatytułowany „Manifest /llms.txt”Zgodnie ze standardem llmstxt.org sklep udostępnia plik /llms.txt w korzeniu domeny. Agenci AI patrzą tam w pierwszej kolejności, by odkryć strukturę witryny bez znajomości konwencji URL.
curl https://sklep.pl/llms.txtOdpowiedź (Markdown):
# Twój sklep
> Sklep z polskimi pamiątkami online.
## Legal
- [Regulamin](https://sklep.pl/regulamin/?output_format=md): Terms and conditions- [Polityka prywatności](https://sklep.pl/polityka/?output_format=md): Privacy policy- [Zwroty](https://sklep.pl/zwroty/?output_format=md): Returns and withdrawal policy
## Shop
- [Sklep](https://sklep.pl/sklep/): Storefront
## Product categories
- [Koszulki](https://sklep.pl/kategoria/koszulki/)- [Bluzy](https://sklep.pl/kategoria/bluzy/)Co znajduje się w manifeście domyślnie:
- Tytuł i opis sklepu (
get_bloginfo('name'),get_bloginfo('description')) - Sekcja “Legal” z linkami
?output_format=mddo stron prawnych (Regulamin, Polityka prywatności, Zwroty, Reklamacje) - tylko jeśli strony są utworzone - Sekcja “Shop” z linkiem do strony sklepu WooCommerce
- Sekcja “Product categories” z 20 najpopularniejszymi kategoriami produktów (sortowane po liczbie produktów)
Wyłączenie
add_filter('polski/ai_feed/llms_txt_enabled', '__return_false');Modyfikacja sekcji
add_filter('polski/ai_feed/llms_txt_sections', static function (array $sections): array { $sections['Resources'] = [ ['Blog', home_url('/blog/'), 'Najnowsze wpisy'], ['FAQ', home_url('/faq/')], ]; return $sections;});Limit kategorii
add_filter('polski/ai_feed/llms_txt_category_limit', static fn () => 50);Filtry deweloperskie
Dział zatytułowany „Filtry deweloperskie”| Filtr | Cel |
|---|---|
polski/ai_feed/enabled | Globalny przełącznik (bool) |
polski/ai_feed/post_types | Lista typów treści (string[]) |
polski/ai_feed/post_markdown | Końcowy Markdown wpisu/strony |
polski/ai_feed/product_markdown | Końcowy Markdown produktu |
polski/ai_feed/product_facts | Lista par [etykieta, wartość] w sekcji “Product details” |
polski/ai_feed/password_required | Treść Markdown przy ochronie hasłem |
polski/ai_feed/llms_txt_enabled | Wyłącznik dla /llms.txt (bool) |
polski/ai_feed/llms_txt_sections | Mapa sekcji [heading => list] w manifeście |
polski/ai_feed/llms_txt_category_limit | Maksymalna liczba kategorii produktów (int) |
Przykład - dodanie własnego CPT
Dział zatytułowany „Przykład - dodanie własnego CPT”add_filter('polski/ai_feed/post_types', static function (array $types): array { $types[] = 'recipe'; return $types;});Przykład - dodanie własnego pola do produktu
Dział zatytułowany „Przykład - dodanie własnego pola do produktu”add_filter('polski/ai_feed/product_facts', static function (array $facts, WC_Product $product): array { $color = $product->get_attribute('pa_kolor'); if ($color !== '') { $facts[] = ['Kolor', $color]; } return $facts;}, 10, 2);Czy to zastępuje motyw dla zwykłych użytkowników?
Nie. HTML jest zwracany domyślnie. Markdown trafia tylko do klientów, którzy o niego poproszą przez Accept lub parametr URL.
Czy chronione hasłem treści są wyciekane?
Nie. Gdy strona wymaga hasła, AI Feed zwraca krótki Markdown z informacją o ochronie zamiast pełnej treści.
Czy obsługiwane są wersje robocze?
Tak, dla użytkowników z uprawnieniami do edycji. Akcja “View AI Version” w panelu admina używa preview URL dla wersji roboczych i zaplanowanych.
Czy mogę dodać własne typy treści?
Tak, przez filtr polski/ai_feed/post_types. Domyślnie obsługiwane są post, page i product.
Czy działa z HPOS i Block Checkout?
Tak. Moduł działa na poziomie warstwy widoku produktu, niezależnie od magazynu zamówień (HPOS) i checkoutu (Blocks).