Robots.txt to plik odpowiedzialny za przekazywanie wyszukiwarkom informacji na temat tego do których adresów URL danej strony, roboty mają dostęp. Jest on stosowany najczęściej w celu uniknięcia nadmiernego obciążenia witryny żądaniami. Przy pomocy tego rozwiązania nie da się jednak ukryć strony w Google. W takim przypadku trzeba po prostu zablokować indeksowanie wykorzystując tag noindex lub zabezpieczyć stronę hasłem.
Czym jest plik robots.txt?
Pod nazwą Robots.txt kryje się plik tekstowy tworzony przez webmasterów, aby instruowali roboty (najczęściej są to roboty wyszukiwarek) odnośnie tego jak mają przeprowadzać crawling strony. Plik robots.txt stanowi część Robots Exclusion Protocol (REP), czyli grupy standardów sieciowych regulujących crawling sieci przez roboty, a także uzyskiwanie dostępu oraz indeksowanie treści i jej przekazywanie użytkownikom.
REP obejmuje również wytyczne, takie jak meta robots oraz instrukcje dotyczące stron, podkategorii lub serwisów odnośnie tego jak wyszukiwarki mają traktować linki (np. follow lub nofollow).
W praktyce pliki robots.txt wskazują czy dane boty mogą lub nie mogą analizować konkretne części strony. Takie instrukcje crawlingu są określane jako „zakazywanie” lub „pozwalanie” określonym (lub wszystkim) użytkownikom na konkretne zachowania.

