Jak sprawdzić agent-readiness swojej strony — 5 komend curl które powiedzą Ci więcej niż jakikolwiek plugin

przez Łukasz | kwi 22, 2026

Przeglądarka kłamie.

Nie złośliwie — po prostu robi swoją robotę. Renderuje JavaScript, ukrywa nagłówki HTTP, przetwarza przekierowania w tle, cache’uje odpowiedzi. Pokazuje Ci stronę tak jak ją widzi człowiek.

Agent widzi coś zupełnie innego.

Gdy chcesz sprawdzić czy Twoja strona jest naprawdę gotowa na agentów — przeglądarka jest złym narzędziem. Potrzebujesz czegoś co zachowuje się jak agent: pobiera surowe odpowiedzi HTTP, pokazuje nagłówki, nie renderuje JavaScriptu, nie cache’uje.

To narzędzie nazywa się curl. Jest dostępne na każdym systemie, nie wymaga instalacji na Macu i Linuxie, i w pięć minut powie Ci więcej o agent-readiness Twojej strony niż godzina klikania w przeglądarce.

Zanim zaczniesz — jak czytać wyniki curl

Dwie flagi których będziesz używać najczęściej:

-s — silent, wycisza pasek postępu. Bez tego curl wyświetla informacje o transferze które zaśmiecają wyniki.

-I — pobiera tylko nagłówki HTTP, bez treści strony. Szybko i czytelnie.

Kombinacja -sI to podstawa diagnostyki:

bash
curl -sI https://twoja-strona.pl/

Wynik to lista nagłówków — każda linia to jeden nagłówek. Szukasz konkretnych wartości.

Komenda 1: czy service-doc header jest wysyłany

bash
curl -sI https://twoja-strona.pl/ | grep -i link

Oczekiwany wynik:

link: </dla-agentow>; rel="service-doc"

Jeśli nic nie zwraca: nagłówek nie jest wysyłany. Sprawdź czy Cloudflare Transform Rule jest aktywna i czy dotyczy właściwej domeny.

Jeśli zwraca z trailing slash: </dla-agentow/> zamiast </dla-agentow> — technicznie działa, ale możesz poprawić w ustawieniach Transform Rule.

Dlaczego nie wp_headers filter: jeśli widzisz x-litespeed-cache: hit w nagłówkach — LiteSpeed serwuje z cache i PHP nie jest uruchamiane. Filter WordPress nigdy nie odpala. Cloudflare Transform Rule to właściwe rozwiązanie.

Komenda 2: czy Markdown for Agents działa poprawnie

To są dwie komendy — obie musisz wykonać i oba wyniki muszą być właściwe.

bash
# Agent pyta o Markdown — powinien dostać Markdown
curl -sI https://twoja-strona.pl/artykul/ -H "Accept: text/markdown" | grep content-type

Oczekiwany wynik:

content-type: text/markdown; charset=utf-8
bash
# Przeglądarka nie pyta o Markdown — powinna dostać HTML
curl -sI https://twoja-strona.pl/ | grep content-type

Oczekiwany wynik:

content-type: text/html; charset=UTF-8

Jeśli oba zwracają text/markdown: LiteSpeed zacachował wersję Markdown i serwuje ją wszystkim. To jest krytyczny błąd — Twoja strona wygląda jak surowy tekst dla wszystkich użytkowników. Natychmiast wyczyść cache LiteSpeed i upewnij się że w kodzie jest nagłówek X-LiteSpeed-Cache-Control: no-cache, no-store dla odpowiedzi Markdown.

Jeśli pierwszy zwraca text/html zamiast text/markdown: implementacja Markdown for Agents nie działa. Sprawdź czy kod jest w aktywnym motywie lub mu-pluginie i czy hook template_redirect odpala się z priorytetem 1.

Możesz też sprawdzić jak wygląda sama treść Markdown:

bash
curl -s https://twoja-strona.pl/artykul/ -H "Accept: text/markdown" | head -20

Powinieneś zobaczyć YAML frontmatter z tytułem i URL, a po nim treść artykułu bez tagów HTML.

Komenda 3: czy robots.txt jest poprawny

bash
curl -s https://twoja-strona.pl/robots.txt

Sprawdzasz cztery rzeczy:

Content-Signal jest obecny:

Content-Signal: ai-train=yes, search=yes, ai-input=yes

Content-Signal jest wewnątrz bloku User-agent — nie przed nim. Jeśli jest przed pierwszym User-agent: — część parserów może zignorować cały plik.

