Blog 24/7
ARK. S05Parametr monitoringuSEO · lista 87 parametrów

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.

ARK. 1

WIKI

artykuł z 16.09.2026 · źródeł 8

robots.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].

RYS. 1.1Pobranie robots.txt: trzy odpowiedzi

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].

RYS. 1.2Interpretacja robots.txt

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-delay i noindex w 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 na admin-ajax.php [4]. Treść można zmienić filtrem robots_txt, który dostaje wynik i informację, czy witryna jest publiczna [5]. Od wersji 5.3 funkcja nie dopisuje Disallow: /, gdy włączono zniechęcanie wyszukiwarek do indeksowania; zamiast tego służy znacznik meta robots [4]. Odpowiada za niego funkcja wp_robots_no_robots(), która dodaje noindex, a dla witryny niepublicznej także nofollow [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 robotaUwagi
User-agent: * + Disallow: /cały serwis zakazany [1]dotyczy robotów bez własnej grupy [1]
User-agent: AhrefsBot + Disallow: /, osobno User-agent: * bez zakazuzakaz tylko dla wskazanego robota [1]pozostałe roboty stosują grupę z gwiazdką [1]
Disallow: / i Allow: / w tej samej grupieadresy dozwolone [1]remis rozstrzyga reguła Allow [1] [2]
domyślny plik WordPressazakaz tylko ścieżki panelu [4]generowany, gdy nie ma fizycznego pliku [7]
odpowiedź 404brak ograniczeń [1]Google: jakby pliku nie było [2]
odpowiedź 503 lub błąd siecipeł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]
TAB. 1.1Przypisy8
  1. [1] RFC 9309 — Robots Exclusion Protocol · IETF
  2. [2] How Google interprets the robots.txt specification · Google Search Central
  3. [3] Introduction to robots.txt · Google Search Central
  4. [4] do_robots() — Function · WordPress Developer Resources
  5. [5] robots_txt — Hook · WordPress Developer Resources
  6. [6] wp_robots_no_robots() — Function · WordPress Developer Resources
  7. [7] The robots.txt file in Yoast SEO · Yoast
  8. [8] WSTG-INFO-03 — Review Webserver Metafiles for Information Leakage · OWASP
ARK. 2

STATS

wyniki z systemu · tylko liczby zbiorcze
TAB. 2.1Odczyty per strona—

Ten 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.

TAB. 2.3Ustalenia—

Ten parametr nie otworzył jeszcze żadnego ustalenia w bazie LAB247. Pusto nie znaczy „czysto” — znaczy, że nic nie przekroczyło reguły.

TAB. 2.4Przebiegi z tym sposobem sprawdzeniaod 09.09.2026
Przebiegów
33sposób robots
W 30 dni
0przebiegów
Ostatni
19.09.2026start przebiegu
Stron w przebiegach
—33 przebiegów bez liczby stron
ARK. 3

CARD

karta z kodu CREATO_PING, odczyt 22.09.2026

Jak ten parametr trafia do ClickUpa: wynik sondy to linia w subtasku 2. Pomiar, a usterka, którą otwiera — linia w subtasku 1. Podsumowanie (z identyfikatorem CWE i kategorią OWASP), skąd liczy się wskaźnik zagrożenia i status strony. Projekcja z bazy skanera odświeża oba subtaski co godzinę. Do 22.09 każde ustalenie dostawało własny subtask i status ze starego słownika (PODATNA, WARNING…) — te słowa zostały jeszcze w części opisów pomiaru niżej jako język wewnętrzny sond.

RYS. 3.1Droga parametru przez system: robots.txt
TAB. 3.1Pomiarpliki: 7
Obszar i ważnośćSEO · wysoka (S05)
Workflow i częstotliwośćcreato_ping_security_v2 · P3 działa na LAB247Skaner 2.0, rytm „p3” / „bezpieczenstwo”: premium co 6 h, reszta co 24 h (tier 1–3), co 9 dni (tier 4) · Dokładny skan. dns_integrity porównuje NS, MX, SPF i DMARC z wzorcem z poprzedniego przebiegu.
Sonda i helpersposób robots · CREATO_PING/helpers/robots_check.py
Testy
  1. Tylko przebieg P3; strony w przebiegu sprawdzane po kolei.
  2. GET https://domena/robots.txt z podążaniem za przekierowaniami; cała odpowiedź w pamięci.
  3. Kod 404 = robots_missing (powaga niska).
  4. Kod 200: wyrażenie szuka wiersza User-agent: * albo Googlebot, po nim dowolnych wierszy i wiersza Disallow: / = robots_block_all (powaga pilna).
  5. Każdy inny kod (403, 5xx), błąd sieci albo timeout = brak ustalenia.