Podstawowy format:
User-agent: [nazwa użytkownika] Disallow: [adres URL nie będzie analizowany]
Razem, te dwie linie są uznawane za kompletny plik robots.txt. Jednak jeden plik robots może zawierać wielu użytkowników oraz wytycznych (np. zakazy, zgody, opóźnienia crawlingu, itp.).
W pliku robots.txt, każdy zestaw wytycznych użytkownika pojawia się w osobnym zestawie oddzielonym pustym wierszem. W pliku robots.txt z wytycznymi dla wielu użytkowników, każda zasada zakazu lub zezwolenia znajduje zastosowanie tylko dla botów określonych w tym konkretnym, osobnym zestawie.
Przykład robots.txt
Poniżej znajduje się kilka przykładów pliku robots.txt wykorzystywanego dla strony www.example.com:
Adres URL pliku Robots.txt: www.example.com/robots.txt
Blokowanie działania robotów wyszukiwarek w całej treści
User-agent: * Disallow: /
Korzystając z takiej składni w pliku robots.txt można przekazać robotom wyszukiwarek, aby nie analizowały jakichkolwiek podstron na stronie www.example.com, wliczając w to stronę główną.
Zezwolenie wszystkim robotom wyszukiwarek na dostęp do wszystkich treści
User-agent: * Disallow:
Korzystając z takiej składni w pliku robots.txt można przekazać robotom wyszukiwarek, aby analizowały wszystkie strony na stronie www.example.com, wliczając w to stronę główną.
Blokowanie określonego robota wyszukiwarki w określonym katalogu
User-agent: Googlebot Disallow: /przykładowy-katalog/
Taka składnia mówi, że tylko robot Google (nazwa użytkownika Googlebot) nie może analizować jakichkolwiek stron zawierających URL www.example.com/przykładowy-folder/.
Blokowanie określonego robota na konkretnej stronie
User-agent: Bingbot Disallow: /example-subfolder/blocked-page.html
Ta składnia mówi, że tylko robot Bing (nazwa użytkownika Bing) nie może analizować określonej strony znajdującej się pod adresem www.example.com/example-subfolder/blocked-page.html.
Jak działa robots.txt?
Wyszukiwarki internetowe spełniają dwa podstawowe zadania:
- analiza sieci w poszukiwaniu treści;
- indeksowanie treści, tak aby była ona pokazywana wyszukującym, którzy poszukują informacji.
Aby analizować strony, wyszukiwarki wykorzystują linki, aby przedostawać się pomiędzy stronami, a to ostatecznie prowadzi do analizy miliardów linków i stron. Takie zachowanie jest czasami określane jako „spidering”.
Po przybyciu na stronę, przed jej analizą, robot wyszukiwarki zapoznaje się z plikiem robots.txt. Jeśli znajdzie taki plik, wówczas odczyta najpierw go przed dalszymi działaniami na stronie. Plik robots.txt zawiera informacje na temat tego jak wyszukiwarka ma analizować stronę, więc znalezione w nim informacje poinstruują robota odnośnie dalszych działań na określonej stronie.
Jeśli plik robots.txt nie zawiera żadnych wytycznych zabraniających konkretnych działań użytkownika (lub jeśli strona nie posiada pliku robots.txt), wówczas robot zacznie analizować inne informacje na stronie.
Inne istotne kwestie związane z robots.txt, o których należy wiedzieć
- Aby można było go znaleźć, plik robots.txt musi znajdować się w katalogu na najwyższym poziomie strony internetowej (root strony).
- Wielkość liter jest ważna w przypadku pliku Robots.txt: plik musi zostać nazwany „robots.txt” (nie Robots.txt, robots.TXT lub w inny sposób).
- Niektórzy użytkownicy (roboty) mogą ignorować plik robots.txt. Jest to szczególnie powszechne w przypadku wielu złośliwych robotów, takich jak roboty malware lub roboty kradnące adresy.
- Plik/robots.txt jest dostępny publicznie: wystarczy dodać /robots.txt na końcu jakiejkolwiek głównej domeny, aby sprawdzić wytyczne takiej strony (jeśli taka strona posiada plik robots.txt!). Oznacza to, że każdy może zobaczyć jakie strony dany właściciel chce lub nie chce analizować. W związku z tym nie wolno używać takich plików do ukrywania danych osobistych użytkowników.
Składnia technicznego pliku robots.txt
Składnia pliku robots.txt może być uznawana za „język” plików robots.txt. Istnieje pięć podstawowych terminów, które można znaleźć w pliku robots. Oto one:
- User-agent (użytkownik) – Konkretny robot, któremu udzielane są instrukcje dotyczące crawlingu (zwykle jest to wyszukiwarka).
- Disallow – Komenda ta jest wykorzystywana, aby przekazać użytkownikowi, że nie może analizować określonego adresu URL. Tylko jedna linia „Disallow:” jest dozwolona dla każdego adresu URL.
- Allow (dotyczy tylko Googlebota) – Komenda ta mówi robotowi Googlebot o tym, że ma on dostęp do określonej strony lub podfolderu, nawet jeśli strona główna lub folder mogą być niedozwolone.
- Crawl-delay (opóźnienie crawlingu) – Informuje o tym ile sekund robot powinien poczekać przed załadowaniem i analizą treści strony. Trzeba pamiętać, że Googlebot nie bierze pod uwagę tej komendy, ale stopień crawlingu można ustawić w Google Search Console
- Sitemap – Wykorzystuje się do wskazania lokalizacji jakichkolwiek sitemap XML powiązanych z danym URL. Komenda ta jest wspierana wyłącznie przez Google, Ask, Bing oraz Yahoo.
Dopasowanie wzorów
Jeśli chodzi o rzeczywiste blokowanie lub zapewnianie dostępu do adresów URL, pliki robots.txt mogą stać się bardzo skomplikowane, ponieważ pozwalają na dopasowanie wzorów obejmujących wiele możliwych opcji URL. Google oraz Bing uznają dwa podstawowe wyrażenia, które mogą być użyte, aby zidentyfikować strony lub foldery, które mają zostać wyłączone. Chodzi tutaj o znak gwiazdki (*) dolara ($).
When it comes to the actual URLs to block or allow, robots.txt files can get fairly complex as they allow the use of pattern-matching to cover a range of possible URL options. Google and Bing both honor two regular expressions that can be used to identify pages or subfolders that an SEO wants excluded. These two characters are the asterisk (*) and the dollar sign ($).
- * to znak reprezentujący jakąkolwiek kolejność znaków
- $ oznacza zakończenie adresu URL
Dlaczego plik robots.txt jest potrzebny?
Pliki robots.txt kontrolują dostęp robotów do określonych obszarów danej strony. Niebezpieczne może jednak być przypadkowe zabronienie Googlebotowi analizowania całej strony. Istnieją jednak pewne sytuacje, w których plik robots.txt może być bardzo przydatny.
Typowe przypadki wykorzystania prezentują się następująco:
- zapobieganie pojawianiu się powielonej treści w SERP (meta robots jest w tym przypadku lepszym wyborem),
- zachowanie prywatności całych sekcji strony internetowej,
- Ochrona wewnętrznych stron z rezultatami wyszukiwania przez pokazywaniem ich na publicznej stronie SERP,
- określenie lokalizacji sitemapy,
- zapobieganie indeksowaniu określonych plików strony internetowej przez wyszukiwarki (ilustracje, pliki PDF, itp.),
- określenie opóźnienia crawlingu w celu ochrony serwerów przed przeciążeniem, gdy roboty wczytują wiele elementów treści w jednym momencie.
W przypadku braku posiadania obszarów strony, na których wymagana jest kontrola dostępu użytkowników, plik robots.txt jest praktycznie niepotrzebny.
Ograniczenia pliku robots.txt
Na koniec trzeba pamiętać o tym, aby przed utworzeniem lub modyfikacją pliku robots.txt, zapoznać się z ograniczeniami, jeśli chodzi o blokowanie adresów URL. W zależności od okoliczności oraz celu, można zastanowić się nad wykorzystaniem innych mechanizmów. Pozwoli to na upewnienie się, że dane adresy nie zostaną znalezione w sieci.
- Część wyszukiwarek nie potrafi obsługiwać pewnych reguł pliku robots.txt.
Wytyczne znajdujące się w plikach robots.txt nie będą narzucać zachowania pewnych robotów indeksujących stronę i to tylko od robota zależy czy będzie on przestrzegać instrukcji. Przykładowo Googlebot oraz pozostałe popularne roboty będą stosować się do poleceń umieszczonych w pliku robots.txt, ale istnieją też pewne roboty, które zignorują ten plik. W związku z tym ukrywanie danych przed takimi robotami powinno być zrealizowane z wykorzystaniem innych metod, takich jak na przykład zabezpieczanie prywatnych plików hasłem. Dodatkowo, pamiętajmy, że mimo informacji w robots.txt dany zasób nadal może się indeksować. Bowiem Google może otrzymywać sygnały w postaci linkowania zewnętrzne lub dany zasób zindeksował się wcześniej – przed umieszczeniem odpowiedniego zapisu do robots.txt.
- Każdy robot interpretuje składnię w inny sposób.
Popularne roboty indeksujące przestrzegają reguł znajdujących się w pliku robots.txt, ale każdy z nich może inaczej je zrozumieć. Przekazywanie instrukcji różnym robotom wiąże się z koniecznością wykorzystania stosownej składni, ponieważ część robotów po prostu nie rozpoznaje określonych poleceń.
- Strona zablokowana w pliku robots.txt może nadal zostać zindeksowana, jeśli istnieją linki prowadzące do niej z innych witryn.
Google nie zaindeksuje treści zablokowanej przez plik robots.txt, ale nadal istnieje możliwość indeksowania zablokowanego URL, jeśli linki do niego znajdują się w innych miejscach w Internecie. Taki adres URL (oraz inne ujawnione informacje, na przykład treść anchoru) mogą zostać wyświetlone w rezultatach wyszukiwania Google. Całkowite wykluczenie URL z takich rezultatów jest możliwe dzięki zabezpieczeniu plików na serwerze hasłem lub poprzez użycie meta tagu noindex albo nagłówka odpowiedzi. Innym rozwiązaniem jest całkowite usunięcie strony.