Jak działa robots txt na stronie – kompletny przewodnik po składni i wdrożeniu
Zrozumienie, jak działa robots txt na stronie, zaczyna się od jednego faktu: to zwykły plik tekstowy zapisany w katalogu głównym domeny, który podpowiada robotom wyszukiwarek, których adresów nie powinny pobierać. Mechanizm tego, jak działa robots txt na stronie, opiera się na protokole Robots Exclusion Protocol, ustandaryzowanym jako RFC 9309, i ma charakter dobrowolny: Googlebot, Bingbot czy AhrefsBot go respektują, natomiast skanery szukające luk bezpieczeństwa zwykle go ignorują. Plik waży zazwyczaj kilkaset bajtów, a mimo to potrafi wyciąć z indeksu tysiące podstron sklepu albo, przy jednej literówce, całą witrynę. Serwis o ruchu 50 000 wizyt miesięcznie traci wtedy w praktyce cały ruch organiczny w ciągu dwóch, trzech tygodni. Dlatego edycja tego pliku wymaga tej samej ostrożności co zmiana rekordów DNS albo migracja serwera. Poniżej znajdziesz pełen opis składni, przykłady wdrożeń i listę błędów, które najczęściej kosztują widoczność.
Czym jest plik robots.txt i gdzie dokładnie go umieścić
Robot wyszukiwarki przed pobraniem jakiegokolwiek zasobu odpytuje adres twojadomena.pl/robots.txt. Plik musi znajdować się w katalogu głównym — wersja w /blog/robots.txt czy /wp-content/robots.txt jest całkowicie ignorowana. Odpowiedź serwera powinna mieć kod 200 i typ text/plain, a rozmiar nie może przekraczać 500 KiB, bo Google ucina nadmiarową resztę treści.
Każda subdomena to osobny host, więc sklep.4www.pl potrzebuje własnego pliku, niezależnego od tego z domeny głównej. Jeśli subdomena wskazuje na zewnętrzną usługę, przyda się wiedza, co to jest rekord CNAME — alias kierujący ruch pod inny adres — bo wtedy robots.txt serwuje dostawca platformy, a nie twój serwer.
Ta sama zasada dotyczy protokołu i portu: http://domena.pl i https://domena.pl to formalnie dwa różne hosty. Przy poprawnym przekierowaniu całego ruchu na HTTPS problem znika, ale w konfiguracjach hybrydowych zdarza się, że wersja szyfrowana zwraca zupełnie inny zestaw reguł niż nieszyfrowana, co prowadzi do trudnych do wykrycia rozbieżności.
Do edycji wystarczy klient FTP, menedżer plików w panelu hostingu albo wtyczka SEO w WordPressie, która generuje plik wirtualnie. Ten ostatni wariant bywa mylący: fizycznego pliku nie ma na dysku, a treść powstaje dynamicznie przy każdym żądaniu, więc zmiana motywu lub konfiguracji potrafi ją nadpisać bez ostrzeżenia.
Składnia robots.txt — dyrektywy, które faktycznie działają
Zrozumienie, jak działa robots txt na stronie, wymaga znajomości kilku dyrektyw. Struktura pliku opiera się na blokach: każdy zaczyna się od linii User-agent określającej robota, po niej następują reguły Disallow i Allow. Robot wybiera tylko jeden blok, ten najdokładniej pasujący do własnej nazwy, a pozostałe pomija.
Zapis Disallow: /koszyk/ blokuje cały katalog, Disallow: / zamyka witrynę w całości, a pusty Disallow: nie blokuje niczego. Dyrektywa Allow służy do robienia wyjątków wewnątrz zablokowanej ścieżki, na przykład Allow: /wp-admin/admin-ajax.php przy zamkniętym katalogu panelu administracyjnego WordPressa, który obsługuje żądania asynchroniczne motywu.
Na końcu pliku umieszcza się bezwzględny adres mapy witryny: Sitemap: https://domena.pl/sitemap_index.xml. Ta linia jest niezależna od bloków User-agent i czytają ją wszystkie wyszukiwarki. Dyrektywa Crawl-delay bywa respektowana przez Bing i Yandex, natomiast Googlebot ignoruje ją od lat — tempo skanowania reguluje się po stronie Search Console.
Wildcardy, znak dolara i kolejność reguł
Gwiazdka zastępuje dowolny ciąg znaków, a dolar oznacza koniec adresu. Disallow: /*?filtr= wytnie wszystkie warianty filtrowania w sklepie, a Disallow: /*.pdf$ zablokuje wyłącznie pliki PDF. Przy konflikcie wygrywa reguła o dłuższym dopasowaniu, nie ta zapisana wyżej — to odwrotność logiki znanej z pliku .htaccess.
Ścieżki są wrażliwe na wielkość liter, więc /Produkty/ i /produkty/ to dwa różne wzorce. Komentarze zaczynają się od znaku #, a każda dyrektywa musi zajmować osobną linię. Plik zapisuj w kodowaniu UTF-8 bez znacznika BOM, bo niewidoczne bajty na początku potrafią unieważnić pierwszą regułę w pliku.
Czego robots.txt nie potrafi — blokada skanowania to nie deindeksacja
Najkosztowniejsze nieporozumienie brzmi: zablokowałem katalog, więc zniknie z Google. Nie zniknie. Disallow zabrania pobrania treści, ale nie zabrania wyświetlenia samego adresu w wynikach. Jeśli inne witryny linkują do zablokowanego URL-a, pojawi się on w SERP-ach z komunikatem o braku dostępnego opisu strony.
Do usunięcia strony z indeksu służy znacznik meta robots noindex albo nagłówek HTTP X-Robots-Tag. Tu pojawia się pułapka: robot musi wejść na stronę, żeby zobaczyć noindex. Jeśli równocześnie zablokujesz ją w robots.txt, nigdy tej instrukcji nie odczyta, a adres zostanie w wynikach wyszukiwania na stałe.
Podobnie wygląda to przy przenosinach treści. Kiedy sprawdzasz, jak ustawić przekierowanie 301 w htaccess dla starych adresów, pamiętaj, że zablokowanie tych adresów w robots.txt uniemożliwi robotowi zobaczenie przekierowania. Efekt jest podwójnie niekorzystny: moc linków nie przepłynie na nowy URL, a stara wersja utrzyma się tygodniami.
Plik nie jest też narzędziem bezpieczeństwa. Wpis Disallow: /panel-ksiegowosc/ to publiczna informacja o istnieniu takiego katalogu, bo każdy może otworzyć robots.txt w przeglądarce. Wrażliwe zasoby zabezpiecza się hasłem na poziomie serwera, autoryzacją HTTP lub ograniczeniem dostępu do wskazanych adresów IP.
Wdrożenie pliku na różnych typach serwerów
Sposób publikacji zależy od środowiska. Zastanawiając się, jak wybrać hosting pod WordPress, sprawdź, czy panel daje dostęp do katalogu public_html przez SFTP i czy nie nadpisuje plików systemowych przy aktualizacjach. Pakiety w polskich firmach kosztują zwykle od 60 do 250 zł rocznie za jedną domenę.

Hosting współdzielony, VPS i migracja witryny
Różnica bywa istotna. Pytanie, czym różni się VPS od hostingu współdzielonego, sprowadza się do zakresu kontroli: na współdzielonym masz katalog i panel, na VPS-ie pełny dostęp do konfiguracji Nginx czy Apache. Cena maszyny z 4 GB RAM to zazwyczaj 40–90 zł miesięcznie.
Na Nginksie robots.txt można serwować bez fizycznego pliku, blokiem location = /robots.txt z dyrektywą return 200. Rozwiązanie jest wygodne przy wielu domenach na jednej maszynie, ale łatwo o nim zapomnieć — wgrany później plik na dysku nie zadziała, bo konfiguracja serwera ma pierwszeństwo przed zawartością katalogu.
Planując, jak przenieść stronę na inny hosting, przygotuj osobne wersje pliku dla środowiska testowego i produkcyjnego. Kopia deweloperska powinna mieć pełną blokadę, ale wgranie jej na produkcję po migracji to klasyka gatunku — właśnie w ten sposób witryny znikają z Google po pozornie udanej przeprowadzce.
Reguły warto uzgodnić z resztą konfiguracji. Podczas prac nad tym, jak zainstalować certyfikat SSL na serwerze, upewnij się, że po przejściu na HTTPS plik pozostaje osiągalny pod nowym protokołem. Darmowy certyfikat SSL Let’s Encrypt odnawia się co 90 dni i przy błędnej automatyzacji potrafi chwilowo zwrócić błąd, co dla robota oznacza brak dostępu do reguł.
Nie pomijaj warstwy domenowej. Jeśli sprawdzasz, jak skonfigurować rekordy DNS domeny po zmianie serwera, licz się z propagacją trwającą od kilkunastu minut do 24 godzin — w tym czasie część robotów widzi jeszcze stary adres IP i pobiera nieaktualną wersję pliku z poprzedniej maszyny.
Testowanie, monitoring i najczęstsze błędy
Publikacja pliku to połowa pracy; drugą jest weryfikacja tego, jak działa robots txt na stronie w realnych warunkach. Otwórz adres w trybie incognito i porównaj treść z raportem ustawień w Google Search Console. Tester pokaże, którą regułę robot zastosował do konkretnego adresu.
Trzy pomyłki powtarzają się najczęściej: pozostawiony Disallow: / po wdrożeniu, blokada katalogów z plikami CSS i JavaScript oraz literówka w nazwie robota. Zablokowane zasoby statyczne uniemożliwiają poprawne renderowanie strony, przez co algorytm ocenia układ jako niedziałający na urządzeniach mobilnych i obniża ocenę.
| Błąd w pliku | Skutek dla witryny | Poprawka |
|---|---|---|
| Disallow: / na produkcji | Spadek widoczności niemal do zera w 2–3 tygodnie | Usunięcie ukośnika i zgłoszenie pliku w Search Console |
| Blokada katalogu /wp-content/ | Google nie renderuje CSS i JS, błędy mobilne | Odblokowanie katalogu, blokada wyłącznie /wp-admin/ |
| Brak wpisu Sitemap | Wolniejsze wykrywanie nowych podstron | Dodanie pełnego adresu mapy witryny na końcu pliku |
| Disallow zamiast noindex | Adresy zostają w indeksie bez opisu | Odblokowanie ścieżki i znacznik meta robots noindex |
| Plik zwracający kod 5xx | Wstrzymanie skanowania całej domeny | Naprawa serwera i monitoring dostępności zasobu |
Monitoring domeny jest równie ważny co monitoring samego pliku. Kiedy weryfikujesz, jak sprawdzić kto jest właścicielem domeny, korzystasz z bazy WHOIS — ta sama baza pokaże datę wygaśnięcia rejestracji. Wygasła domena zwraca błędy DNS, a robots.txt przestaje istnieć razem z całą witryną.
Odzyskanie bywa kosztowne. Procedura tego, jak przedłużyć domenę po wygaśnięciu, przewiduje zwykle 30 dni okresu łaski w standardowej cenie, a potem około 60 dni wykupu za 200–400 zł. Ustawienie autoodnawiania i alertu w kalendarzu kosztuje zero złotych i całkowicie eliminuje ten scenariusz.
Zdarza się, że plik wygląda poprawnie, a narzędzie i tak zgłasza brak dostępu. Zanim obwinisz serwer, zweryfikuj własne łącze: metodyka tego, jak sprawdzić prędkość internetu rzetelnie, zakłada test przewodowy, wyłączone pobieranie w tle i kilka pomiarów o różnych porach doby.
Diagnostyka domowa ma tu drugie dno. Rady dotyczące tego, jak wzmocnić sygnał WiFi w domu — przeniesienie routera na środek mieszkania, zmiana kanału, przejście na pasmo 5 GHz — bywają potrzebne, zanim uznasz, że crawler desktopowy nie pobiera pliku z winy hostingu.
Jak sprawdzić, czy robots.txt na mojej stronie działa poprawnie?
Zacznij od otwarcia adresu twojadomena.pl/robots.txt w trybie incognito — serwer musi zwrócić kod 200 i czysty tekst, bez kodu HTML strony błędu. Następnie użyj testera w Google Search Console: wklej konkretny URL i sprawdź, która reguła go dotyczy. Trzeci krok to raport indeksowania stron, gdzie pozycja o wykluczeniu przez robots.txt pokazuje realną skalę blokad. Jeśli liczba rośnie tuż po wdrożeniu, reguła jest zbyt szeroka. Przeskanuj też witrynę crawlerem desktopowym symulującym Googlebota — pokaże, jak działa robots txt na stronie w praktyce, adres po adresie, łącznie z zasobami CSS i JavaScript.
Czy brak pliku robots.txt szkodzi pozycjom w wyszukiwarce?
Brak pliku nie jest błędem krytycznym. Serwer zwraca wtedy kod 404, a robot przyjmuje, że może skanować wszystko, więc witryna będzie indeksowana normalnie. Problem pojawia się przy większych serwisach, gdzie bez wykluczeń crawler marnuje budżet indeksowania na wyniki wyszukiwania wewnętrznego, kombinacje filtrów sklepowych czy koszyk. Przy kilku tysiącach podstron oznacza to wolniejsze wykrywanie nowych treści i opóźnione aktualizacje w indeksie. Znacznie gorszym scenariuszem jest plik zwracający kod 5xx: Google traktuje go jako tymczasowy zakaz skanowania całej domeny i wstrzymuje pobieranie. Pusty plik z jedną linią Sitemap jest więc bezpieczniejszy niż plik niedostępny z powodu awarii serwera.
Co zrobić, gdy Google indeksuje adresy zablokowane w robots.txt?
Najpierw ustal, skąd bierze się ten adres. Jeśli prowadzą do niego linki zewnętrzne, Google może go wyświetlić mimo blokady, ponieważ Disallow dotyczy pobierania treści, a nie prezentacji URL-a w wynikach. Rozwiązanie jest kontrintuicyjne: usuń regułę blokującą, pozwól robotowi wejść na stronę i dodaj tam znacznik meta robots noindex albo nagłówek X-Robots-Tag. Po deindeksacji, która zajmuje zwykle od dwóch do sześciu tygodni, możesz przywrócić blokadę skanowania. Gdy sprawa jest pilna, skorzystaj z narzędzia usuwania adresów w Search Console — ukrywa wynik na około pół roku, co daje czas na wdrożenie trwałej poprawki.
