Słowo NAME wykonane z bloków budowlanych

Plik robots.txt — jak stworzyć i testować

9 min. czytania

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, Bingbot lub * 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:

  1. Przetestuj adresy, które powinny być dostępne (np. główne artykuły/produkty) i potwierdź status „Allowed”.
  2. Sprawdź ścieżki, które zamierzasz zablokować (np. /wp-admin/) i potwierdź „Disallowed”.
  3. Zweryfikuj reguły dla wielu botów (np. Googlebot vs GPTBot), jeśli definiujesz zasady specyficzne dla user‑agentów.
  4. Oceń raporty robots.txt w Google Search Console dla wszystkich hostów/subdomen i sprawdź, czy nie występują błędy parsowania.
  5. 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.