Parser robots.txt

Wklej robots.txt i odczytaj go tak, jak robi to robot indeksujący, zgodnie z RFC 9309 (Robots Exclusion Protocol, ustandaryzowany w 2022): grupy user-agent, reguły Allow/Disallow, mapy witryny i nieznane dyrektywy, wszystko przedstawione w czytelnej formie — plus audyt klasycznych błędów (puste linie disallow, nieznane dyrektywy, zbyt duże pliki). Dopasowywacz odpowiada wtedy na właściwe pytanie: wpisz user agent i ścieżkę, a wynikiem będzie werdykt zezwolenia/zakazu z dokładną regułą, która o nim zdecydowała — najdłuższe dopasowanie, symbol wieloznaczny *, kotwica końca $ i łączenie grup, dokładnie tak, jak określa standard. Wszystko działa w przeglądarce.
Nic jeszcze nie przeanalizowano. Wklej robots.txt powyżej i naciśnij Analizuj plik, albo wczytaj przykład.
Dopasowywacz działa na tekście znajdującym się aktualnie w polu powyżej (nie trzeba najpierw naciskać Analizuj). User agent jest dopasowywany tak, jak definiuje RFC 9309: wartość User-agent w pliku musi być podciągiem wpisanym tutaj bez rozróżniania wielkości liter — więc wpisanie ExampleBot/1.0 dopasowuje grupę zadeklarowaną jako ExampleBot. Jako ścieżkę przyjmowany jest też pełny adres URL.
User agent (działa prawdziwy ciąg UA) Ścieżka lub pełny adres URL
Brak jeszcze werdyktu. Naciśnij Sprawdź uprawnienie.
Jak pobrać plik:otwarciehttps://your-domain.example/robots.txtw przeglądarce: zaznacz wszystko, skopiuj i wklej tutaj — albocurl -s https://your-domain.example/robots.txtw terminalu. Ta strona niczego sama nie pobiera: odczytuje tylko to, co zostało wklejone. Aby sprawdzić nagłówki odpowiedzi, które przeniosły plik, przepuść je przezparser nagłówków HTTP.
Autotest
Ponownie uruchamia parser i dopasowywacz na wektorach referencyjnych RFC 9309: priorytet najdłuższego dopasowania (w tym remis, w którym allow bije disallow, oraz przypadek głębokiej ścieżki), łączenie grup,*przejścia do grupy zastępczej, rozróżnianie wielkości liter w ścieżkach i user agentach, symbole wieloznaczne,$kotwica, domyślne zezwolenie dla/robots.txt, normalizację kodowania procentowego, wyodrębnianie map witryny i ścieżki negatywne. Nic nie jest nigdzie wysyłane.
Czym jest robots.txt?
W jednym zdaniu: robots.txt to zwykły plik tekstowy w katalogu głównym strony, który informuje grzeczne roboty indeksujące, jakich ścieżek mogą pobierać — to dobrowolna konwencja, ustandaryzowana jako RFC 9309 w 2022 roku, którą honorują wszystkie główne roboty.
Budowa pliku

Plik to ciąg rekordów. Grupa zaczyna się od jednej lub większej liczby linii User-agent, po których następują reguły Allow i Disallow dotyczące tych robotów. Nowa linia User-agent po regułach zaczyna nową grupę; kilka linii User-agent z rzędu współdzieli jedną grupę (robot o dwóch nazwach tego potrzebuje). Rekordy samodzielne, jak Sitemap, mogą pojawić się wszędzie. # zaczyna komentarz w dowolnym miejscu linii. Nazwy pól nie rozróżniają wielkości liter; ścieżki już tak.

LiniowyZnaczy
User-agent: foobotPoniższe reguły dotyczą robotów, których nazwa zawiera foobot (bez rozróżniania wielkości liter)
User-agent: *Poniższe reguły dotyczą każdego robota bez bardziej szczegółowej grupy
Disallow: /private/Nie pobieraj ścieżek zaczynających się od /private/
Allow: /private/public/Wyjątek, który pokonuje powyższy zakaz dla tych ścieżek (najdłuższe dopasowanie)
Disallow: (pusty)Nic nie jest zakazane — klasyczna konstrukcja „zezwól na wszystko”
Sitemap: https://…/sitemap.xmlGdzie znajduje się mapa witryny; roboty mogą zebrać kilka
Crawl-delay: 30Nie ma w RFC 9309 — dawne rozszerzenie; główne roboty je ignorują lub interpretują po swojemu
Jak powstaje werdykt (RFC 9309 §2.2.2)

