Plik robots.txt jest fundamentalnym elementem infrastruktury technicznej każdej witryny, odgrywając kluczową rolę w komunikacji między właścicielem strony a robotami wyszukiwarek.
Ten prosty plik tekstowy zawiera instrukcje dla crawlerów, określając, do których zasobów mogą uzyskać dostęp, a które powinni omijać. Prawidłowa konfiguracja robots.txt realnie wpływa na widoczność w wynikach wyszukiwania, optymalizację budżetu crawlowania i ogólną wydajność serwisu.
Niniejszy materiał wyjaśnia, czym jest robots.txt, jak go poprawnie wdrożyć, przetestować i zoptymalizować zgodnie z najlepszymi praktykami SEO.
Czym jest plik robots.txt i do czego służy
Plik robots.txt to zwykły plik tekstowy umieszczany w katalogu głównym hosta, który przekazuje robotom wyszukiwarek reguły dostępu do zasobów. Zgodnie z Robots Exclusion Protocol (REP) wskazuje on, które części witryny mogą być indeksowane, a które należy pominąć.
Ważne: robots.txt nie jest mechanizmem zabezpieczenia – to wyłącznie wskazówka. Roboty zwykle ją respektują, ale nie muszą.
Jego główne cele to: zarządzanie ruchem robotów na witrynie, zapobieganie przeciążeniu serwera oraz optymalizacja crawl budgetu (zasobów, jakie wyszukiwarki poświęcają na indeksowanie). W e‑commerce często blokuje on URL-e z parametrami filtrowania i sortowania; w blogach – archiwa, tagi lub wyniki wyszukiwania wewnętrznego.
Standard obowiązuje od 1994 roku i pozostaje aktualny, także w kontekście botów sztucznej inteligencji (np. GPTBot, ClaudeBot, PerplexityBot), którym można wskazać, czy treści mogą być wykorzystywane do trenowania modeli AI.
Lokalizacja i wymagania techniczne pliku robots.txt
Prawidłowa lokalizacja jest krytyczna – plik musi znajdować się w katalogu głównym hosta i być dostępny pod adresem w formacie: https://example.com/robots.txt.
Lokalizacja jest zależna od kombinacji hosta i protokołu (http/https, www/non‑www). Subdomeny wymagają własnych plików. Plik powinien być czystym tekstem w UTF-8 (bez BOM), a Google stosuje limit rozmiaru 500 KiB.
Najważniejsze wymagania techniczne, o których należy pamiętać:
- dokładna ścieżka – tylko katalog główny hosta (np. https://example.com/robots.txt), inne lokalizacje są ignorowane;
- warianty hosta i protokołu – http/https oraz www/non‑www traktowane są oddzielnie (każdy wariant może wymagać własnego pliku);
- subdomeny – każda subdomena (np. blog.example.com, shop.example.com) potrzebuje własnego robots.txt w swoim katalogu głównym;
- format i kodowanie – zwykły plik tekstowy, UTF‑8, bez BOM i bez HTML/CSS/JS wewnątrz;
- limit rozmiaru – maksymalnie 500 KiB, nadmiarowa treść po limicie jest ignorowana.
Składnia i dyrektywy pliku robots.txt
Plik składa się z bloków reguł. Każdy blok zaczyna się dyrektywą User-agent, po której mogą wystąpić Disallow i/lub Allow. Precyzja składni i ścieżek jest kluczowa dla prawidłowej interpretacji przez roboty.
Najważniejsze dyrektywy to:
- User-agent – określa, do którego robota odnoszą się reguły (np.
Googlebot,Bingbotlub*dla wszystkich); - Disallow – wskazuje ścieżki/zasoby niedostępne do crawlowania (np.
Disallow: /admin/lub konkretny plik); - Allow – dopuszcza wyjątki w zablokowanych katalogach (pozwala na dostęp do wskazanych plików lub podkatalogów);
- Sitemap – podaje lokalizację mapy witryny XML i może występować wielokrotnie.
Przykład zastosowania Allow w zablokowanym katalogu:
User-agent: *
Disallow: /prywatne/
Allow: /prywatne/publiczne.html
Przykład dyrektywy Sitemap (globalnej dla wszystkich botów):
Sitemap: https://www.example.com/sitemap.xml
Zaawansowane (nie zawsze obsługiwane) dyrektywy i wzorce:
- Crawl-delay – odstęp (w sekundach) między żądaniami bota do serwera (często ignorowany przez największe boty);
- Request-rate – liczba dokumentów na dany przedział czasu (np.
100/20m), stosowane m.in. przez Seznam; - clean-param – ignorowanie wskazanych parametrów URL (głównie Yandex);
- wildcard „*” – zastępuje dowolny ciąg znaków (np.
Disallow: /images/*); - znak „$” – dopasowanie końca ciągu (np.
Disallow: /*.pdf$).
Google i Bing stosują zasadę najdłuższego dopasowania – bardziej szczegółowa reguła (Allow/Disallow) ma pierwszeństwo. Ścieżki są wrażliwe na wielkość liter (np. /admin/ ≠ /Admin/).
Tworzenie i konfiguracja pliku robots.txt
Najszybsze rozwiązanie to ręczne utworzenie pliku w prostym edytorze (Notatnik, Sublime Text, VS Code), zapisanie jako robots.txt (małe litery, bez rozszerzeń dodatkowych) i umieszczenie w katalogu głównym hosta (FTP/SFTP lub menedżer plików).
W WordPress możesz wygodnie edytować robots.txt bez dostępu do serwera. Popularne narzędzia to:
- Yoast SEO – wbudowany edytor robots.txt oraz gotowe wskazówki i szablony;
- Rank Math – elastyczny edytor i integracje SEO, podpowiedzi reguł;
- All in One SEO – prosty dostęp do pliku i konfiguracji robots.txt;
- WP Robots Txt – dedykowana wtyczka dodająca edycję robots.txt w ustawieniach czytania.
Dla dużych ekosystemów (wiele domen/subdomen) rozważ scentralizowane zarządzanie i stały monitoring zmian (np. przez Google Search Console).
Minimalny plik dla witryny, w której wszystko ma być dostępne do indeksowania, może wyglądać tak:
User-agent: *
Disallow:
Sitemap: https://www.example.com/sitemap.xml
Przykład dla sklepu internetowego (blokady filtrów, sortowań i parametrów sesji, przy jednoczesnym dopuszczeniu produktów):
User-agent: *
Disallow: /search/
Disallow: /filter/
Disallow: /*?sessionid=
Allow: /products/
Sitemap: https://www.example.com/sitemap.xml
Przykład dla zasobów administracyjnych (z wyjątkiem konkretnego pliku publicznego):
User-agent: *
Disallow: /admin/
Disallow: /private/
Allow: /admin/public-info.html
Sitemap: https://www.example.com/sitemap.xml
Testowanie i walidacja pliku robots.txt
Testuj każdy robots.txt przed i po wdrożeniu, aby uniknąć przypadkowych blokad kluczowych treści. Skorzystaj z Google Search Console lub zewnętrznych walidatorów (test URL, sprawdzanie dopasowanej reguły, statusów HTTP sitemapy).
W praktyce przeprowadź następujące kroki:
- Przetestuj adresy, które powinny być dostępne (np. główne artykuły/produkty) i potwierdź status „Allowed”.
- Sprawdź ścieżki, które zamierzasz zablokować (np.
/wp-admin/) i potwierdź „Disallowed”. - Zweryfikuj reguły dla wielu botów (np.
GooglebotvsGPTBot), jeśli definiujesz zasady specyficzne dla user‑agentów. - Oceń raporty robots.txt w Google Search Console dla wszystkich hostów/subdomen i sprawdź, czy nie występują błędy parsowania.
- Po poprawkach wymuś ponowne pobranie robots.txt (cache zwykle do 24 h) i zweryfikuj efekt.
Typowe błędy i jak ich unikać
Nawet drobna literówka w robots.txt może wstrzymać indeksację setek stron. Poniżej lista najczęstszych pułapek:
- Disallow: / – przypadkowe zablokowanie całej witryny (często pozostawione po testach);
- blokowanie CSS/JS – ograniczenie dostępu do plików niezbędnych do renderowania i zrozumienia treści przez roboty;
- zbyt szerokie blokady parametrów – blokowanie wszystkich URL z „?” może odciąć wartościowe strony;
- zła lokalizacja pliku – umieszczenie poza katalogiem głównym hosta skutkuje całkowitym zignorowaniem pliku;
- brak regularnego testowania – nieuświadomione konflikty reguł i efekty zasady najdłuższego dopasowania;
- błędy składni – np. brak dwukropka w
Disallow, złe wielkości liter w dyrektywach lub ścieżkach; - brak aktualizacji po migracjach – stare reguły dla nieistniejących ścieżek lub brak reguł dla nowych struktur URL.
Robots.txt a alternatywne metody blokowania indeksowania
Różne techniki spełniają różne cele. Robots.txt zarządza crawlowaniem, meta noindex wpływa na indeksację, a rel="nofollow" kontroluje przepływ sygnałów przez linki. Dodatkowo rzeczywistą ochronę zapewnia wyłącznie warstwa serwera (hasło/IP).
Najważniejsze różnice prezentuje poniższe zestawienie:
| Metoda | Poziom kontroli | Czy wymaga dostępu do treści | Główne zastosowanie | Ryzyko/ograniczenie |
|---|---|---|---|---|
| robots.txt | crawlowanie (odczyt zasobów) | Nie | sterowanie ruchem botów, optymalizacja crawl budgetu | nie jest mechanizmem bezpieczeństwa; część botów może zignorować |
| Meta noindex | indeksowanie (poziom strony) | Tak | usunięcie/wykluczenie URL z indeksu | wymaga możliwości odczytu HTML; nie chroni treści |
| rel=”nofollow” | linki (przepływ sygnałów) | Tak (dla strony źródłowej) | linki płatne, UGC, ograniczenie przekazywania autorytetu | nie blokuje crawlowania ani indeksacji sam w sobie |
| Hasłowanie/ochrona serwera | dostęp (bezpieczeństwo) | Tak (uwierzytelnienie) | ochrona danych wrażliwych, paneli admina | wymaga konfiguracji serwera i zarządzania dostępem |
Przykładowa składnia meta tagów:
<meta name="robots" content="noindex">
<meta name="googlebot" content="noindex">
<a href="https://external-site.com" rel="nofollow">Link z nofollow</a>
<meta name="robots" content="noindex, nofollow">
Crawl budget i znaczenie pliku robots.txt dla SEO
Crawl budget to ilość zasobów (czas, zapytania), jakie Google przeznacza na Twoją witrynę. W uproszczeniu: crawl budget = crawl rate + crawl demand.
Prawidłowa konfiguracja robots.txt pozwala skierować budżet indeksowania na strony o najwyższej wartości SEO.
Praktyki, które najczęściej przynoszą najlepsze efekty:
- blokowanie stron niskiej wartości – wyniki wyszukiwania wewnętrznego, filtry bez unikalnej treści, archiwa czasowe;
- precyzyjna kontrola parametrów – blokowanie technicznych parametrów (np. sesji, śledzących), a nie wszystkich zapytań z „?”;
- wskazanie sitemapy – ułatwia szybkie znalezienie ważnych adresów do indeksowania;
- poprawa wydajności – szybsze serwery/strony umożliwiają większą liczbę pobrań w tym samym czasie;
- spójna architektura informacji – ważne strony dostępne w niewielu kliknięciach z głównych sekcji.
Zaawansowane implementacje i przypadki użycia
Dla witryn wielojęzycznych możesz dodać wiele pozycji Sitemap kierujących do map dla języków/regionów:
User-agent: *
Disallow:
Sitemap: https://example.com/sitemap-en.xml
Sitemap: https://example.com/sitemap-fr.xml
Sitemap: https://example.com/sitemap-de.xml
Dla wielu subdomen każda instancja (np. blog.example.com, shop.example.com) musi mieć własny robots.txt z dostosowanymi regułami.
W kontekście botów AI możesz zablokować pobieranie treści do trenowania modeli, pozostawiając dostęp SEO dla Googlebota:
User-agent: GPTBot
Disallow: /
User-agent: ClaudeBot
Disallow: /
User-agent: PerplexityBot
Disallow: /
Pozostaw jednocześnie pełny dostęp dla Googlebota, a zablokuj Google‑Extended (używany do trenowania):
User-agent: Googlebot
Allow: /
User-agent: Google-Extended
Disallow: /
Dodatkowo usługi typu CDN/WAF (np. Cloudflare) mogą wspierać „managed robots.txt”, automatycznie aktualizując reguły wobec nowych botów – to wygodne uzupełnienie ręcznego zarządzania.