Typ wyniku0 albo 1 ustalenie: robots_block_all albo robots_missing
Jednostkabrak — wynik jakościowy; w dowodzie adres pliku
Próg i regułaTimeout 5,0 s, połączenie 2,0 s (stałe w helperze).
Gdzie leżą pokrętłaCREATO_PING/helpers/robots_check.py → _UA_BLOCK_RE, _TIMEOUTCREATO_PING/helpers/security_runner.py → do_writera (bramka gate z polityki; sito powagi zniknęło 18.09)CREATO_PING/config/incident_policy.toml → [finding] robots_block_all, robots_missing
Retencja odczytówSurowy pomiar jako NIEZMIENNY wiersz tabeli `odczyty` w bazie skanera (wejście, wyjście, dowody, sha karty sondy i helpera, commit kodu) — trigger odrzuca każdą zmianę. Okno retencji z kohorty: 90 dni premium, 30 dni reszta; poza oknem zostają odczyty z werdyktem problemu, akcją albo etykietą, bo replay reguł ich potrzebuje (`skaner/retencja.py`). Do LAB247 ten kanał nie idzie (do bazy serwisu jadą dziś tylko sprawdzenia dostępności), więc poza odczytem zostaje werdykt w tabeli `werdykty` i sprawa w tabeli `sprawy`.
Znane rozbieżności
  1. Wyrażenie przechodzi przez granice grup: grupa User-agent: * z częściowymi zakazami i dalej osobna grupa dla wybranego robota z Disallow: / daje robots_block_all i sprawę. Prawdopodobne źródło fałszywych alarmów.
  2. Pełna blokada dla * z osobną grupą Googlebot z Allow: / też daje ustalenie, choć wg RFC 9309 Googlebot stosuje wtedy tylko własną grupę; Disallow: / i Allow: / w jednej grupie też, choć przy remisie wygrywa Allow.
  3. Disallow: / z komentarzem w tym samym wierszu nie jest wykrywane.
  4. Kody 5xx i błąd sieci dają brak ustalenia, a wg RFC 9309 i Google niedostępny robots.txt oznacza tymczasowo pełny zakaz; 403 nie jest ani brakiem, ani blokadą.
  5. Odpowiedź czytana w całości bez limitu rozmiaru — jedyna sonda P3 bez ochrony pamięci.
  6. Severity niespójna: helper pilna, polityka wysoka; wpis robots_missing w polityce jest martwy.
kandydaci do pętli: kod a opis parametru albo specyfikacja
Karta przepisana zCREATO_PING/helpers/robots_check.py · CREATO_PING/helpers/security_runner.py · CREATO_PING/config/incident_policy.toml · CREATO_PING/skaner/adapter_clickup.py · CREATO_PING/skaner/sprawy.py · CREATO_PING/skaner/usterki.toml · CREATO_PING/skaner/ocena.py · odczyt 22.09.2026
TAB. 3.2Co oznacza failtypów Findingów: 2

robots_block_all: bramka polityki otwarta (gate=true) → sprawa w skanerze → robots.txt blokuje całą stronę — waga 2 → ocena 3–4 (niebieski), status strony „niski”, dopóki sprawa jest otwarta. robots_missing: bramka polityki zamknięta (gate=false) — zostaje odczyt i werdykt „bez_subtaska” w bazie skanera, sprawa nie powstaje, więc usterka „Brak pliku robots.txt” (waga 1) nie wchodzi do wskaźnika strony. Helper nie wysyła sygnału zamknięcia.