1. Znajdź grupę, której wartość User-agent jest podciągiem nazwy robota; połącz wszystkie pasujące grupy. Jeśli żadnej nie ma, użyj grupy *; jeśli i tej nie ma, wszystko jest dozwolone. 2. Sprawdź ścieżkę względem każdej reguły: dopasowanie jest oparte na prefiksie, rozróżnia wielkość liter, a */$ działają jak symbole wieloznaczne. 3. Najdłuższa pasująca reguła wygrywa; przy równej długości Allow bije Disallow. Brak pasującej reguły oznacza zezwolenie. Niezależnie od reguł, sam /robots.txt jest domyślnie dozwolony — inaczej robot nie mógłby odczytać reguł.

Typowe błędy
  • Przekonanie, że robots.txt blokuje dostęp. To prośba skierowana do grzecznych robotów, a nie mur: nieuczciwe scrapery całkowicie ją ignorują, a przeglądarka może otworzyć to, co chce. Do prawdziwej ochrony służy uwierzytelnianie; do sterowania wyłącznie wyszukiwarkami robots.txt jest właściwym narzędziem.
  • Oczekiwanie, że Disallow: / usunie stronę z wyników wyszukiwania. Zatrzymuje indeksowanie, a nie indeksację: jeśli inne strony linkują do danej strony, wyszukiwarka może nadal wymieniać adres URL (bez opisu). Narzędziem do usuwania jest znacznik meta noindex albo nagłówek odpowiedzi.
  • Poleganie na kolejności zamiast na długości. Pierwsza pasująca reguła nie wygrywa — wygrywa najbardziej szczegółowa (najdłuższa). Przestawianie linii, by „naprawić” zachowanie, nic nie zmienia; zamiast tego wydłuż zamierzoną regułę.
  • Blokowanie CSS i JS. Wykluczanie /*.css$ i /*.js$ było kiedyś częstą „optymalizacją”; renderery potrzebują tych plików, by widzieć stronę tak jak odwiedzający, a częściowo wyrenderowana strona może gorzej się pozycjonować.
  • Traktowanie dużej grupy jak dokumentacji. Linie komentarza w grupie są w porządku, ale opis w prozie przed pierwszą linią User-agent bez # to błąd parsowania, który może zmylić wyrozumiałe parsery.
FAQ

Czy wszystkie roboty obsługują Allow, * i $? Główne tak, a RFC 9309 ustandaryzowało wszystkie trzy. Niektóre mniejsze lub starsze roboty rozumieją tylko Disallow i czytają * dosłownie — to jeden z powodów, by w miarę możliwości trzymać reguły proste.

Co oznacza pusty Disallow:? „Nie zakazuj niczego” — grupa wprost zezwala na wszystko. Zwykle pojawia się, gdy ktoś edytuje szablon, usuwa ścieżkę, ale nie dyrektywę; audyt to zgłasza.

Jak duży może być plik? RFC 9309 wymaga, by parsery obsługiwały co najmniej 500 KiB; ponad to robot może przestać czytać i uznać resztę za zakazaną. Trzymaj plik znacznie poniżej tej granicy, a jeśli urośnie ogromny, zastanów się, czy sterowanie indeksowaniem nie powinno należeć do nagłówków strony.

Dlaczego dopasowywacz mówi, że /robots.txt jest dozwolony nawet przy Disallow: /? Bo standard mówi to wprost: sam plik robots jest domyślnie dozwolony. Moduł urllib.robotparser w Pythonie i inne nie implementują tego wyjątku — jedna z drobnych rozbieżności między prawdziwymi parserami, którą ta strona opisuje w swoim samoteście.

Czy ścieżka Disallow rozróżnia wielkość liter? Tak. /Private/ i /private/ to różne ścieżki. Nazwa pola disallow może być w dowolnej wielkości liter, ale wartość musi pasować do adresu URL dokładnie.