robots.txt
ważność wysokamierzonysposób robots
Czy /robots.txt jest dostępny i nie blokuje całego serwisu. Zablokowanie całości to częsty błąd po migracji.
WIKI
artykuł z 16.09.2026 · źródeł 8robots.txt to parametr monitoringu stron internetowych, który sprawdza dwie rzeczy: czy plik /robots.txt jest dostępny i czy zapisane w nim reguły nie zamykają robotom wyszukiwarek dostępu do całego serwisu. Plik realizuje protokół Robots Exclusion Protocol, którym właściciel usługi określa, czy i w jaki sposób automatyczni klienci, czyli roboty indeksujące (ang. crawlers), mogą sięgać po jej treść. Reguły muszą leżeć w pliku o nazwie /robots.txt, zapisanej małymi literami, w ścieżce najwyższego poziomu usługi [1].
Jak działa
Plik składa się z grup. Grupa to jeden lub więcej wierszy User-agent, po których następuje jedna lub więcej reguł; grupę kończy kolejny wiersz User-agent albo koniec pliku [1]. Robot szuka grupy pasującej do własnej nazwy bez rozróżniania wielkości liter i stosuje jej reguły. Jeśli pasuje kilka grup, ich reguły łączy się w jedną. Grupa User-agent: * obowiązuje tylko wtedy, gdy żadna grupa nie pasuje do nazwy robota, a gdy nie ma ani pasującej grupy, ani grupy z gwiazdką, żadne reguły nie obowiązują [1].
Reguły Allow i Disallow porównuje się ze ścieżką adresu od jej pierwszego znaku. Rozstrzyga najbardziej szczegółowe dopasowanie, czyli najdłuższe w oktetach; przy równoważnych regułach Allow i Disallow pierwszeństwo powinna mieć Allow [1]. Adres, do którego nie pasuje żadna reguła, jest dozwolony, a sam plik /robots.txt jest dozwolony zawsze [1]. Google stosuje tę samą zasadę długości ścieżki, a przy sprzecznych regułach, także z symbolami wieloznacznymi, wybiera regułę najmniej restrykcyjną [2].
Wynik pobrania decyduje o tym, co robot zrobi dalej. Po udanym pobraniu musi stosować reguły, które da się sparsować. Przekierowania powinien śledzić co najmniej przez pięć kolejnych kroków [1]. Odpowiedź z zakresu 400–499 oznacza plik niedostępny i robot może wtedy pobierać dowolne zasoby serwera. Błąd serwera z zakresu 500–599 albo błąd sieci oznacza plik nieosiągalny i robot musi przyjąć pełny zakaz [1]. Wersji z pamięci podręcznej nie powinien używać dłużej niż 24 godziny, chyba że plik jest nieosiągalny [1].
Standardy i specyfikacje
- RFC 9309 formalizuje protokół opisany pierwotnie przez Martijna Kostera w 1994 roku: grupy, pierwszeństwo reguł, obsługę kodów odpowiedzi i pamięć podręczną [1]. Robot musi sparsować co najmniej 500 KiB pliku [1].
- Interpretacja Google doprecyzowuje zachowanie jednego wyszukiwarkowego robota. Wszystkie błędy 4xx poza 429 Google traktuje tak, jakby pliku nie było, czyli bez ograniczeń. Po pięciu przekierowaniach uznaje plik za 404. Błędy DNS i sieci traktuje jak błąd serwera [2]. Treść powyżej 500 KiB jest ignorowana, a plik zwykle trzymany w pamięci podręcznej do 24 godzin [2]. Reguły dotyczą wyłącznie hosta, protokołu i portu, pod którymi plik jest opublikowany. Dyrektyw
crawl-delayinoindexw tym pliku Google nie obsługuje [2]. - WordPress generuje domyślną treść funkcją
do_robots(): grupęUser-agent: *z zakazem ścieżki panelu administracyjnego i zezwoleniem naadmin-ajax.php[4]. Treść można zmienić filtremrobots_txt, który dostaje wynik i informację, czy witryna jest publiczna [5]. Od wersji 5.3 funkcja nie dopisujeDisallow: /, gdy włączono zniechęcanie wyszukiwarek do indeksowania; zamiast tego służy znacznik meta robots [4]. Odpowiada za niego funkcjawp_robots_no_robots(), która dodajenoindex, a dla witryny niepublicznej takżenofollow[6]. Plik jest wirtualny: WordPress generuje go tylko wtedy, gdy w katalogu głównym nie ma fizycznego pliku [7].
Zagrożenia i skutki
Zakaz całego serwisu. Reguła Disallow: / w grupie User-agent: * pasuje do każdej ścieżki, więc dla robotów bez własnej grupy zamyka cały serwis [1]. Fizyczny plik ma pierwszeństwo przed wersją generowaną przez WordPress [7], więc plik z zakazem, przeniesiony razem z innymi plikami witryny, działa dalej niezależnie od ustawień widoczności w panelu.
Błąd serwera zamiast pliku. Odpowiedź 5xx dla /robots.txt jest dla robota pełnym zakazem, nawet gdy reszta strony działa [1]. Google przez pierwsze 12 godzin wstrzymuje indeksowanie witryny i ponawia pobranie pliku, przez kolejne 30 dni korzysta z ostatniej dobrej wersji, a gdy jej nie ma, przyjmuje brak ograniczeń [2]. Po 30 dniach, jeśli witryna jest ogólnie dostępna, zachowuje się tak, jakby pliku nie było [2].
Brak pliku. Odpowiedź 404 nie blokuje indeksowania: robot może pobierać wszystkie zasoby [1] [2]. Skutkiem jest brak kontroli nad ruchem robotów, a nie wypadnięcie z wyszukiwarki.
Mylenie blokady z ukryciem. Plik służy głównie do zarządzania ruchem robotów i nie jest mechanizmem usuwania strony z Google. Strona zablokowana w robots.txt może trafić do indeksu, jeśli prowadzą do niej linki z innych witryn; wtedy adres pojawia się w wynikach bez opisu [3]. Do wykluczenia strony z wyników Google wskazuje noindex albo ochronę hasłem [3].
Plik nie jest zabezpieczeniem. Protokół nie zastępuje zabezpieczeń treści, a ścieżki wpisane do pliku stają się publiczne i łatwe do odkrycia [1]. Reguły nie są formą autoryzacji dostępu [1]. Roboty mogą celowo ignorować dyrektywy Disallow, więc pliku nie należy traktować jako mechanizmu ograniczającego dostęp do treści i jej dalsze wykorzystanie [8]. Nie wszystkie wyszukiwarki stosują się do reguł, a różne roboty mogą różnie interpretować składnię [3].
Przykłady
| Plik albo odpowiedź | Skutek dla robota | Uwagi |
|---|---|---|
User-agent: * + Disallow: / | cały serwis zakazany [1] | dotyczy robotów bez własnej grupy [1] |
User-agent: AhrefsBot + Disallow: /, osobno User-agent: * bez zakazu | zakaz tylko dla wskazanego robota [1] | pozostałe roboty stosują grupę z gwiazdką [1] |
Disallow: / i Allow: / w tej samej grupie | adresy dozwolone [1] | remis rozstrzyga reguła Allow [1] [2] |
| domyślny plik WordPressa | zakaz tylko ścieżki panelu [4] | generowany, gdy nie ma fizycznego pliku [7] |
| odpowiedź 404 | brak ograniczeń [1] | Google: jakby pliku nie było [2] |
| odpowiedź 503 lub błąd sieci | pełny zakaz [1] | Google: 12 h wstrzymania, potem ostatnia dobra wersja [2] |
Disallow: /panel-tajny/ | zakaz dla posłusznych robotów | ścieżka staje się publicznie znana [1] [8] |
- [1] RFC 9309 — Robots Exclusion Protocol · IETF
- [2] How Google interprets the robots.txt specification · Google Search Central
- [3] Introduction to robots.txt · Google Search Central
- [4] do_robots() — Function · WordPress Developer Resources
- [5] robots_txt — Hook · WordPress Developer Resources
- [6] wp_robots_no_robots() — Function · WordPress Developer Resources
- [7] The robots.txt file in Yoast SEO · Yoast
- [8] WSTG-INFO-03 — Review Webserver Metafiles for Information Leakage · OWASP
STATS
wyniki z systemu · tylko liczby zbiorczeTen parametr nie zapisuje odczytu per strona — przebieg zostawia tylko ustalenia, więc liczby sprawdzonych stron i wyników „ok” system nie ma. Pojawią się po wdrożeniu zapisu przebiegów per strona per parametr.
Ten parametr nie otworzył jeszcze żadnego ustalenia w bazie LAB247. Pusto nie znaczy „czysto” — znaczy, że nic nie przekroczyło reguły.
- Przebiegów
- 33sposób robots
- W 30 dni
- 33przebiegów
- Ostatni
- 19.09.2026start przebiegu
- Stron w przebiegach
- —33 przebiegów bez liczby stron
CARD
karta z kodu CREATO_PING, odczyt 16.09.2026| Obszar i ważność | SEO · wysoka (S05) |
|---|---|
| Workflow i częstotliwość | creato_ping_security_v2 · P3 działa na LAB247cron co 24 h, T1–T3; T4 raz po anomalii · Dokładny skan. dns_integrity porównuje NS, MX, SPF i DMARC z wzorcem z poprzedniego przebiegu. |
| Sonda i helper | sposób robots · CREATO_PING/helpers/robots_check.py |
| Testy |
|
| Typ wyniku | 0 albo 1 ustalenie: robots_block_all albo robots_missing |
| Jednostka | brak — wynik jakościowy; w dowodzie adres pliku |
| Próg i reguła | Timeout 5,0 s, połączenie 2,0 s (stałe w helperze). |
| Gdzie leżą pokrętła | CREATO_PING/helpers/robots_check.py → _UA_BLOCK_RE, _TIMEOUTCREATO_PING/helpers/security_runner.py → _TASK_SEVERITIES (dalej idą tylko urgent i high)CREATO_PING/config/incident_policy.toml → [finding] robots_block_all, robots_missing |
| Retencja odczytów | Odczytu per strona nie zapisujemy — zostaje tylko ustalenie w tabeli findings (otwarcie, zamknięcie, dowód). Replay po surowych odczytach dziś niemożliwy. |
| Znane rozbieżności |
|
| Karta przepisana z | CREATO_PING/helpers/robots_check.py · CREATO_PING/helpers/security_runner.py · CREATO_PING/config/incident_policy.toml · CREATO_PING/helpers/clickup_writer_v2.py · odczyt 16.09.2026 |
robots_block_all: helper zgłasza powagę pilną, więc ustalenie przechodzi filtr; polityka nadpisuje ją na wysoką, skutek WARNING — subtask z priorytetem wysokim bez terminu. robots_missing: powaga niska odpada w filtrze, wpis w polityce nie jest osiągany. Helper nie wysyła sygnału zamknięcia.
| Ustalenie | Powaga | Pewność | Skutek | Subtask / alarm | Co zrobić |
|---|---|---|---|---|---|
| robots.txt blokuje całośćrobots_block_all | Wysokie | Ewidentne | WARNING | tak / tak | Popraw robots.txt. |
| Brak robots.txtrobots_missing | Niskie | Ewidentne | bez wpływu | nie / nie | Dodaj podstawowy robots.txt. |
LOOP
bez pętliTrafności jeszcze nie liczymy: zamknięcie subtaska nie niesie dziś werdyktu (prawdziwy / fałszywy / nie dało się sprawdzić). Cztery liczby pojawią się, gdy każde zamknięcie dostanie werdykt — to warunek startu pętli 1.
Ten parametr nie przeszedł jeszcze żadnej pętli. Kolejność po pierwszych pięciu grupach ustali miara trafności.