KodFindingSeverityPewnośćSkutekFinding / alarmWaga → ocenaCo zrobić
S05.01robots.txt blokuje całośćrobots_block_allWysokaEwidentneusterka niekrytycznatak / takwaga 2 → ocena 3–4 (niebieski)Popraw robots.txt.
S05.02Brak robots.txtrobots_missingNiskaEwidentnebez wpływunie / niewaga 1 → ocena 2 (zielony)Dodaj podstawowy robots.txt.
TAB. 3.3S05.01 · robots.txt blokuje całośćwersja 1 · 01.10.2026
Kod i kluczS05.01 · robots_block_all · w tabeli typów
Co znaczyDisallow: / blokuje indeksowanie całego serwisu.
Kiedy powstajeGET /robots.txt zwraca 200, a według robots_blocks_all grupa Googlebota (lub *) ma Disallow: / i nie ma Allow: /.
Severity · pewnośćWysoka · Ewidentne
Skutek dla stronyusterka niekrytyczna · zakłada Finding · alarm tak
Waga → ocenawaga 2 → ocena 3–4 (niebieski)
KlasyfikacjaOCSF 1.9.0: poza klasami Findingu
Rekord OCSFfinding_info.analytic.uid = "S05.01" · analytic.name = "robots_block_all" · finding_info.types = ["S05 robots.txt"]
Co zrobićPopraw robots.txt.
Wersje typu
  1. v1 · 01.10.2026 — kod S05.01 nadany (finding-codes.ts)
TAB. 3.4S05.02 · Brak robots.txtwersja 1 · 01.10.2026
Kod i kluczS05.02 · robots_missing · w tabeli typów
Co znaczyBrak pliku robots.txt — drobne.
Kiedy powstajeGET /robots.txt (z przekierowaniami) zwraca dokładnie 404. Inne kody i błędy sieci nie dają findingu.
Severity · pewnośćNiska · Ewidentne
Skutek dla stronybez wpływu · tylko statystyka (gate=false) · alarm nie
Waga → ocenawaga 1 → ocena 2 (zielony)
KlasyfikacjaOCSF 1.9.0: poza klasami Findingu
Rekord OCSFfinding_info.analytic.uid = "S05.02" · analytic.name = "robots_missing" · finding_info.types = ["S05 robots.txt"]
Co zrobićDodaj podstawowy robots.txt.
Wersje typu
  1. v1 · 01.10.2026 — kod S05.02 nadany (finding-codes.ts)
ARK. 4

LOOP

bez pętli
RYS. 4.1Pętla parametru — sześć etapów
TAB. 4.1Trafność, 30 dnialarmy · prawdziwe · fałszywe · bez rozstrzygnięcia

Trafnoś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.

TAB. 4.2Pętle—

Ten parametr nie przeszedł jeszcze żadnej pętli. Kolejność po pierwszych pięciu grupach ustali miara trafności.

Blog 24/7
05.11CISA i FBI wzywają do zabezpieczenia sterowników chłodzenia po atakach w Europietherecord.media05.11Midnight Blizzard atakowała iPhone'y i Androidy przez zainfekowane strony w Europie i USAsecurityweek.com05.11APT29 kradła dane z iPhone'ów i Androidów przez przejęte i podrobione stronytherecord.media05.11Grupa APT29 przejęła skrypt Plerdy i atakowała niezałatane iPhone'y i Androidythehackernews.com05.11Microsoft wykrył 7,3 mld wiadomości phishingowych w III kwartale 2026microsoft.com05.11DigiCert ujawnia wyciek danych klientów i skanów dokumentów tożsamościbleepingcomputer.com05.11CWPdoor podmienia serwer cwpsrv w Control Web Panel i otwiera tylne wejście do Linuksableepingcomputer.com05.11Brytyjskie NCSC ostrzega, że narzędzia AI zwiększyły liczbę wykrywanych luk zero-daythehackernews.com05.11Skaner RootEvidence sprawdza starą lukę w Cisco IOS i dodaje nagłówki Opt-Outisc.sans.edu05.11Włamanie do portalu grantowego Norad, zagrożone dane 20 614 użytkownikówhelpnetsecurity.com