Allow dla endpointu jest przed Disallow:

Allow: /wp-json/twoja-przestrzen/v1/slownik
Disallow: /wp-json/

Kolejność ma znaczenie — pierwsza pasująca reguła wygrywa.

Sitemap jest wskazana:

Sitemap: https://twoja-strona.pl/sitemap_index.xml

Komenda 4: czy JSON endpoint jest dostępny dla agentów

bash
curl -sI https://twoja-strona.pl/wp-json/twoja-przestrzen/v1/slownik | grep -E "content-type|x-robots"

Oczekiwany wynik:

content-type: application/json; charset=UTF-8
x-robots-tag: index, follow

Jeśli x-robots-tag: noindex: WordPress domyślnie dodaje noindex do wszystkich REST API responses. Musisz to nadpisać dla swojego endpointu — inaczej część agentów i crawlerów odmówi przetworzenia odpowiedzi mimo że technicznie jest dostępna.

Jeśli HTTP 404: endpoint nie istnieje lub nie jest zarejestrowany. Sprawdź czy kod rejestracji endpointu jest aktywny i odśwież permalinki (WP Admin → Ustawienia → Bezpośrednie odnośniki → Zapisz).

Jeśli HTTP 403: endpoint istnieje ale wymaga autentykacji. Sprawdź permission_callback w rejestracji — dla publicznego endpointu powinno być '__return_true'.

Możesz też sprawdzić czy dane są poprawne:

bash
curl -s https://twoja-strona.pl/wp-json/twoja-przestrzen/v1/slownik | python3 -m json.tool | head -30

Powinieneś zobaczyć sformatowany JSON z pierwszymi pojęciami.

Komenda 5: pełny test w jednej chwili

Zamiast wykonywać komendy jedna po drugiej — możesz uruchomić wszystko naraz:

bash
SITE="https://twoja-strona.pl"

echo ""
echo "━━━ 1. service-doc header ━━━"
curl -sI $SITE/ | grep -i link

echo ""
echo "━━━ 2a. Markdown — agent ━━━"
curl -sI $SITE/ -H "Accept: text/markdown" | grep content-type

echo ""
echo "━━━ 2b. HTML — przeglądarka ━━━"
curl -sI $SITE/ | grep content-type

echo ""
echo "━━━ 3. robots.txt ━━━"
curl -s $SITE/robots.txt | grep -E "Content-Signal|Allow|Disallow" | head -6

echo ""
echo "━━━ 4. JSON endpoint ━━━"
curl -sI $SITE/wp-json/twoja-przestrzen/v1/slownik | grep -E "content-type|x-robots"

Zamień twoja-strona.pl i twoja-przestrzen na właściwe wartości, wklej do terminala i masz pełny raport agent-readiness w kilka sekund.

Co robi Cloudflare checker inaczej

Narzędzie Cloudflare na isitagentready.com robi w zasadzie to samo co komendy powyżej — tylko z ładnym interfejsem i konkretnym scoringiem.

Różnica jest jedna: checker testuje z adresów IP Cloudflare. Jeśli masz reguły bezpieczeństwa które blokują datacenter IP — checker może nie dostać odpowiedzi mimo że strona działa dla normalnych użytkowników.

Jeśli Twoje curl testy pokazują wszystko zielone a checker nadal zgłasza problemy — sprawdź reguły WAF w Cloudflare czy nie blokujesz ich własnych botów.

Tabela szybkiej diagnozy

Co testujesz Komenda Oczekiwany wynik
service-doc curl -sI SITE/ | grep -i link link: </dla-agentow>; rel="service-doc"
Markdown agent curl -sI SITE/artykul/ -H "Accept: text/markdown" | grep content-type text/markdown
HTML przeglądarka curl -sI SITE/ | grep content-type text/html
Content Signals curl -s SITE/robots.txt | grep Content-Signal ai-train=yes, search=yes, ai-input=yes
JSON endpoint curl -sI SITE/wp-json/... | grep x-robots index, follow

Nie chcesz robić tego ręcznie?

Plugin Agent-Ready WP dostępny wkrótce na iFox.pl ma wbudowany panel diagnostyczny który robi dokładnie to co komendy powyżej — tyle że z poziomu WP Admin, bez terminala, z kolorowym wskaźnikiem co działa a co wymaga uwagi.

Dla osób które wolą nie grzebać w curl i functions.php — to jest najszybsza droga do agent-readiness na WordPress.

Podsumowanie serii

Przez sześć artykułów przeszliśmy przez kompletne wdrożenie agent-readiness na WordPress:

Artykuł 1 — czym jest agent-readiness i dlaczego większość stron WordPress startuje z 0/100

Artykuł 2rel="service-doc", strona /dla-agentow i pułapka LiteSpeed cache

Artykuł 3 — Markdown for Agents bez Cloudflare Pro i krytyczna pułapka z Vary: Accept

Artykuł 4 — Content Signals w robots.txt i dlaczego kolejność dyrektyw ma znaczenie

Artykuł 5 — JSON API z WordPress CPT i dwa domyślne błędy REST API

Artykuł 6 — diagnostyka przez curl, pełny raport w jednej chwili

Wynik końcowy: Discoverability 100, Content 100, Bot Access Control 100 — bez Cloudflare Pro, bez VPS, na współdzielonym hostingu.

Wszystkie wdrożenia opisane w serii działają dziś na webflux.pl. Kod, pułapki i rozwiązania — z pierwszej ręki, nie z dokumentacji.


Ten artykuł jest częścią serii „WordPress Agent-Readiness”. Wszystkie wdrożenia zostały przetestowane na webflux.pl — włącznie z błędami i ich naprawą.

Agent kończy, ale zadania nie wykonał

Agent kończy, ale zadania nie wykonał

Objawy Agent odpowiada: „Przygotowałem i wysłałem potwierdzenie do klienta." Potwierdzenie nie zostało wysłane. Albo: „Zaktualizowałem wszystkie rekordy" — zaktualizował trzy z dwunastu. Albo: „Nie znalazłem żadnych zamówień" — bo narzędzie zwróciło błąd, którego nikt...

Agent zrobił coś, o co nikt nie prosił

Agent zrobił coś, o co nikt nie prosił

Objawy Operacja, której nikt nie zlecił. Dane wysłane pod adres, którego nie ma w żadnej konfiguracji. Rekord zmieniony poza zakresem zadania. Odpowiedź, z której wynika, że agent dostał instrukcje od kogoś innego niż ty. Cecha wspólna: technicznie wszystko zadziałało...

Agent zrobił to samo dwa razy

Agent zrobił to samo dwa razy

Objawy Ten syndrom różni się od pozostałych jedną rzeczą: objaw widzi klient, nie ty. Trzy identyczne wiadomości w skrzynce. Dwa zamówienia zamiast jednego. Podwójne obciążenie. Duplikaty rekordów, które ktoś zauważa tydzień później. W twoim dzienniku wszystko wygląda...

Agent gubi wątek w długim zadaniu

Agent gubi wątek w długim zadaniu

Objawy Pierwsze kroki idą wzorowo. Po kilkunastu agent zaczyna się rozjeżdżać. Przestaje przestrzegać reguły z promptu systemowego, której trzymał się na początku. Zmienia format odpowiedzi w połowie zadania. Wraca do czegoś, co już ustalił, i ustala to inaczej....

Agent podaje dane, których nie ma

Agent podaje dane, których nie ma

Objawy Numer zamówienia w idealnym formacie, którego nie ma w bazie. Kwota, której w dokumencie nie ma. Nazwa pola API, które nigdy nie istniało. Cytat z regulaminu, brzmiący dokładnie jak reszta regulaminu i w nim nieobecny. Cecha wspólna wszystkich tych przypadków:...

Działał wczoraj, dziś nie działa

Działał wczoraj, dziś nie działa

Objawy Nic się nie wywala. Nie ma wyjątków, nie ma timeoutów, dziennik wygląda tak samo jak zawsze. Po prostu odpowiedzi są gorsze. Postacie, w jakich to się objawia: Jakość. Agent zaczyna pomijać kroki, które wcześniej wykonywał, albo odpowiada ogólniej. Format....

Agent wybiera złe narzędzie

Agent wybiera złe narzędzie

Objawy Agent odpowiada nie na to pytanie. Pobiera listę zamówień, gdy pytano o jedno konkretne. Odpowiada z pamięci, choć miał sprawdzić w bazie. Albo sięga po właściwe narzędzie i wpisuje w argumenty coś, czego nie da się użyć. Sygnał, który odróżnia ten syndrom od...

Agent kręci się w kółko

Agent kręci się w kółko

Objawy Agent wykonuje kolejne obroty pętli, nie zbliżając się do zakończenia zadania. W dzienniku widać jedną z trzech postaci. Powtórzenie. To samo narzędzie, te same argumenty, raz za razem — czasem dziesiątki razy pod rząd. Oscylacja. Agent wywołuje na przemian dwa...