Robots.txt
Robots.txt to plik tekstowy umieszczany w katalogu głównym witryny, który zawiera reguły dla robotów (crawlerów) dotyczące tego, jakie zasoby mogą próbować pobierać podczas przeszukiwania serwisu. Jest elementem konwencji znanej jako *Robots Exclusion Protocol* i służy do kierowania zachowaniem botów, a nie do egzekwowania bezpieczeństwa.
Plik `robots.txt` jest zwykle dostępny pod adresem `https://twojadomena.pl/robots.txt` i jest jednym z pierwszych zasobów, po które sięgają roboty wyszukiwarek, gdy zaczynają eksplorować witrynę. Zawiera zestaw dyrektyw przypisanych do określonych identyfikatorów robotów (sekcje `User-agent`), takich jak `Allow` i `Disallow`, które wskazują ścieżki dozwolone lub wykluczone z crawlowania. W praktyce pomaga ograniczać niepotrzebne obciążenie serwera (np. blokując zasoby techniczne lub parametryczne adresy URL), porządkować eksplorację oraz sygnalizować lokalizację mapy witryny (dyrektywa `Sitemap`), co może ułatwiać odnajdywanie adresów.
Warto odróżnić crawlowanie od indeksowania. `robots.txt` dotyczy przede wszystkim tego, czy robot ma *pobierać* (odwiedzać) dany URL. Jeśli adres jest zablokowany w `robots.txt`, robot może nie pobrać strony, a więc nie zobaczy jej treści, nagłówków ani metadanych. Nie oznacza to jednak automatycznie, że URL nie pojawi się w indeksie: wyszukiwarka może znać taki adres z linków zewnętrznych lub wewnętrznych i przechowywać go jako wpis bez pełnej analizy treści (zależnie od polityk danego systemu). Do sterowania indeksowaniem częściej stosuje się mechanizmy na poziomie strony (np. meta robots), natomiast `robots.txt` jest narzędziem do zarządzania dostępem crawlerów do zasobów.
`robots.txt` działa na zasadzie dobrowolnego przestrzegania reguł przez roboty. Większość renomowanych botów wyszukiwarek respektuje te dyrektywy, ale nie jest to mechanizm uwierzytelniania ani autoryzacji. Jeśli zasób ma być prywatny, nie powinien polegać na samym `robots.txt`; właściwą kontrolę zapewniają dopiero mechanizmy serwerowe (np. logowanie, uprawnienia, ograniczenia dostępu). Z punktu widzenia SEO i utrzymania serwisu kluczowe jest też to, że błędy w `robots.txt` potrafią mieć szeroki wpływ: jedna nieprecyzyjna reguła może odciąć roboty od całych sekcji serwisu, a blokada plików CSS/JS może utrudnić robotom interpretację układu i działania strony.
Przykładowy, prosty `robots.txt` może wyglądać tak:
„`
User-agent: *
Disallow: /koszyk/
Disallow: /panel/
Sitemap: https://twojadomena.pl/sitemap.xml
„`
W tym przykładzie wszystkie roboty (`*`) proszone są o nieodwiedzanie ścieżek związanych z koszykiem i panelem użytkownika, a dodatkowo wskazana jest mapa witryny. Inny przykład, częsty w serwisach z filtrowaniem i parametrami, to ograniczanie eksploracji adresów generowanych masowo (np. `?sort=` lub `?page=`), choć skuteczność i składnia dopasowań zależą od tego, jak dany robot interpretuje wzorce w `robots.txt` i jak zbudowane są URL-e w serwisie.
- Kluczowe właściwości
- Plik tekstowy o stałej lokalizacji (zwykle w katalogu głównym hosta), czytany przez roboty przed intensywnym crawlowaniem.
- Zawiera reguły per `User-agent` (dla wszystkich botów lub wybranych), określające ścieżki dozwolone (`Allow`) i blokowane (`Disallow`) w kontekście pobierania zasobów.
- Jest mechanizmem *wskazówek dla crawlerów*, a nie zabezpieczeniem: nie ukrywa treści przed użytkownikami ani nie blokuje dostępu przeglądarkom.
- Może wskazywać lokalizację mapy witryny (`Sitemap`), co ułatwia robotom odnajdywanie URL-i, zwłaszcza w dużych serwisach.
- Działa na poziomie hosta i protokołu (np. osobno dla `https://example.com` i `https://sub.example.com`), więc różne subdomeny zwykle wymagają osobnych plików.
- Typowe konteksty użycia
- Ograniczanie crawlowania sekcji technicznych i użytkowych, które nie mają wartości informacyjnej w wynikach wyszukiwania (np. `/login/`, `/koszyk/`, `/api/`, `/admin/`).
- Kontrola budżetu crawlowania w dużych serwisach: blokowanie nieskończonych przestrzeni URL-i (filtry, sortowania, parametry śledzące), aby roboty częściej odwiedzały strony istotne.
- Zapobieganie pobieraniu ciężkich zasobów lub duplikatów (np. kopii wydruków, wariantów językowych tworzonych technicznie, środowisk testowych), o ile są dostępne pod tym samym hostem.
- Wskazywanie `sitemap.xml` (lub wielu map) w celu usprawnienia odkrywania nowych i zaktualizowanych adresów.
- Utrzymanie porządku podczas migracji i prac wdrożeniowych (np. tymczasowe ograniczenia dla botów na środowisku staging), przy zachowaniu ostrożności, by nie przenieść blokad na produkcję.
- Częste nieporozumienia
- „`robots.txt` usuwa stronę z indeksu” — nie jest to jego podstawowa funkcja; blokuje pobieranie, ale URL może nadal być znany wyszukiwarce. Do sterowania indeksowaniem służą inne mechanizmy na poziomie dokumentu lub odpowiedzi serwera.
- „To sposób na ukrycie wrażliwych danych” — `robots.txt` nie zapewnia ochrony; wręcz może ujawniać istnienie ścieżek (np. `/backup/`, `/private/`). Dane wrażliwe wymagają kontroli dostępu po stronie serwera.
- „Wystarczy zablokować CSS/JS, żeby robot nie ‘widział’ strony” — blokowanie zasobów renderujących może utrudnić interpretację strony i nie jest zalecaną metodą zarządzania widocznością; może pogorszyć zrozumienie treści i jakości strony przez roboty.
- „Jedna reguła działa identycznie dla wszystkich botów” — interpretacja wzorców i priorytetów może się różnić między robotami; dlatego reguły powinny być testowane i możliwie jednoznaczne.
- „`robots.txt` rozwiązuje problem duplikacji treści” — może ograniczyć crawlowanie części duplikatów, ale nie zastępuje strategii adresowania duplikacji (np. spójnej architektury URL, kanonikalizacji, właściwych przekierowań), bo blokada może uniemożliwić robotom ocenę relacji między wersjami stron.
