Robots.txt - jak kontrolować dostęp robotów do Twojej strony?
Czym jest robots.txt?
Robots.txt to prosty plik tekstowy umieszczony w katalogu głównym witryny, na przykład pod adresem https://critical.pl/robots.txt. Informuje roboty wyszukiwarek, które części serwisu mogą odwiedzać, a których powinny unikać. Plik działa w oparciu o Robots Exclusion Protocol, stosowany przez największe wyszukiwarki — Google, Bing, Yandex i Baidu.
Warto od razu wyjaśnić jedną rzecz: robots.txt to mechanizm oparty na zaufaniu. Roboty wyszukiwarek respektują jego dyrektywy, ale złośliwe boty mogą je całkowicie zignorować. Dlatego plik nie jest narzędziem bezpieczeństwa i nie powinien służyć do ukrywania wrażliwych danych.
Co więcej, próba ukrycia sekretu przez Disallow może go wręcz wyciągnąć na wierzch. Robots.txt jest publicznie dostępny, więc osoba sprawdzająca serwis od razu zobaczy wpisane tam ścieżki do paneli, kopii zapasowych albo katalogów technicznych — także takie, których bez tej podpowiedzi mogłaby nigdy nie znaleźć. Prywatne zasoby zabezpiecza się uwierzytelnieniem i kontrolą dostępu, a nie prośbą skierowaną do robota.
Składnia robots.txt - najważniejsze dyrektywy
Plik robots.txt składa się z zestawu reguł pogrupowanych pod nagłówkami User-agent. Oto podstawowa składnia:
|
|
Omówienie poszczególnych dyrektyw:
- User-agent - określa, do którego robota odnoszą się poniższe reguły. Gwiazdka (
*) oznacza wszystkie roboty. Można też wskazać konkretnego bota, np.GooglebotlubBingbot, - Disallow - blokuje dostęp do podanej ścieżki. Pusty
Disallow:oznacza brak blokad, - Allow - nadpisuje blokadę Disallow dla konkretnej podścieżki. Przydatne, gdy blokujesz cały katalog, ale chcesz udostępnić jego fragment,
- Sitemap - wskazuje lokalizację mapy witryny XML. Ta dyrektywa nie jest przypisana do żadnego User-agent i może pojawić się w dowolnym miejscu pliku.
Wzorce i znaki specjalne
Robots.txt obsługuje dwa znaki specjalne w ścieżkach:
*- dopasowuje dowolny ciąg znaków, np.Disallow: /*.pdf$zablokuje wszystkie pliki PDF,$- oznacza koniec adresu URL, np.Disallow: /katalog$zablokuje dokładnie/katalog, ale nie/katalog/produkt.
|
|
Powyższy przykład blokuje adresy URL z parametrami sortowania i identyfikatorami sesji, które generują duplikaty treści w sklepach internetowych.
Najczęstsze błędy w konfiguracji robots.txt
Blokowanie plików CSS i JavaScript
To jeden z najczęściej spotykanych problemów. Wiele starszych konfiguracji zawiera reguły blokujące katalogi /wp-content/, /themes/ lub /assets/, co uniemożliwia Googlebotowi renderowanie strony. Bez dostępu do CSS i JS Google widzi stronę inaczej niż użytkownik i może ocenić ją jako mniej wartościową.
Mylenie Disallow z noindex
To fundamentalne nieporozumienie. Dyrektywa Disallow mówi robotowi “nie wchodź na tę stronę” - ale nie mówi “nie indeksuj jej”. Jeśli inna strona linkuje do zablokowanego adresu, Google może go zaindeksować na podstawie samego linku - bez dostępu do treści. W wynikach wyszukiwania pojawi się wtedy wpis z komunikatem “Opis tej strony jest niedostępny z powodu pliku robots.txt”.
Jeśli chcesz usunąć stronę z indeksu, użyj meta tagu noindex lub nagłówka HTTP X-Robots-Tag. Robots.txt tego nie załatwi.
Jeżeli URL ma nadal istnieć, ale nie powinien pojawiać się w Google, zostaw Googlebotowi dostęp do strony, aby mógł odczytywać noindex. Jeśli zasób ma zniknąć całkowicie, usuń go i zwróć kod 404 lub 410 albo zabezpiecz dostęp uwierzytelnieniem. Nie dokładaj Disallow do działającej strony z noindex, bo robot przestanie widzieć dyrektywę, która ma ją trzymać poza indeksem.
Blokowanie całej witryny przez przypadek
Wystarczy jedna linijka, żeby zablokować dostęp do całego serwisu:
|
|
Tego typu konfiguracja jest czasem zostawiana po migracji ze środowiska testowego na produkcję. Warto sprawdzać robots.txt po każdym wdrożeniu.
Brak dyrektywy Sitemap
Choć nie jest to błąd krytyczny, pominięcie wskazania sitemapy XML w robots.txt to zmarnowana okazja. To stabilny sposób przekazania robotom adresu aktualnej mapy witryny.
Robots.txt na popularnych platformach e-commerce
WooCommerce (WordPress)
WordPress domyślnie generuje wirtualny robots.txt dostępny pod adresem /robots.txt. Możesz go nadpisać, tworząc fizyczny plik w katalogu głównym lub korzystając z wtyczki (np. Yoast SEO, Rank Math). Typowa konfiguracja dla WooCommerce powinna blokować strony koszyka, realizacji zamówienia i konta użytkownika:
|
|
Shopify
Shopify generuje robots.txt automatycznie i do niedawna nie pozwalało na jego edycję. Od 2021 roku można modyfikować ten plik przez szablon robots.txt.liquid w motywie. Domyślna konfiguracja Shopify blokuje m.in. strony koszyka, konta, checkout i wewnętrzne wyszukiwanie - i w większości przypadków jest wystarczająca.
PrestaShop
PrestaShop generuje robots.txt automatycznie z poziomu panelu administracyjnego (SEO & URLs > Generowanie pliku robots.txt). Plik ten blokuje katalogi modułów, klas i konfiguracji. Warto jednak zweryfikować wygenerowaną zawartość, bo w niektórych wersjach PrestaShop blokuje zbyt wiele ścieżek, w tym adresy istotne dla indeksacji.
Nie wiesz, które adresy warto zablokować dla robotów?
Sprawdzimy plik robots.txt, sitemapę i strukturę URL-i, a potem oddzielimy użyteczne blokady od reguł, które mogą odciąć Google od ważnych stron lub zasobów.
Jak sprawdzić poprawność robots.txt?
Google Search Console oferuje narzędzie do testowania robots.txt w sekcji “Ustawienia > robots.txt”. Możesz tam sprawdzić, czy konkretny URL jest zablokowany dla danego robota. Warto z niego korzystać po każdej zmianie konfiguracji.
Poza Google Search Console pomocne są także narzędzia takie jak Screaming Frog, Ahrefs i Semrush, które podczas audytu technicznego raportują problemy z robots.txt.
Jeśli chcesz szybko prześledzić konkretną regułę przed wdrożeniem, wklej plik poniżej. Inspektor działa lokalnie i nie pobiera ani robots.txt, ani testowanego adresu.
Analiza lokalna w przeglądarce
Sprawdź regułę w robots.txt
Wklej plik, podaj robota i URL, aby zobaczyć, która reguła rozstrzyga dostęp. Dane pozostają w Twojej przeglądarce.
Wynik analizy
Wymaga poprawy
Do weryfikacji
Sprawdzone pozytywnie
Czego ten test nie sprawdza
- nie pobiera produkcyjnego robots.txt ani testowanego URL-a, więc nie zna statusu HTTP, przekierowań ani wersji zapisanej w cache robota,
- odtwarza najważniejsze reguły dopasowania stosowane przez Google: grupy User-agent,
*, końcowe$, najdłuższy wzorzec i pierwszeństwoAllowprzy remisie, - inne crawlery mogą interpretować rozszerzenia lub niestandardowe dyrektywy inaczej; wynik potwierdź w narzędziu konkretnej wyszukiwarki,
Disallowsteruje pobieraniem, a nie gwarantuje usunięcia adresu z indeksu.
Najczęściej zadawane pytania
Czy robots.txt może zablokować indeksowanie strony?
noindex.