Plik robots.txt jest jednym z podstawowych mechanizmów technicznego SEO. Informuje roboty, które obszary witryny mogą pobierać, a których nie powinny odwiedzać. Błędna reguła może jednak zablokować ważne strony, utrudnić renderowanie serwisu albo niepotrzebnie zużywać budżet indeksowania.
Po lekturze dowiesz się, jak działa robots.txt, gdzie go umieścić, jak tworzyć reguły Allow i Disallow, jak obsługiwać różne roboty oraz jak testować zmiany. Zrozumiesz również, dlaczego robots.txt nie służy do usuwania stron z indeksu ani do ochrony poufnych danych.
Co to jest robots.txt?
Robots.txt to publicznie dostępny plik tekstowy zawierający instrukcje dla robotów internetowych. Jest elementem Robots Exclusion Protocol i służy przede wszystkim do zarządzania pobieraniem zasobów witryny przez crawlery.
Najczęściej znajduje się pod adresem:
https://example.com/robots.txt
Robot przed rozpoczęciem indeksowania hosta może pobrać ten plik, rozpoznać reguły dotyczące swojego identyfikatora i zdecydować, które adresy URL wolno mu odwiedzić.
Przykład najprostszej konfiguracji:
User-agent: *Disallow:
Taki zapis oznacza, że wszystkie roboty respektujące robots.txt mogą pobierać wszystkie zasoby witryny.
Co kontroluje robots.txt?
Plik może kontrolować między innymi:
- dostęp robotów do katalogów,
- dostęp do konkretnych adresów URL,
- pobieranie adresów z określonymi parametrami,
- dostęp wybranych robotów do części serwisu,
- pobieranie plików, skryptów i innych zasobów,
- wskazanie lokalizacji mapy witryny XML.
Czego robots.txt nie kontroluje?
Robots.txt nie jest mechanizmem:
- ochrony danych poufnych,
- uwierzytelniania użytkowników,
- blokowania dostępu w przeglądarce,
- gwarantowanego usuwania strony z wyników wyszukiwania,
- przekazywania sygnałów kanonicznych,
- zapobiegania kopiowaniu treści,
- blokowania robotów, które ignorują standard.
Plik jest publiczny. Każdy użytkownik może otworzyć go w przeglądarce i zobaczyć wymienione w nim katalogi. Nie należy więc umieszczać w nim informacji, które ujawniają lokalizację poufnych paneli, kopii zapasowych lub prywatnych plików.
Robots.txt a crawlowanie, indeksowanie i wyświetlanie w wynikach
Jednym z najważniejszych rozróżnień w technicznym SEO jest różnica między pobieraniem adresu, jego indeksowaniem i prezentowaniem w wynikach wyszukiwania.
Crawlowanie
Crawlowanie, nazywane również skanowaniem lub pobieraniem, polega na odwiedzaniu adresu URL przez robota i analizowaniu jego zawartości.
Dyrektywa Disallow może ograniczyć ten proces.
Indeksowanie
Indeksowanie oznacza przetworzenie strony i zapisanie informacji o niej w indeksie wyszukiwarki.
Zablokowanie adresu w robots.txt nie gwarantuje, że zniknie on z indeksu. Wyszukiwarka może poznać URL na podstawie linków zewnętrznych, linków wewnętrznych lub wcześniejszego pobrania. W rezultacie zablokowany adres może pojawić się w wynikach bez pełnego opisu treści.
Wyświetlanie w wynikach wyszukiwania
Jeżeli celem jest usunięcie strony z organicznych wyników wyszukiwania, zwykle należy:
- zezwolić robotowi na pobranie strony,
- umieścić na niej dyrektywę
noindex, - poczekać na ponowne odwiedzenie i przetworzenie adresu.
Przykład metatagu:
<meta name="robots" content="noindex, follow">
Alternatywą dla zasobów innych niż HTML jest nagłówek HTTP:
X-Robots-Tag: noindex
Jeżeli strona jest jednocześnie zablokowana w robots.txt, robot może nie zobaczyć dyrektywy noindex.
Gdzie powinien znajdować się plik robots.txt?
Plik musi znajdować się w katalogu głównym konkretnego hosta i być dostępny pod nazwą pisaną małymi literami:
/robots.txt
Poprawny adres:
https://example.com/robots.txt
Niepoprawne lokalizacje:
https://example.com/files/robots.txthttps://example.com/Robots.txt
https://example.com/robot.txt
Reguły obowiązują wyłącznie w obrębie protokołu, hosta i portu, dla których udostępniono plik.
Oznacza to, że poniższe adresy mogą wymagać odrębnych plików:
https://example.com/robots.txthttp://example.com/robots.txt
https://www.example.com/robots.txt
https://blog.example.com/robots.txt
https://example.com:8080/robots.txt
Plik z domeny głównej nie zarządza automatycznie subdomenami. Jeżeli sklep działa pod adresem shop.example.com, powinien mieć własny plik robots.txt.
Budowa i składnia pliku robots.txt
Podstawowym elementem pliku jest grupa reguł. Każda grupa zaczyna się od identyfikatora robota, po którym występują instrukcje dostępu.
User-agent: nazwa-robotaDisallow: /zablokowana-sciezka/
Allow: /dozwolona-sciezka/
User-agent
Dyrektywa User-agent określa robota, którego dotyczą kolejne instrukcje.
Reguła dla wszystkich robotów:
User-agent: *
Reguła dla określonego robota:
User-agent: Googlebot
Można przygotować osobne grupy:
User-agent: GooglebotDisallow: /sekcja-testowa/
User-agent: *
Disallow: /panel/
Robot powinien wybrać najbardziej szczegółową grupę pasującą do jego identyfikatora. W przypadku bardziej złożonych konfiguracji warto sprawdzić sposób interpretacji reguł przez konkretną wyszukiwarkę.
Disallow
Dyrektywa Disallow wskazuje ścieżkę, której robot nie powinien pobierać.
Blokada całego katalogu:
User-agent: *Disallow: /panel/
Blokada konkretnego pliku:
User-agent: *Disallow: /raport.pdf
Blokada całej witryny:
User-agent: *Disallow: /
Zezwolenie na pobieranie całej witryny:
User-agent: *Disallow:
Pusta wartość Disallow nie oznacza blokady. Oznacza brak wykluczonej ścieżki.
Allow
Dyrektywa Allow tworzy wyjątek wewnątrz zablokowanego obszaru.
User-agent: *Disallow: /panel/
Allow: /panel/publiczne-informacje/
W tej konfiguracji robot nie powinien pobierać katalogu /panel/, ale może odwiedzić podkatalog /panel/publiczne-informacje/.
Reguły są zwykle rozstrzygane na podstawie długości najbardziej szczegółowo pasującej ścieżki. Jeżeli kilka instrukcji może objąć ten sam URL, większe znaczenie ma bardziej precyzyjna reguła, a nie sama kolejność wpisów.
Sitemap
Dyrektywa Sitemap wskazuje adres mapy witryny XML.
Sitemap: https://example.com/sitemap.xml
Można podać kilka map:
Sitemap: https://example.com/sitemap-pages.xmlSitemap: https://example.com/sitemap-products.xml
Sitemap: https://example.com/sitemap-posts.xml
Adres powinien być bezwzględny, czyli zawierać protokół i nazwę hosta.
Samo dodanie mapy witryny do robots.txt nie gwarantuje crawlowania ani indeksowania wszystkich wymienionych adresów. Mapa pomaga w ich odkrywaniu, ale wyszukiwarka nadal ocenia dostępność, jakość i przydatność stron.
Komentarze
Komentarz rozpoczyna się znakiem #:
# Blokada wewnętrznej wyszukiwarkiUser-agent: *
Disallow: /search/
Komentarze warto wykorzystywać do opisania celu reguły, właściciela zmiany lub daty jej wdrożenia. Nie należy jednak publikować w nich danych technicznych, które powinny pozostać poufne.
Symbole wieloznaczne i dopasowanie adresów
W praktyce wiele popularnych robotów obsługuje symbole * i $.
Gwiazdka *
Gwiazdka może zastępować dowolny ciąg znaków.
User-agent: *Disallow: /*?sort=
Reguła może objąć adresy zawierające parametr sort, jeżeli ich struktura odpowiada wzorcowi.
Przykład blokowania określonego rozszerzenia:
User-agent: *Disallow: /*.pdf$
Znak dolara $
Znak $ oznacza koniec adresu lub dopasowywanej ścieżki.
Disallow: /*.pdf$
Reguła może zablokować:
/oferta.pdf/dokumenty/regulamin.pdf
Nie musi natomiast blokować:
/oferta.pdf?download=1/oferta.pdf.html
Wielkość liter
Ścieżki są rozróżniane pod względem wielkości liter.
Disallow: /Panel/
nie musi być równoznaczne z:
Disallow: /panel/
Konfiguracja powinna odpowiadać rzeczywistym adresom obsługiwanym przez serwer.
Parametry adresów URL
Robots.txt może ograniczać crawlowanie adresów z parametrami, ale wymaga to znajomości ich kolejności i sposobu generowania.
Przykład:
User-agent: *Disallow: /*?sort=
Disallow: /*&sort=
Pierwsza reguła obejmuje sytuacje, w których sort jest pierwszym parametrem. Druga może objąć przypadki, w których pojawia się później.
Przed blokadą parametrów należy sprawdzić, czy nie występują one również w wartościowych i kanonicznych adresach. Szeroka reguła może przypadkowo odciąć produkty, kategorie lub wersje językowe.
Jak wyszukiwarka rozstrzyga konflikty reguł?
Dla danego adresu robot porównuje pasujące instrukcje i wybiera najbardziej szczegółowe dopasowanie.
Przykład:
User-agent: *Disallow: /sklep/
Allow: /sklep/produkty/
Rezultat:
/sklep/koszyk/— zablokowany,/sklep/produkty/— dozwolony,/sklep/produkty/buty/— dozwolony.
Bardziej rozbudowany przykład:
User-agent: *Disallow: /sklep/
Allow: /sklep/produkty/
Disallow: /sklep/produkty/wycofane/
Rezultat:
/sklep/— zablokowany,/sklep/produkty/buty/— dozwolony,/sklep/produkty/wycofane/model-1/— zablokowany.
Nie warto polegać wyłącznie na intuicji dotyczącej kolejności wpisów. Każdy istotny URL powinien zostać sprawdzony w testerze lub za pomocą narzędzia symulującego dopasowanie reguł.
Jak poprawnie skonfigurować robots.txt krok po kroku?
1. Przeprowadź inwentaryzację adresów
Podziel adresy na co najmniej cztery grupy:
- strony przeznaczone do indeksowania,
- strony dostępne dla robotów, ale oznaczone
noindex, - adresy techniczne, których robot nie musi pobierać,
- zasoby prywatne, które powinny być chronione uwierzytelnianiem.
Nie zaczynaj od pisania reguł. Najpierw określ cel biznesowy i techniczny każdej sekcji witryny.
2. Zidentyfikuj źródła niepotrzebnych adresów
W zależności od typu serwisu mogą to być:
- wyniki wewnętrznej wyszukiwarki,
- sortowanie i filtrowanie,
- identyfikatory sesji,
- kalendarze generujące nieskończone zakresy dat,
- strony koszyka i procesu zamówienia,
- wersje podglądowe,
- parametry śledzące,
- duplikaty generowane przez CMS,
- endpointy administracyjne,
- adresy techniczne API.
Nie każdy duplikat należy automatycznie blokować. Jeżeli robot ma odczytać tag kanoniczny, przekierowanie lub noindex, musi mieć możliwość pobrania adresu.
3. Ustal, które roboty mają otrzymać osobne reguły
Domyślna grupa powinna zwykle obejmować wszystkie roboty:
User-agent: *
Osobne grupy warto tworzyć tylko wtedy, gdy istnieje konkretny powód, na przykład:
- różne zasady dla robotów wyszukiwarek,
- kontrola crawlerów narzędzi SEO,
- ograniczanie botów archiwizujących,
- polityka dotycząca crawlerów używanych do trenowania modeli AI,
- ochrona wydajności serwera przed konkretnym botem respektującym plik.
Identyfikator deklarowany przez robota może zostać podszyty. Robots.txt nie zastępuje reguł serwera, zapory aplikacyjnej ani systemu zarządzania ruchem botów.
4. Zacznij od minimalnej konfiguracji
Im więcej skomplikowanych wzorców, tym większe ryzyko błędu.
Bezpieczny punkt wyjścia:
User-agent: *Disallow:
Sitemap: https://example.com/sitemap.xml
Następnie należy dodawać wyłącznie reguły, które rozwiązują rozpoznany problem.
5. Sprawdź zasoby potrzebne do renderowania
Nie należy bez uzasadnienia blokować plików CSS, JavaScript, obrazów ani zasobów wykorzystywanych do renderowania treści.
Jeżeli robot nie może pobrać istotnych skryptów lub arkuszy stylów, może:
- nie zobaczyć części treści,
- nie rozpoznać układu mobilnego,
- błędnie ocenić renderowanie strony,
- nie dotrzeć do linków tworzonych przez JavaScript.
Szczególnie ostrożnie należy podchodzić do szerokich blokad katalogów takich jak:
/assets//static/
/scripts/
/themes/
/wp-content/
6. Dodaj mapę witryny
Na końcu pliku umieść adres mapy lub indeksu map:
Sitemap: https://example.com/sitemap-index.xml
Mapa powinna zawierać przede wszystkim kanoniczne, dostępne i przeznaczone do indeksowania adresy zwracające prawidłowy kod odpowiedzi.
7. Przetestuj konkretne adresy
Przygotuj zestaw testowy obejmujący:
- stronę główną,
- stronę kategorii,
- stronę produktu lub usługi,
- artykuł,
- zasób CSS i JavaScript,
- adres z parametrami,
- adres zablokowany,
- wyjątek objęty
Allow, - mapę witryny,
- wersje adresu różniące się wielkością liter.
Nie wystarczy potwierdzić, że sam plik jest dostępny. Trzeba sprawdzić skutki każdej reguły.
8. Wdróż monitoring
Po publikacji kontroluj:
- błędy pobierania robots.txt,
- spadki crawlowania,
- wzrost liczby zablokowanych zasobów,
- problemy z renderowaniem,
- stan indeksowania najważniejszych szablonów,
- logi serwera,
- zmiany w liczbie odwiedzin robotów,
- przypadkowe zablokowanie sekcji serwisu.
Robots.txt powinien być wersjonowany tak samo jak kod aplikacji. Każda zmiana powinna mieć właściciela, opis, datę wdrożenia i możliwość szybkiego wycofania.
Przykładowe konfiguracje robots.txt
Zezwolenie na crawlowanie całej witryny
User-agent: *Disallow:
Sitemap: https://example.com/sitemap.xml
Blokada całej witryny
User-agent: *Disallow: /
Taką konfigurację można stosować wyłącznie świadomie. Na witrynie produkcyjnej może spowodować zatrzymanie pobierania praktycznie wszystkich adresów przez roboty respektujące plik.
Blokada katalogu administracyjnego
User-agent: *Disallow: /admin/
Panel nadal powinien być chroniony logowaniem i odpowiednimi uprawnieniami. Sam wpis w robots.txt nie zabezpiecza go przed użytkownikami ani niepożądanymi botami.
Konfiguracja dla WordPressa
Przykładowa, oszczędna konfiguracja:
User-agent: *Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php
Sitemap: https://example.com/sitemap_index.xml
Nie należy automatycznie blokować całego katalogu /wp-content/, ponieważ może zawierać obrazy, style, skrypty i inne zasoby potrzebne do renderowania.
Blokowanie wewnętrznych wyników wyszukiwania
User-agent: *Disallow: /search/
Disallow: /?s=
Reguły trzeba dopasować do faktycznej struktury adresów używanej przez CMS.
Sklep internetowy z filtrowaniem
User-agent: *Disallow: /koszyk/
Disallow: /zamowienie/
Disallow: /*?sort=
Disallow: /*&sort=
Disallow: /*?view=
Disallow: /*&view=
Sitemap: https://example.com/sitemap-index.xml
Nie należy kopiować tego przykładu bez analizy. Parametry filtrów mogą tworzyć wartościowe strony docelowe dla zapytań o marki, kolory, rozmiary lub inne cechy produktów.
Osobne reguły dla konkretnego robota
User-agent: ExampleBotDisallow: /
User-agent: *
Disallow: /panel/
Sitemap: https://example.com/sitemap.xml
Przed wdrożeniem trzeba sprawdzić oficjalny identyfikator robota oraz sposób, w jaki interpretuje on instrukcje.
Robots.txt w zależności od typu witryny
Mała strona usługowa
W niewielkim serwisie często wystarcza zezwolenie na dostęp do wszystkich publicznych stron oraz wskazanie mapy witryny.
Rozbudowane blokady mogą przynieść więcej szkody niż pożytku, ponieważ liczba technicznych adresów jest mała, a potencjalne oszczędności crawlowania nieznaczne.
Sklep internetowy
Największym wyzwaniem są zwykle:
- filtry fasetowe,
- sortowanie,
- paginacja,
- warianty produktów,
- parametry kampanii,
- koszyk i proces zakupowy,
- listy życzeń,
- wewnętrzna wyszukiwarka.
Decyzje powinny wynikać z analizy popytu, linkowania wewnętrznego, logów serwera oraz sposobu obsługi adresów kanonicznych.
Portal i serwis wydawniczy
Należy zwrócić uwagę na:
- archiwa dat,
- tagi,
- strony autorów,
- wersje do druku,
- parametry śledzące,
- sekcje płatne,
- wyniki wyszukiwania,
- strony podglądowe.
Zablokowanie archiwów lub tagów powinno zależeć od ich jakości i funkcji, a nie od samego typu szablonu.
Aplikacja JavaScript
Robot powinien mieć dostęp do zasobów wymaganych do renderowania:
- skryptów JavaScript,
- plików CSS,
- fontów,
- danych pobieranych z publicznych endpointów,
- obrazów i komponentów interfejsu.
Jeżeli kluczowa treść jest ładowana przez API, blokada endpointu może spowodować, że robot zobaczy pustą lub niekompletną stronę.
Serwis wielojęzyczny
Reguły można stosować do katalogów językowych:
User-agent: *Disallow: /pl/test/
Disallow: /de/test/
Jeżeli wersje językowe działają na subdomenach, każda subdomena potrzebuje własnego pliku. Robots.txt nie zastępuje tagów hreflang ani prawidłowego linkowania między wersjami.
Środowisko testowe
Samo użycie:
User-agent: *Disallow: /
nie jest wystarczającym zabezpieczeniem środowiska testowego.
Zalecane są:
- uwierzytelnianie HTTP,
- dostęp przez VPN,
- ograniczenie adresów IP,
- kontrola na poziomie serwera,
- dodatkowe
noindexjako warstwa pomocnicza.
Po przeniesieniu serwisu na produkcję należy sprawdzić, czy blokada nie została przypadkowo skopiowana.
Robots.txt a inne dyrektywy SEO
Robots.txt a meta robots
| Mechanizm | Główne zastosowanie | Czy wymaga pobrania strony? | Czy chroni dane? |
|---|---|---|---|
Disallow w robots.txt | Ograniczenie crawlowania | Nie | Nie |
Meta robots noindex | Wykluczenie strony z indeksu | Tak | Nie |
X-Robots-Tag | Kontrola indeksowania zasobów | Tak | Nie |
| Uwierzytelnianie | Ochrona dostępu | Nie dotyczy | Tak |
| Kod 404 lub 410 | Informacja o braku zasobu | Tak | Nie |
| Przekierowanie 301/308 | Przeniesienie adresu | Tak | Nie |
| Canonical | Wskazanie preferowanej wersji | Tak | Nie |
Robots.txt a rel canonical
Tag kanoniczny pomaga określić preferowany adres spośród podobnych lub zduplikowanych stron. Robot musi pobrać stronę, aby odczytać canonical.
Blokowanie duplikatów w robots.txt może więc uniemożliwić zobaczenie sygnału kanonicznego. Jeżeli konsolidacja adresów jest priorytetem, lepszym rozwiązaniem może być:
- przekierowanie,
- canonical,
- uporządkowanie linkowania wewnętrznego,
- eliminacja zbędnych parametrów.
Robots.txt a kod 404 i 410
Jeżeli zasób został trwale usunięty, serwer powinien zazwyczaj zwracać kod 404 lub 410. Blokowanie nieistniejącego adresu w robots.txt może opóźnić ponowne sprawdzenie jego statusu przez robota.
Robots.txt a przekierowania
Adres przekierowujący powinien być dostępny dla robota, jeśli wyszukiwarka ma zobaczyć przekierowanie i przenieść sygnały na nową lokalizację.
Nie należy blokować starego URL tylko dlatego, że został przekierowany.
Kody odpowiedzi HTTP dla robots.txt
Sposób obsługi pliku zależy od odpowiedzi serwera.
Kod 200
Serwer zwraca plik, a robot może zastosować zawarte w nim instrukcje.
HTTP/1.1 200 OKContent-Type: text/plain
Kody przekierowań 3xx
Robot może podążyć za przekierowaniem do innego adresu robots.txt. Długi łańcuch, pętla lub przekierowanie do niedostępnej lokalizacji mogą spowodować problemy z pobieraniem.
Najlepiej udostępniać plik bezpośrednio pod docelowym adresem.
Kody 4xx
Wiele robotów interpretuje większość kodów 4xx jako brak dostępnego pliku robots.txt, co może oznaczać brak ograniczeń crawlowania. Szczególne kody, takie jak 429, mogą być traktowane jako tymczasowy problem z dostępnością lub przeciążeniem.
Nie należy zakładać, że zwrócenie 404 zablokuje roboty. Zwykle oznacza coś przeciwnego.
Kody 5xx i błędy sieciowe
Błędy serwera mogą być interpretowane jako brak możliwości ustalenia reguł. Robot może tymczasowo ograniczyć lub wstrzymać crawlowanie, użyć zapisanej wcześniej wersji pliku albo ponawiać próbę pobrania.
Długotrwałe błędy robots.txt mogą ograniczyć widoczność nowych i aktualizowanych treści.
Liczby i ograniczenia, które warto znać
Poniższe wartości należy interpretować w kontekście standardu oraz dokumentacji konkretnego robota:
- Plik jest pobierany z jednej ustalonej ścieżki:
/robots.txt. - Reguły są ograniczone do konkretnego protokołu, hosta i portu.
- Implementacje zgodne ze standardem powinny obsłużyć co najmniej 500 KiB pliku.
- Google deklaruje limit przetwarzanej zawartości robots.txt wynoszący 500 KiB; treść powyżej limitu może zostać zignorowana.
- Standard przewiduje obsługę co najmniej pięciu kolejnych przekierowań, jednak plik najlepiej udostępniać bez łańcucha przekierowań.
- Wyszukiwarki mogą buforować robots.txt. W praktyce odświeżenie może nastąpić w ciągu około 24 godzin, ale czas zależy od robota, częstotliwości crawlowania, nagłówków pamięci podręcznej i błędów serwera.
- Jedna błędna reguła
Disallow: /może zablokować crawlowanie całego hosta. - Jeden plik z domeny głównej nie obejmuje automatycznie żadnej subdomeny.
- Nie ma standardowego limitu liczby grup i reguł, ale rozbudowany plik zwiększa ryzyko konfliktów oraz przekroczenia obsługiwanego rozmiaru.
- Dyrektywa
Crawl-delaynie jest częścią podstawowego standardu obsługiwanego jednakowo przez wszystkie wyszukiwarki. Google jej nie obsługuje. - Robots.txt daje zero gwarancji ochrony informacji przed nieposłusznym lub złośliwym robotem.
Najważniejszą „statystyką” operacyjną nie jest liczba wpisów w pliku, ale odsetek istotnych adresów i zasobów, które zostały przypadkowo zablokowane. Dobrze skonfigurowany plik bywa bardzo krótki.
Tabela decyzyjna: kiedy używać robots.txt?
| Sytuacja | Zalecane rozwiązanie | Czy używać Disallow? | Uzasadnienie |
|---|---|---|---|
| Strona ma być widoczna w Google | Dostęp dla robota, indeksowalna treść | Nie | Robot musi pobrać i przetworzyć stronę |
| Strona ma zniknąć z indeksu | noindex lub odpowiedni kod HTTP | Zwykle nie | Robot musi zobaczyć dyrektywę lub status |
| Strona została trwale usunięta | Kod 404 lub 410 | Nie | Blokada może utrudnić sprawdzenie statusu |
| Stary URL przekierowuje na nowy | Przekierowanie 301 lub 308 | Nie | Robot musi zobaczyć przekierowanie |
| Katalog administracyjny jest prywatny | Logowanie, VPN, reguły serwera | Pomocniczo | Robots.txt nie zapewnia ochrony |
| Wyniki wewnętrznej wyszukiwarki tworzą wiele URL-i | Disallow, poprawa linkowania i obsługi parametrów | Często tak | Ogranicza pobieranie mało wartościowych adresów |
| Parametry sortowania generują duplikaty | Reguły parametrów, canonical, uporządkowanie linków | Czasem | Zależy od potrzeby odczytania canonical |
| Filtry tworzą wartościowe strony SEO | Selektywna indeksacja i linkowanie | Nie dla wartościowych filtrów | Szeroka blokada może usunąć potencjał ruchu |
| Pliki CSS i JS są potrzebne do renderowania | Zapewnić dostęp | Nie | Robot powinien zobaczyć kompletną stronę |
| Plik PDF ma nie pojawiać się w wynikach | X-Robots-Tag: noindex | Nie | Sam Disallow nie gwarantuje deindeksacji |
| Środowisko testowe ma być prywatne | Uwierzytelnianie lub ograniczenie IP | Nie jako jedyne rozwiązanie | Plik jest publiczny i dobrowolnie respektowany |
| Bot nadmiernie obciąża serwer | Rate limiting, WAF, reguły serwera | Pomocniczo | Złośliwy bot może zignorować robots.txt |
| Mapa witryny ma być łatwiejsza do odkrycia | Dyrektywa Sitemap | Nie dotyczy | Ułatwia robotom znalezienie mapy |
| Duplikat ma przekazywać sygnały do kanonicznego URL-a | Canonical lub przekierowanie | Zwykle nie | Robot musi pobrać adres i odczytać sygnał |
Crawl-delay i ograniczanie częstotliwości pobierania
W niektórych plikach można spotkać:
User-agent: *Crawl-delay: 10
Dyrektywa ma sugerować odstęp między kolejnymi żądaniami robota, ale nie jest obsługiwana jednakowo. Nie należy zakładać, że wszystkie wyszukiwarki zastosują się do tej wartości.
Jeżeli crawler przeciąża serwer, skuteczniejsze mogą być:
- konfiguracja częstotliwości w narzędziach udostępnianych przez wyszukiwarkę,
- ograniczenia na poziomie serwera,
- rate limiting,
- Web Application Firewall,
- optymalizacja wydajności,
- eliminacja pułapek crawlowania,
- poprawa kodów odpowiedzi i parametrów URL.
Nieprawidłowe ograniczanie legalnych robotów może wydłużyć czas wykrywania nowych produktów, aktualizacji cen lub świeżych artykułów.
Najczęstsze błędy w robots.txt
Przypadkowa blokada całej witryny
User-agent: *Disallow: /
Błąd często powstaje po przeniesieniu konfiguracji ze środowiska testowego na produkcję.
Użycie robots.txt do usuwania stron z indeksu
Disallow ogranicza crawlowanie, ale nie stanowi niezawodnej dyrektywy deindeksacji.
Jednoczesne użycie Disallow i noindex
Jeśli robot nie może pobrać strony, nie zobaczy metatagu ani nagłówka noindex.
Blokowanie plików CSS i JavaScript
Może uniemożliwić prawidłowe renderowanie oraz ocenę zawartości strony.
Blokowanie przekierowanych adresów
Robot nie będzie mógł zobaczyć przekierowania i sprawnie przetworzyć zmiany lokalizacji.
Kopiowanie konfiguracji z innej witryny
Każdy serwis ma inną strukturę katalogów, parametrów i szablonów. Gotowy plik może zablokować wartościowe sekcje albo nie objąć rzeczywistych problemów.
Brak osobnych plików dla subdomen
Plik na example.com nie steruje automatycznie adresem shop.example.com.
Błędna wielkość liter
Reguła dla /Kategoria/ może nie objąć /kategoria/.
Brak ukośnika przy blokowaniu katalogu
Porównaj:
Disallow: /panel
oraz:
Disallow: /panel/
Pierwszy zapis może objąć również ścieżki takie jak /panel-old lub /panelista, zależnie od dopasowania. Drugi precyzyjniej wskazuje katalog.
Zbyt szerokie wzorce parametrów
Reguła obejmująca wszystkie adresy ze znakiem zapytania może zablokować również przydatne strony, warianty językowe lub adresy wykorzystywane do renderowania.
Ukrywanie poufnych lokalizacji
Wpisanie prywatnego katalogu do robots.txt może zwrócić na niego uwagę. Dostęp należy zabezpieczyć po stronie serwera.
Brak monitorowania po wdrożeniu
Zmiana może być syntaktycznie poprawna, ale biznesowo szkodliwa. Kontrola powinna obejmować indeksowanie, logi, ruch organiczny i możliwość pobierania najważniejszych szablonów.
Mity dotyczące robots.txt
Mit: Disallow usuwa stronę z Google
Nie zawsze. URL może pozostać w indeksie, jeżeli wyszukiwarka pozna go z innych źródeł.
Mit: robots.txt zabezpiecza panel administracyjny
Nie. Jest publicznym plikiem instrukcyjnym, a nie systemem autoryzacji.
Mit: im więcej reguł, tym lepsza optymalizacja
Niekoniecznie. Rozbudowana konfiguracja zwiększa ryzyko konfliktów i przypadkowych blokad.
Mit: wszystkie roboty respektują te same dyrektywy
Nie. Obsługa rozszerzeń, symboli i niestandardowych instrukcji może różnić się między crawlerami.
Mit: każda duplikacja powinna zostać zablokowana
Nie. Robot może potrzebować dostępu do duplikatu, aby zobaczyć canonical, przekierowanie albo noindex.
Mit: robots.txt zwiększa bezpieczeństwo
Nie. Może wręcz ujawnić nazwy katalogów, których administrator nie chciał eksponować.
Mit: Sitemap pozwala ominąć Disallow
Nie. Adres umieszczony w mapie witryny nadal może być zablokowany przez reguły robots.txt.
Jak testować robots.txt?
Testowanie powinno odbywać się przed wdrożeniem i po publikacji.
Kontrola techniczna pliku
Sprawdź:
- czy adres
/robots.txtzwraca kod 200, - czy odpowiedź zawiera zwykły tekst,
- czy nie występuje pętla przekierowań,
- czy plik nie jest generowany błędnie dla części użytkowników,
- czy nie zawiera kodu HTML strony błędu,
- czy kodowanie nie powoduje błędów interpretacji,
- czy nie przekracza obsługiwanego rozmiaru.
Testy reguł
Dla każdej grupy robota sprawdź:
- URL dozwolony,
- URL zablokowany,
- wyjątek
Allow, - adres z parametrem,
- ścieżkę różniącą się wielkością liter,
- zasób potrzebny do renderowania,
- adres przekierowujący,
- adres kanoniczny.
Analiza logów serwera
Logi pokazują rzeczywiste zachowanie robotów. Można dzięki nim ustalić:
- które sekcje są pobierane najczęściej,
- czy roboty trafiają na pułapki crawlowania,
- czy pobierają adresy z parametrami,
- czy ważne strony są odwiedzane odpowiednio często,
- czy po zmianie spadło obciążenie serwera,
- które roboty ignorują reguły.
Sam deklarowany User-Agent nie potwierdza tożsamości bota. Przy analizie bezpieczeństwa można dodatkowo weryfikować adresy IP i mechanizmy identyfikacji opisane przez właściciela danego robota.
Audyt robots.txt – lista kontrolna
Dostępność
- Plik znajduje się pod adresem
/robots.txt. - Serwer zwraca oczekiwany kod odpowiedzi.
- Nie występuje pętla przekierowań.
- Wersje hosta i subdomeny mają właściwe pliki.
- Plik nie jest blokowany przez warstwę CDN lub WAF.
Składnia
- Każda grupa ma
User-agent. - Reguły mają poprawne ścieżki.
- Wyjątki
Allowsą wystarczająco precyzyjne. - Wielkość liter odpowiada rzeczywistym URL-om.
- Symbole wieloznaczne są używane świadomie.
- Nie ma niepotrzebnych ani nieobsługiwanych dyrektyw.
SEO
- Strona główna jest dostępna.
- Najważniejsze strony kategorii, produktów, usług i artykułów są dostępne.
- Robot może pobrać CSS, JavaScript i obrazy potrzebne do renderowania.
- Przekierowania nie są blokowane.
- Strony z
noindexsą dostępne do czasu przetworzenia dyrektywy. - Adresy kanoniczne i ich duplikaty są obsługiwane zgodnie ze strategią.
- Mapa witryny jest wskazana i dostępna.
Bezpieczeństwo
- Dane poufne nie są chronione wyłącznie przez robots.txt.
- Panele wymagają uwierzytelniania.
- Kopie zapasowe nie są publicznie dostępne.
- Złośliwe boty są ograniczane na poziomie serwera lub WAF.
- Plik nie ujawnia niepotrzebnie wewnętrznej architektury serwisu.
Proces wdrożenia
- Zmiana została przetestowana na konkretnych URL-ach.
- Konfiguracja jest przechowywana w systemie kontroli wersji.
- Istnieje możliwość szybkiego wycofania zmiany.
- Monitoring obejmuje logi i stan indeksowania.
- Zespół wie, kto odpowiada za plik.
Dobre praktyki zarządzania plikiem
- Utrzymuj plik możliwie krótki.
- Dodawaj reguły tylko wtedy, gdy mają jasno określony cel.
- Nie wykorzystuj robots.txt jako narzędzia bezpieczeństwa.
- Testuj adresy, a nie tylko samą składnię.
- Regularnie analizuj logi serwera.
- Wersjonuj zmiany i dokumentuj ich uzasadnienie.
- Nie blokuj zasobów potrzebnych do renderowania.
- Oddzielaj zarządzanie crawlowaniem od zarządzania indeksowaniem.
- Sprawdzaj dokumentację konkretnych robotów przed użyciem niestandardowych dyrektyw.
- Audytuj plik po migracji, zmianie CMS-a, wdrożeniu nowej subdomeny lub przebudowie struktury URL.
Tematy powiązane do rozwinięcia w ramach linkowania wewnętrznego
Pillar page o robots.txt warto połączyć z dodatkowymi materiałami:
- Crawlowanie i indeksowanie – najważniejsze różnice
- Meta robots i X-Robots-Tag
- Mapa witryny XML – tworzenie i optymalizacja
- Budżet indeksowania i analiza crawl budgetu
- Analiza logów serwera w SEO
- Adresy kanoniczne i rel canonical
- Przekierowania 301, 302, 307 i 308
- Kody odpowiedzi HTTP w SEO
- SEO dla filtrów i nawigacji fasetowej
- Jak usunąć stronę z wyników Google?
- Renderowanie JavaScript przez roboty wyszukiwarek
- Audyt techniczny SEO – kompletna lista kontrolna
FAQ
Czy każda strona potrzebuje robots.txt?
Nie jest to bezwzględnie wymagane, ale warto udostępnić poprawny plik nawet wtedy, gdy nie blokuje żadnych adresów. Może on wskazywać mapę witryny i jednoznacznie określać politykę crawlowania.
Jak zezwolić wszystkim robotom na dostęp?
Użyj:
User-agent: *Disallow:
Jak zablokować całą stronę?
Użyj:
User-agent: *Disallow: /
Nie traktuj tego jako zabezpieczenia danych. Na środowisku produkcyjnym taka reguła może poważnie ograniczyć crawlowanie.
Czy Disallow usuwa adres z indeksu?
Nie gwarantuje tego. Do wykluczania stron z indeksu służy przede wszystkim noindex, kod 404 lub 410, ochrona dostępem albo inne rozwiązanie właściwe dla danego przypadku.
Czy można połączyć Disallow i noindex?
Technicznie tak, ale zwykle jest to sprzeczna konfiguracja. Zablokowany robot może nie pobrać strony, a więc nie zobaczy noindex.
Czy robots.txt działa na subdomenach?
Plik działa tylko dla hosta, na którym został opublikowany. Każda subdomena powinna mieć własny robots.txt.
Czy można umieścić kilka map witryny?
Tak. Każdą mapę można wskazać w osobnej linii Sitemap.
Czy kolejność reguł ma znaczenie?
Najważniejsze jest dopasowanie najbardziej szczegółowej ścieżki. Nie należy jednak zakładać identycznej interpretacji wszystkich niestandardowych przypadków przez każdy crawler.
Czy warto blokować CSS i JavaScript?
Zwykle nie. Roboty mogą potrzebować tych zasobów do renderowania i oceny strony.
Czy robots.txt może blokować obrazy i pliki PDF?
Może ograniczać ich pobieranie przez roboty respektujące reguły. Nie gwarantuje jednak usunięcia już znanych adresów z indeksu. Do zarządzania indeksowaniem plików można wykorzystać również nagłówek X-Robots-Tag.
Czy Crawl-delay działa w Google?
Google nie obsługuje dyrektywy Crawl-delay w robots.txt. Inne roboty mogą ją interpretować, ale sposób obsługi nie jest jednolity.
Jak szybko robot zobaczy zmianę?
Roboty buforują plik i pobierają go okresowo. Aktualizacja może zostać zauważona w ciągu kilkunastu godzin lub później, zależnie od wyszukiwarki, częstotliwości crawlowania i dostępności serwera.
Czy można zablokować boty AI?
Można przygotować regułę dla znanego identyfikatora crawlera, jeśli dany bot respektuje robots.txt. Nie daje to jednak technicznej gwarancji blokady, ponieważ identyfikatory mogą się zmieniać lub być podszywane. W razie potrzeby należy połączyć politykę robots.txt z kontrolą na poziomie serwera.
Dlaczego zablokowana strona nadal pojawia się w wynikach?
Wyszukiwarka mogła znaleźć adres przez linki, mapę witryny albo wcześniejsze crawlowanie. Ponieważ nie może pobrać strony, nie widzi jej aktualnej treści ani dyrektywy noindex.
Czy warto blokować parametry UTM?
Zależy to od sposobu, w jaki adresy trafiają do linkowania i jak często są pobierane. Zamiast szerokiej blokady warto najpierw poprawić linki wewnętrzne, canonicale i sposób generowania URL-i.
Jak często audytować robots.txt?
Co najmniej po każdej migracji, zmianie CMS-a, wdrożeniu nowych filtrów, uruchomieniu subdomeny lub przebudowie architektury serwisu. W dużych witrynach kontrola powinna być elementem stałego monitoringu technicznego.
Podsumowanie
Robots.txt służy do zarządzania dostępem robotów do zasobów, a nie do ochrony danych ani gwarantowanego usuwania stron z indeksu. Najbezpieczniejsza konfiguracja jest możliwie krótka, oparta na rzeczywistej strukturze adresów i regularnie testowana.
Przed zablokowaniem katalogu lub parametru trzeba ustalić, czy robot nie potrzebuje dostępu do strony, aby zobaczyć jej treść, przekierowanie, canonical albo dyrektywę noindex. Szczególnej uwagi wymagają zasoby CSS i JavaScript, filtry sklepów, wyniki wyszukiwania, subdomeny oraz środowiska testowe.
Poprawny plik robots.txt nie zastępuje dobrej architektury informacji, właściwych kodów HTTP, zabezpieczeń serwera ani zarządzania indeksowaniem. Jest jednym z elementów większego systemu technicznego SEO.