T10 Stacja 10 z 14

Czym jest plik robots.txt i jak działa?

robots.txt

Robots.txt to plik tekstowy w katalogu głównym domeny (np. https://example.com/robots.txt), w którym wskazujesz robotom wyszukiwarek, jakich adresów URL mają nie odwiedzać. Steruje więc przeszukiwaniem (crawlingiem), a nie indeksowaniem. To ważne rozróżnienie: strona zablokowana w robots.txt może mimo to trafić do indeksu Google, jeśli prowadzą do niej linki, tylko bez treści i opisu. Żeby usunąć stronę z wyników, użyj tagu noindex i nie blokuj jej w robots.txt, bo robot musi móc ją pobrać, żeby ten tag zobaczyć.

Plik jest wskazówką, której przestrzegają Googlebot i inne uczciwe roboty. Złośliwe boty mogą go zignorować, a sam plik jest publicznie dostępny, więc nie nadaje się do ukrywania prywatnych treści. Do ochrony danych służą hasło, logowanie lub ograniczenia po stronie serwera.

Robots.txt nie jest obowiązkowy. Gdy go nie ma (serwer zwraca 404), roboty przyjmują, że mogą przeszukiwać całą witrynę. Plik musi leżeć w katalogu głównym i dotyczy tylko tej domeny, protokołu i subdomeny, na której jest umieszczony.

Jak prawidłowo skonfigurować plik robots.txt?

Plik składa się z grup reguł. Każda zaczyna się od User-agent (do którego robota się odnosi), a po nim idą reguły Disallow i Allow:

User-agent: *
Disallow: /koszyk/
Disallow: /wyszukiwarka/
Allow: /wyszukiwarka/pomoc/

Sitemap: https://example.com/sitemap.xml
  • User-agent: * oznacza wszystkie roboty. Możesz dodać osobne grupy dla wybranych, np. User-agent: Googlebot. Robot stosuje tylko jedną, najlepiej pasującą grupę, więc reguły z grupy * nie łączą się z grupą dla konkretnego robota.
  • Disallow: /koszyk/ blokuje przeszukiwanie adresów zaczynających się od /koszyk/. Pusty Disallow: nie blokuje niczego.
  • Allow: tworzy wyjątek od szerszej blokady.
  • Sitemap: wskazuje pełny adres mapy witryny. Można podać kilka map.

Kolejność reguł nie ma znaczenia. Google stosuje najbardziej szczegółową regułę, czyli tę o najdłuższej ścieżce pasującej do adresu. Gdy reguły Allow i Disallow są równie szczegółowe, wygrywa mniej restrykcyjna, czyli Allow. W powyższym przykładzie adres /wyszukiwarka/pomoc/ pozostaje dostępny.

Obsługiwane są też symbole: * zastępuje dowolny ciąg znaków, a $ oznacza koniec adresu (np. Disallow: /*.pdf$). Wielkość liter w ścieżkach ma znaczenie. Plik musi być zapisany jako tekst w UTF-8 i zwracać kod 200. Google czyta pierwsze 500 KiB pliku, a resztę pomija. Zmiany w pliku Google zwykle odświeża w ciągu doby, a raport „robots.txt” w Search Console pokazuje wersję, którą ostatnio pobrał (Ustawienia > raport „robots.txt”; zob. też statystyki indeksowania).

Najczęstsze błędy w konfiguracji pliku robots.txt

  • Blokada całej witryny (Disallow: /). Często zostaje po pracach na wersji testowej i po publikacji strony. Po każdym wdrożeniu lub migracji sprawdź plik.
  • Użycie robots.txt do usuwania stron z wyników. Blokada nie usuwa adresu z indeksu. Od 1 września 2019 roku Google nie obsługuje też dyrektywy noindex w robots.txt. Użyj meta tagu noindex lub nagłówka HTTP X-Robots-Tag na stronie, której nie blokujesz.
  • Blokowanie plików CSS i JavaScript. Googlebot renderuje strony i potrzebuje tych zasobów, żeby zobaczyć stronę tak jak użytkownik. Zablokowane zasoby mogą pogorszyć ocenę strony.
  • Zły adres lub zła domena. Plik musi być pod /robots.txt w katalogu głównym. Dla każdej subdomeny potrzebny jest osobny plik.
  • Błędy składni: literówka w nazwie dyrektywy (np. Dissallow), pominięty ukośnik na początku ścieżki, regułę Disallow bez wcześniejszego User-agent.
  • Blokowanie stron, na które chcesz przekierować lub które mają canonical. Robot nie zobaczy przekierowania ani tagu kanonicznego, jeśli nie może pobrać strony.
  • Dyrektywa Crawl-delay. Google jej nie obsługuje, choć niektóre inne wyszukiwarki tak.

Plik nie jest „zbyt skomplikowany” dla robotów w sensie liczby reguł, ale im bardziej rozbudowany, tym łatwiej o pomyłkę, więc po każdej zmianie przetestuj kluczowe adresy.

Zaawansowane zastosowania pliku robots.txt

Typowe praktyczne zastosowania:

  • Oszczędzanie budżetu indeksowania: blokowanie adresów bez wartości dla wyszukiwarki, np. koszyka, panelu logowania, wyników wewnętrznej wyszukiwarki i kombinacji filtrów (zob. nawigacja fasetowa i crawl budget). Przykład: Disallow: /*?sort= blokuje adresy z parametrem sortowania. Zwykle dotyczy to dużych serwisów, a mała witryna rzadko potrzebuje blokad.
  • Blokowanie wybranych robotów: osobna grupa User-agent dla robota, którego nie chcesz, np. User-agent: GPTBot z Disallow: / blokuje robota OpenAI zbierającego dane. Google dla AI używa tokenu Google-Extended. Jego blokada nie wpływa na pozycje w wyszukiwarce, ale ogranicza wykorzystanie treści do trenowania i wspierania odpowiedzi Gemini. Pamiętaj, że roboty niezgodne z zasadami i tak mogą go ignorować.
  • Wskazanie mapy witryny: linia Sitemap: https://example.com/sitemap.xml (z pełnym adresem, najlepiej z https).
  • Blokowanie obrazów lub plików: Disallow: /*.jpg$ zablokuje przeszukiwanie plików JPG. Nie rób tego dla obrazów, które mają się pojawiać w wyszukiwarce grafiki.

Po zmianach sprawdź plik w Google Search Console (raport „robots.txt” w Ustawieniach) i narzędziem do sprawdzania adresów, czy ważne strony nie są zablokowane.

##[] ROBOTS.TXT – FAQ
Czy plik robots.txt jest obowiązkowy?

Nie. Gdy go nie ma, roboty mogą przeszukiwać całą witrynę. Zwykle warto go mieć, żeby wskazać mapę witryny i zablokować strony bez wartości dla wyszukiwarki.

Czy robots.txt chroni moje dane?

Nie. To publicznie dostępny plik z wskazówkami dla robotów, a część botów go ignoruje. Prywatne treści zabezpiecz hasłem lub logowaniem.

Gdzie powinien znajdować się plik robots.txt?

W katalogu głównym domeny, pod adresem https://twojadomena.pl/robots.txt. Każda subdomena potrzebuje własnego pliku.

Czy mogę zablokować dostęp wybranym robotom?

Tak. Dodaj grupę z nazwą robota, np. User-agent: GPTBot i Disallow: /. Zadziała tylko wobec robotów, które przestrzegają robots.txt.

Czy robots.txt usuwa stronę z wyników Google?

Nie. Blokuje przeszukiwanie, ale adres może pozostać w indeksie. Do usunięcia strony użyj tagu noindex i nie blokuj jej w robots.txt.

Implementacja paginacji – jak to zrobić w sposób przyjazny dla SEO? T11następna stacja