Robots.txt
Co naprawdę robi robots.txt — kontroluje pobieranie, a nie indeksowanie — oraz dokładna składnia, sposób obsługi przez Google i błędy, które mogą zaszkodzić witrynie.
Języki
1 sygnał dowodowy na tej stronie
- Powiązane działające narzędzierobots.txt Tester
Robots.txt to zwykły plik tekstowy w katalogu głównym każdego hosta, który wskazuje robotom, jakie adresy URL mogą pobierać. Kontroluje pobieranie, a nie indeksowanie: zablokowany adres nadal może znaleźć się w indeksie bez opisu. Do usunięcia strony z indeksu służy noindex, a strona nie może być wtedy zablokowana w robots.txt. Google obsługuje user-agent, allow, disallow i sitemap; plik ma limit 500 KiB, jest zwykle buforowany około 24 godzin, odpowiedź 4xx zwykle oznacza brak ograniczeń, a błędy 5xx mogą zatrzymać pobieranie całej witryny. Plik jest publiczny i nie chroni poufnych treści.
TL;DR — Robots.txt to plik tekstowy w katalogu głównym witryny, który wskazuje robotom, jakie adresy URL mogą pobierać. Kontroluje pobieranie, a nie indeksowanie. Zablokowana strona może nadal pojawić się w Google bez opisu. Aby usunąć ją z indeksu, użyj
noindexi nie blokuj jej w robots.txt, bo Google nie odczyta dyrektywy.
Czym jest plik robots.txt
Gdy wyszukiwarka chce pobrać witrynę, najpierw szuka pliku https://yourdomain.com/robots.txt. To lista instrukcji określających, które części serwisu robot może pobierać. Plik jest zwykłym tekstem; można go odczytać, dopisując /robots.txt do domeny.
Minimalny plik wygląda tak:
Evidence for this claim Cloudflare Radar summarizes which AI user-agent names were observed in robots.txt files during the 28 days ending 2026-07-30. Scope: A dated Cloudflare Radar context chart describing observed robots.txt patterns; it is not a recommendation or a site-specific policy measurement. Confidence: high · Verified: Cloudflare Radar: AI user agents found in robots.txtThe chart summarizes which AI user-agent names Cloudflare observed in robots.txt files during the selected four-week period.
User-agent: *
Disallow: /admin/
Sitemap: https://yourdomain.com/sitemap.xmlOznacza to: każdy robocie (*), nie pobieraj niczego spod /admin/; mapa witryny znajduje się pod wskazanym adresem.
Najważniejsze rozróżnienie: blokowanie ≠ usuwanie
To najczęstszy błąd w SEO: robots.txt uniemożliwia pobranie strony, a nie jej zindeksowanie. Evidence for this claim A robots.txt rule controls crawling rather than guaranteeing removal from Google Search; a URL can still appear when Google cannot crawl it. Scope: Google Search crawler behavior. Other crawlers can interpret robots.txt differently. Confidence: high · Verified: Google: Introduction to robots.txt
Pobieranie oznacza odwiedzenie i odczytanie strony przez wyszukiwarkę. Indeksowanie to decyzja o zapisaniu jej i wyświetlaniu w wynikach. Robots.txt blokuje tylko pierwszy krok.
Jeśli zablokujesz stronę w robots.txt, Google jej nie pobierze. Gdy jednak inne strony prowadzą do tego adresu, Google może zindeksować sam URL i pokazać go bez opisu, ponieważ nie mógł odczytać treści.
Jeśli chcesz usunąć stronę z Google, robots.txt jest niewłaściwym narzędziem. Użyj noindex w metatagu lub nagłówku HTTP. Noindex działa tylko wtedy, gdy Google może pobrać stronę. Połączenie blokady robots.txt z noindex sprawia, że Google nie zobaczy dyrektywy, a adres może pozostać w indeksie. Wybierz ograniczenie pobierania albo indeksowania, nie oba naraz. Evidence for this claim Google must be able to crawl a URL to see a noindex rule; blocking the URL in robots.txt can prevent the rule from being observed. Scope: Google Search indexing controls for HTML meta robots and X-Robots-Tag rules. Confidence: high · Verified: Google: Block indexing with noindex
Właściwe narzędzie do każdego zadania
- „Nie zużywaj zasobów na pobieranie tego adresu”. →
Disallowwrobots.txt. - „Nie umieszczaj tego adresu w indeksie Google”. →
noindexbez blokady robots.txt. - „Nikt nie powinien widzieć tej treści”. → hasło lub logowanie. Robots.txt jest publiczny; wpisanie
/secret/tylko ujawnia istnienie katalogu.
Reguły, które często powodują problemy
- Jeden plik na host.
https://example.com,https://www.example.comihttps://blog.example.comwymagają osobnych plików. - Plik leży w katalogu głównym. Musi być dostępny dokładnie pod
/robots.txt, małymi literami; plik w podkatalogu nie działa. - Nie blokuj CSS ani JavaScriptu. Google potrzebuje tych zasobów, aby zobaczyć stronę tak jak użytkownik.
Pełny opis składni — symbole wieloznaczne, dopasowanie Allow i Disallow, obsługa odpowiedzi 404 i błędów serwera, crawl-delay oraz roboty AI — znajduje się na karcie Advanced.
TL;DR — Robots.txt to zwykły plik tekstowy w katalogu głównym każdego hosta (
/robots.txt, małymi literami), zgodny z protokołem Robots Exclusion Protocol (RFC 9309). Kontroluje pobieranie, nie indeksowanie. Google obsługuje tylkouser-agent,allow,disallowisitemap. Zakres obejmuje jeden host, protokół i port. Wygrywa najdłuższa, najbardziej szczegółowa reguła, a przy remisie najmniej restrykcyjna;*i$są symbolami wieloznacznymi, a wielkość liter w ścieżkach ma znaczenie. Limit Google wynosi 500 KiB, pamięć podręczna zwykle działa około 24 godzin, 4xx poza 429 oznacza brak ograniczeń, a 5xx wstrzymuje pobieranie na około 12 godzin i uruchamia ostatnią poprawną kopię na około 30 dni. Nie blokuj CSS/JS potrzebnych do renderowania i nie traktuj publicznego pliku jako kontroli dostępu.
Czym jest robots.txt i gdzie się znajduje
Robots.txt realizuje Robots Exclusion Protocol, utworzony przez Martijna Kostera w 1994 r. i ustandaryzowany w 2022 r. jako RFC 9309, którego współautorami są Gary Illyes, Henner Zeller, Lizzi Sassman i Koster. “This document specifies and extends the ‘Robots Exclusion Protocol’ method originally defined by Martijn Koster in 1994 for service owners to control how content served by their services may be accessed, if at all, by automatic clients known as crawlers.” (tłumaczenie) „Dokument określa i rozszerza metodę Robots Exclusion Protocol zdefiniowaną pierwotnie przez Martijna Kostera w 1994 r., aby właściciele usług mogli kontrolować dostęp robotów do udostępnianych treści”.
Kilka ważnych faktów:
- Plik musi znajdować się w katalogu głównym i mieć nazwę zapisaną małymi literami. “The rules MUST be accessible in a file named ‘/robots.txt’ (all lowercase) in the top-level path of the service.” (tłumaczenie) „Reguły MUSZĄ być dostępne w pliku
/robots.txtzapisanym małymi literami w głównej ścieżce usługi”. Sam adres URL rozróżnia wielkość liter. - Zakres to jeden host, protokół i port. “The rules listed in the robots.txt file apply only to the host, protocol, and port number where the robots.txt file is hosted.” (tłumaczenie) „Reguły dotyczą wyłącznie hosta, protokołu i portu, na których udostępniono plik”. Dlatego
https://example.com,https://www.example.com,https://blog.example.comihttp://example.comwymagają osobnych plików. - Google obsługuje protokoły HTTP, HTTPS i FTP.
Podstawowe nieporozumienie: pobieranie a indeksowanie
Najważniejsza zasada brzmi: robots.txt kontroluje pobieranie, nie indeksowanie. Zablokowanie adresu URL nie usuwa go z Google. Evidence for this claim A robots.txt rule controls crawling rather than guaranteeing removal from Google Search; a URL can still appear when Google cannot crawl it. Scope: Google Search crawler behavior. Other crawlers can interpret robots.txt differently. Confidence: high · Verified: Google: Introduction to robots.txt
Dokumentacja Google mówi wprost, że robots.txt “is not a mechanism for keeping a web page out of Google. To keep a web page out of Google, block indexing with noindex or password-protect the page.” (tłumaczenie) „nie służy do usuwania strony z Google; użyj noindex lub ochrony hasłem”. Google dodaje: “While Google won’t crawl or index the content blocked by a robots.txt file, we might still find and index a disallowed URL if it is linked from other places on the web.” (tłumaczenie) „Google może znaleźć i zindeksować niedozwolony adres, jeśli prowadzą do niego odnośniki”. Wtedy “its URL can still appear in search results, but the search result won’t have a description.” (tłumaczenie) „adres może pojawić się w wynikach, ale bez opisu”. Evidence for this claim Robots.txt controls crawler access, not index eligibility; Google may still index a disallowed URL discovered through links, typically without a content snippet. Scope: web crawling Confidence: high · Verified: Robots.txt Introduction and Guide
Specyfikacja ujmuje to podobnie: “Google can’t index the content of pages which are disallowed for crawling, but it may still index the URL and show it in search results without a snippet.” (tłumaczenie) „Google nie zindeksuje treści strony niedozwolonej do pobrania, ale może zindeksować jej adres i wyświetlić go bez fragmentu”.
Dlaczego NIE wolno blokować strony przeznaczonej do noindex
noindex działa tylko wtedy, gdy Google może pobrać stronę i odczytać dyrektywę; dokumentacja Google opisuje tę zależność tak: “For the noindex rule to be effective, the page or resource must not be blocked by a robots.txt file, and it has to be otherwise accessible to the crawler. If the page is blocked by a robots.txt file or the crawler can’t access the page, the crawler will never see the noindex rule, and the page can still appear in search results, for example if other pages link to it.” (tłumaczenie) „Reguła noindex wymaga, aby robots.txt nie blokował zasobu i aby robot mógł go odczytać; inaczej adres może nadal występować w wynikach”. Evidence for this claim Google must be able to crawl a URL to see a noindex rule; blocking the URL in robots.txt can prevent the rule from being observed. Scope: Google Search indexing controls for HTML meta robots and X-Robots-Tag rules. Confidence: high · Verified: Google: Block indexing with noindex
Jeśli chcesz usunąć stronę z indeksu, zapamiętaj radę Johna Muellera: nie blokuj Google w robots.txt; użyj noindex.
Dowód z praktyki: zablokowałem dwie wysoko notowane strony
W eksperymencie z dwiema wysoko notowanymi stronami Ahrefs celowo zablokowałem je w robots.txt. Pozostały w indeksie i nadal zajmowały pozycje, lecz Google nie mógł odświeżać ich treści. “We lost a position here or there and all of the featured snippets for the pages.” (tłumaczenie) „Utraciliśmy część pozycji oraz wszystkie wyróżnione fragmenty tych stron”. Ruch spadł mniej, niż oczekiwałem: “Both pages lost some traffic. But it didn’t result in much change to our traffic estimate like I was expecting.” (tłumaczenie) „Ruch obu stron zmalał, lecz szacunek ruchu zmienił się mniej, niż zakładałem”.
Wniosek: “Accidentally blocking pages (that Google already ranks) from being crawled using robots.txt probably isn’t going to have much impact on your rankings, and they will likely still show in the search results.” (tłumaczenie) „Przypadkowa blokada stron, które już zajmują pozycje, prawdopodobnie nie wpłynie mocno na ranking i nadal będą widoczne”. Krócej: “Don’t block pages you want indexed. It hurts. Not as bad as you might think it does—but it still hurts.” (tłumaczenie) „Nie blokuj stron, które chcesz indeksować. To szkodzi, choć mniej, niż można sądzić”.
Ostrzeżenie Search Console “Indexed, though blocked by robots.txt” (tłumaczenie) „Zindeksowano mimo blokady w robots.txt” dla koszyka, filtrów lub adresów z parametrami zwykle nie jest problemem. Ma znaczenie dopiero wtedy, gdy zablokowany adres powinien być pobierany i indeksowany.
Składnia — pełne odniesienie
Robots.txt składa się z grup. Każda zaczyna się od co najmniej jednego wiersza User-agent, który wskazuje roboty, a następnie zawiera ich reguły.
User-agent: *
Disallow: /cart/
Disallow: /search
Allow: /search/help
User-agent: Googlebot
Disallow: /no-google/
Sitemap: https://example.com/sitemap.xmlUser-agent i grupy. Robot stosuje dokładnie jedną grupę — najbardziej szczegółową, która pasuje do jego nazwy — i ignoruje pozostałe. “Google’s crawlers determine the correct group of rules by finding in the robots.txt file the group with the most specific user agent that matches the crawler’s user agent. Other groups are ignored.” (tłumaczenie) „Roboty Google wybierają grupę z najbardziej szczegółowym pasującym user-agentem; pozostałe grupy są ignorowane”. “Only one group is valid for a particular crawler.” (tłumaczenie) „Dla danego robota obowiązuje tylko jedna grupa”. Bing działa tak samo.
Grupa szczegółowa nie dziedziczy reguł z User-agent: *. Google stwierdza: “user agent specific groups and global groups (*) are not combined.” (tłumaczenie) „Grupy dla konkretnych robotów nie są łączone z grupą globalną”. Grupa User-agent: googlebot-news musi więc powtarzać wszystkie potrzebne reguły. Evidence for this claim For Google's crawlers, the most specific matching user-agent group applies; rules from that specific group are not combined with the global asterisk group, although multiple matching specific groups are merged internally. Scope: robots.txt parsing and fetching Confidence: high · Verified: How Google Interprets the robots.txt Specification
Disallow i Allow. Disallow wskazuje ścieżki, których robot nie może pobierać; Allow tworzy wyjątki. “specifies paths that must not be accessed by the crawlers identified by the user-agent line the disallow rule is grouped with.” (tłumaczenie) „określa ścieżki niedostępne dla robotów wskazanych przez user-agent”. Allow “specifies paths that may be accessed by the designated crawlers. When no path is specified, the rule is ignored.” (tłumaczenie) „określa dozwolone ścieżki; reguła bez ścieżki jest ignorowana”.
Reguła dopasowania. Przy konflikcie wygrywa reguła najbardziej szczegółowa, czyli z najdłuższą ścieżką. “When matching robots.txt rules to URLs, crawlers use the most specific rule based on the length of the rule path. In case of conflicting rules, including those with wildcards, Google uses the least restrictive rule.” (tłumaczenie) „Roboty wybierają najdłuższą ścieżkę, a przy konflikcie regułę najmniej restrykcyjną”. Przy remisie Allow wygrywa z Disallow. RFC 9309: “The following example shows that in the case of two rules, the longest one is used for matching.” (tłumaczenie) „Przy dwóch regułach do dopasowania używa się dłuższej”. Evidence for this claim Google resolves matching robots.txt rules by path specificity and uses the least restrictive rule when equally specific rules conflict. Scope: Google crawler interpretation of robots.txt rules; other crawlers may implement different extensions. Confidence: high · Verified: Google: Robots.txt interpretation
Przykład:
User-agent: *
Allow: /folder/page
Disallow: /folder/Adres /folder/page pasuje do obu reguł. Allow: /folder/page ma 12 znaków, a Disallow: /folder/ osiem, więc dłuższa i bardziej szczegółowa reguła Allow wygrywa; stronę można pobrać.
Symbole * i $. “* designates 0 or more instances of any valid character. $ designates the end of the URL.” (tłumaczenie) „Gwiazdka zastępuje dowolną liczbę znaków, a znak dolara wskazuje koniec adresu”. Disallow: /*.pdf$ blokuje adresy zakończone .pdf, a Disallow: /*? adresy z zapytaniem. Disallow: /fish pasuje do /fish, /fish.html i /fish/salmon.html, ale nie do /Fish ani /catfish.
Wielkość liter. Nazwy pól i robotów jej nie rozróżniają, ale wartości ścieżek tak. “Both the user-agent field name and its value are case-insensitive,” (tłumaczenie) „Nazwa i wartość pola user-agent nie rozróżniają wielkości liter”, natomiast “The field name (disallow) is case-insensitive, but its value is case-sensitive,” (tłumaczenie) „nazwa pola disallow nie rozróżnia wielkości liter, ale jego wartość tak” i “The path value must start with / to designate the root and the value is case-sensitive.” (tłumaczenie) „Ścieżka musi zaczynać się od / i rozróżnia wielkość liter”. Disallow: /Folder/ nie blokuje /folder/.
Sitemap. Dyrektywa Sitemap: przyjmuje pełny bezwzględny adres URL i nie należy do żadnej grupy, więc może znajdować się w dowolnym miejscu pliku.
Komentarze. Wszystko po # jest ignorowane: “To include comments, precede your comment with the # character.” (tłumaczenie) „Komentarz należy poprzedzić znakiem #”.
noindex, nofollow i crawl-delay NIE są dyrektywami robots.txt
To trwały mit. Od 1 września 2019 r. Google nie obsługuje nieudokumentowanych reguł noindex, nofollow ani crawl-delay. Lista obsługiwanych pól obejmuje user-agent, allow, disallow i sitemap; “other fields such as crawl-delay aren’t supported.” (tłumaczenie) „inne pola, takie jak crawl-delay, nie są obsługiwane”.
Zamiast noindex w robots.txt użyj metatagu noindex lub nagłówka X-Robots-Tag, kodu 404/410, ochrony hasłem, Disallow albo narzędzia do usuwania w Search Console — zależnie od celu.
Jak Google obsługuje robots.txt
- Limit: 500 KiB. “Google enforces a robots.txt file size limit of 500 kibibytes (KiB). Content which is after the maximum file size is ignored.” (tłumaczenie) „Google ogranicza plik do 500 KiB; dalsza treść jest ignorowana”. RFC 9309 wymaga co najmniej tego limitu.
- Pamięć podręczna: około 24 godzin. “Google generally caches the contents of robots.txt file for up to 24 hours, but may cache it longer in situations where refreshing the cached version isn’t possible.” (tłumaczenie) „Google zwykle przechowuje robots.txt do 24 godzin, czasem dłużej, gdy odświeżenie jest niemożliwe”. Evidence for this claim Google generally caches robots.txt for up to 24 hours and changes crawling behavior according to the HTTP status returned for the file. Scope: Google crawler handling of robots.txt fetches, including documented 4xx, 5xx, and redirect behavior. Confidence: high · Verified: Google: Robots.txt file handling
- Kody stanu wpływają na całą witrynę. Odpowiedzi 4xx poza 429 oznaczają brak ograniczeń: “Google’s crawlers treat all 4xx errors, except 429, as if a valid robots.txt file didn’t exist. This means that Google assumes that there are no crawl restrictions.” (tłumaczenie) „Roboty traktują 4xx poza 429 jak brak pliku i zakładają brak ograniczeń”. Nie używaj odpowiedzi 401 ani 403 do ograniczania pobierania. 5xx lub niedostępność są niebezpieczne: “For the first 12 hours, Google stops crawling the site but keeps trying to fetch the robots.txt file. If Google can’t fetch a new version, for the next 30 days Google will use the last good version, while still trying to fetch a new version.” (tłumaczenie) „Przez pierwsze 12 godzin Google wstrzymuje pobieranie, a potem do 30 dni używa ostatniej poprawnej wersji, nadal próbując pobrać nową”. Po 30 dniach: “If the errors are still not fixed after 30 days: If the site is generally available to Google, Google will behave as if there is no robots.txt file (but still keep checking for a new version).” (tłumaczenie) „Jeśli błędy trwają, a witryna jest dostępna, Google zachowuje się jak przy braku robots.txt i nadal szuka nowej wersji”. Przekierowania 3xx są śledzone przez co najmniej pięć etapów, a potem traktowane jak 404.
robots.txt w Bing, Yandex i innych systemach
Grupowanie i składnia są podobne, ale liczą się trzy różnice:
- crawl-delay. Google ją ignoruje, Bing nadal obsługuje, a Yandex wycofał w 2018 r. Yandex: “From February 22, 2018, Yandex doesn’t take into account the Crawl-delay directive,” (tłumaczenie) „Od 22 lutego 2018 r. Yandex nie uwzględnia crawl-delay” i odsyła do ustawienia szybkości pobierania w Yandex Webmaster. Bing: “The robots.txt file is the only valid place to set a crawl-delay directive for MSNBot,” (tłumaczenie) „robots.txt jest jedynym prawidłowym miejscem ustawienia crawl-delay dla MSNBot” i dyrektywa “accepts only positive, whole numbers as values… the higher the value, the more throttled down the crawl rate will be.” (tłumaczenie) „przyjmuje dodatnie liczby całkowite; wyższa wartość silniej ogranicza tempo”. Bing traktuje wartość jako względne ograniczenie, nie dosłowną liczbę sekund.
- Pułapka grupy bingbot. Zgodnie z regułą “only one group per crawler” (tłumaczenie) „tylko jedna grupa dla danego robota”, po dodaniu
User-agent: bingbotBing stosuje tylko tę grupę i ignoruje regułyUser-agent: *poza crawl-delay, więc potrzebne dyrektywy trzeba powtórzyć. - Pamięć podręczna Amazon. Roboty Amazon mogą używać kopii z ostatnich 30 dni. Gdy pliku nie da się pobrać, zachowują się jak przy jego braku. Tester nie potwierdzi, którą kopię widział Amazon. Evidence for this claim Amazon says its crawlers may use a robots.txt copy cached within the previous 30 days and behave as though the file does not exist when they cannot fetch it. Scope: Amazon crawler behavior only; a checker result cannot establish which cached copy Amazon used or whether Amazon observed the same fetch failure. Confidence: high · Verified: Amazon: Amazonbot
Zarządzanie robotami AI za pomocą robots.txt
Robots.txt jest obecnie głównym mechanizmem zarządzania robotami AI. Używają tej samej składni grup i user-agentów, ale każdy robot ma oddzielny identyfikator, więc zablokowanie jednego nie blokuje pozostałych.
- OpenAI używa niezależnych robotów.
GPTBotpobiera treści do trenowania modeli;OAI-SearchBotzasila funkcje wyszukiwania ChatGPT;OAI-AdsBotsprawdza bezpieczeństwo stron reklamowych i nie służy do trenowania.User-agent: GPTBotzDisallow: /blokuje trening, ale nie roboty wyszukiwania ani reklam.ChatGPT-Useruruchamia się na żądanie użytkownika w ChatGPT lub Custom GPT, a OpenAI zaznacza, że “robots.txt rules may not apply” (tłumaczenie) „reguły robots.txt mogą nie mieć zastosowania”. Zmiana dostępuOAI-SearchBotmoże docierać do systemów wyszukiwania około 24 godzin. - Google-Extended steruje użyciem w Gemini i Vertex, niezależnie od Googlebota.
- Inne identyfikatory to
CCBot,ClaudeBot,PerplexityBotiBytespider.
Najważniejsze zastrzeżenie: zgodność jest dobrowolna. Robots.txt prosi, ale nie wymusza. Rzetelne roboty go respektują, lecz scraper może go zignorować. Rzeczywista ochrona wymaga uwierzytelniania lub blokowania dostępu.
Typowe błędy i ich poprawki
Plik zwraca 200, ale nie jest użytecznym robots.txt. Sam status nie wystarcza. Sprawdź Content-Type i pierwsze bajty, bo CDN może zwrócić HTML błędu z kodem 200. Google oczekuje zwykłego tekstu UTF-8 i może ignorować nieprawidłowe znaki. Pojedynczy BOM UTF-8 na początku jest tolerowany, ale drugi BOM, BOM w środku, UTF-16, bajty NUL lub znaki sterujące mogą zmienić token albo unieważnić wiersz. Raportuj pozycję bajtu i wiersz bez cichej normalizacji. Przed obliczeniem reguł zastosuj limit parsowania 500 KiB Google, a odrzucony fragment nadal pokaż w raporcie.
- Blokowanie strony przeznaczonej do noindex. Google nie pobierze jej i nie zobaczy noindex; usuń blokadę.
- Używanie robots.txt do usuwania z indeksu. Do tego służy noindex.
- Blokowanie CSS/JS potrzebnych do renderowania. Google musi pobrać te zasoby; przykładowy plik Google jawnie zezwala na
.cssi.js. - Ukrywanie poufnych danych. “The Robots Exclusion Protocol is not a substitute for valid content security measures. Listing paths in the robots.txt file exposes them publicly and thus makes the paths discoverable.” (tłumaczenie) „Robots Exclusion Protocol nie zastępuje zabezpieczeń; wpisanie ścieżek ujawnia je publicznie”. Wpisanie
/secret-admin/publicznie ujawnia ścieżkę; użyj uwierzytelniania. - Przypadkowe
Disallow: /. Blokuje całą witrynę dla wskazanego robota. - Ignorowanie statusu
/robots.txt. Błąd 5xx może wstrzymać pobieranie całej witryny.
Szerszy kontekst — odkrywanie, harmonogram pobierania, renderowanie oraz różnica między pobieraniem a indeksowaniem — opisuje centrum dotyczące crawlowania. Osobne materiały rozwijają budżet indeksowania i obsługę map witryn przez Google.
Podsumowanie AI
Skrócona wersja części zaawansowanej:
- Robots.txt to zwykły plik tekstowy w katalogu głównym każdego hosta (
/robots.txt, małymi literami), zgodny z Robots Exclusion Protocol (RFC 9309 z 2022 r.; początki w 1994 r.). Adres rozróżnia wielkość liter. - Kontroluje pobieranie, nie indeksowanie. Niedozwolony adres może nadal znaleźć się w indeksie bez opisu. Do usunięcia z indeksu użyj
noindex, a strony nie blokuj w robots.txt. - Eksperyment Patricka pokazał, że blokada dwóch wysoko notowanych stron nie usunęła ich z indeksu, lecz odebrała im fragmenty z odpowiedzią i opisy. “Don’t block pages you want indexed. It hurts.” (tłumaczenie) „Nie blokuj stron przeznaczonych do indeksowania. To szkodzi”.
- Dobierz narzędzie: robots.txt ogranicza pobieranie,
noindexindeksowanie, a hasło lub uwierzytelnianie chroni poufność. - Obsługiwane pola:
user-agent,allow,disallow,sitemap. Google nie obsługujenoindex,nofollowanicrawl-delay. - Zakres: jeden host, protokół i port; każda subdomena i wersja protokołu potrzebuje własnego pliku.
- Dopasowanie: wygrywa najdłuższa ścieżka, a przy remisie Allow; symbole to
*i$, ścieżki rozróżniają wielkość liter, grupa szczegółowa nie dziedziczy z*. - Google: limit 500 KiB, pamięć podręczna około 24 godzin, 4xx poza 429 oznacza brak ograniczeń, 5xx około 12 godzin przerwy i do 30 dni ostatniej poprawnej kopii, a 3xx co najmniej pięć przekierowań przed potraktowaniem jak 404.
- Inne wyszukiwarki: Bing obsługuje
crawl-delay; Google ją ignoruje, a Yandex wycofał w 2018 r. Grupabingbotzastępuje reguły*. - Roboty AI mają niezależne identyfikatory: GPTBot, OAI-SearchBot, OAI-AdsBot,
ChatGPT-User, Google-Extended, CCBot, ClaudeBot, PerplexityBot i Bytespider.ChatGPT-Userdziała na żądanie użytkownika, więc robots.txt może go nie obejmować; respektowanie pliku jest dobrowolne. - Nie blokuj CSS/JS potrzebnych do renderowania, nie ukrywaj w publicznym pliku poufnych danych i uważaj na
Disallow: /.
Oficjalna dokumentacja
Dokumentacja źródłowa wyszukiwarek i samego standardu.
- Wprowadzenie do robots.txt — podstawy i rozróżnienie pobierania od indeksowania.
- Tworzenie i przesyłanie robots.txt oraz interpretacja specyfikacji przez Google — pola, grupy, dopasowanie, symbole, limit, pamięć podręczna i kody stanu.
- Blokowanie indeksowania za pomocą noindex — dlaczego strony z noindex NIE wolno blokować w robots.txt.
- Informacja o nieobsługiwanych regułach w robots.txt z lipca 2019 r. — zakończenie obsługi
noindex,nofollowicrawl-delay1 września 2019 r.
Standard
- RFC 9309 — Robots Exclusion Protocol — standard IETF z września 2022 r., obejmujący lokalizację
/robots.txt, regułę najdłuższego dopasowania, limit 500 KiB i kwestie bezpieczeństwa.
Bing / Microsoft
- Wskazówki dotyczące Bingbota — zakres
crawl-delayod 1 do 20 sekund. - Jak utworzyć plik robots.txt — wskazówki i tester Bing Webmaster Tools.
Cytaty ze źródeł
Oficjalne wypowiedzi Google, Bing i RFC. Każdy odnośnik prowadzi bezpośrednio do cytowanego fragmentu.
Google — pobieranie, nie indeksowanie
- “This is used mainly to avoid overloading your site with requests; it is not a mechanism for keeping a web page out of Google. To keep a web page out of Google, block indexing with
noindexor password-protect the page.” (tłumaczenie) „Mechanizm służy głównie do ograniczania liczby żądań, a nie do usuwania strony z Google. Aby ją wykluczyć, zastosujnoindexlub ochronę hasłem”. — dokumentacja Google Search Central. Przejdź do cytatu - “While Google won’t crawl or index the content blocked by a robots.txt file, we might still find and index a disallowed URL if it is linked from other places on the web.” (tłumaczenie) „Google nie pobierze ani nie zindeksuje zablokowanej treści, ale może znaleźć i zindeksować niedozwolony adres, jeśli prowadzą do niego inne odnośniki”. Przejdź do cytatu
- “If your web page is blocked with a robots.txt file, its URL can still appear in search results, but the search result won’t have a description.” (tłumaczenie) „Jeśli strona jest zablokowana przez robots.txt, jej adres może nadal pojawić się w wynikach, ale bez opisu”. Przejdź do cytatu
Google — dlaczego strona z noindex musi pozostać dostępna dla robota
- “For the
noindexrule to be effective, the page or resource must not be blocked by a robots.txt file, and it has to be otherwise accessible to the crawler. If the page is blocked by a robots.txt file or the crawler can’t access the page, the crawler will never see thenoindexrule, and the page can still appear in search results, for example if other pages link to it.” (tłumaczenie) „Aby noindex zadziałało, strona nie może być zablokowana przez robots.txt i musi być dostępna dla robota. W przeciwnym razie robot nie zobaczy dyrektywy, a strona może nadal pojawiać się w wynikach”. — dokumentacja Google Search Central. Przejdź do cytatu
Google — lokalizacja, zakres i specyfikacja
- “The rules listed in the robots.txt file apply only to the host, protocol, and port number where the robots.txt file is hosted.” (tłumaczenie) „Reguły dotyczą tylko hosta, protokołu i portu, na których znajduje się plik”. Przejdź do cytatu
- “Google can’t index the content of pages which are disallowed for crawling, but it may still index the URL and show it in search results without a snippet.” (tłumaczenie) „Google nie może zindeksować treści niedozwolonych do pobrania, ale może zindeksować sam adres i wyświetlić go bez fragmentu”. Przejdź do cytatu
- “When matching robots.txt rules to URLs, crawlers use the most specific rule based on the length of the rule path. In case of conflicting rules, including those with wildcards, Google uses the least restrictive rule.” (tłumaczenie) „Roboty stosują najbardziej szczegółową regułę według długości ścieżki, a przy konflikcie regułę najmniej restrykcyjną”. Przejdź do cytatu
- “
*designates 0 or more instances of any valid character.$designates the end of the URL.” (tłumaczenie) „*oznacza co najmniej zero dowolnych znaków, a$koniec adresu URL”. Przejdź do cytatu - “The field name (
disallow) is case-insensitive, but its value is case-sensitive.” (tłumaczenie) „Nazwa pola disallow nie rozróżnia wielkości liter, ale jego wartość tak”. Przejdź do cytatu
Google — rozmiar, pamięć podręczna i kody stanu
- “Google enforces a robots.txt file size limit of 500 kibibytes (KiB). Content which is after the maximum file size is ignored.” (tłumaczenie) „Google ogranicza rozmiar robots.txt do 500 KiB; dalsza treść jest ignorowana”. Przejdź do cytatu
- “Google generally caches the contents of robots.txt file for up to 24 hours, but may cache it longer in situations where refreshing the cached version isn’t possible.” (tłumaczenie) „Google zwykle przechowuje robots.txt do 24 godzin, czasem dłużej, gdy odświeżenie nie jest możliwe”. Przejdź do cytatu
- “Google’s crawlers treat all 4xx errors, except 429, as if a valid robots.txt file didn’t exist. This means that Google assumes that there are no crawl restrictions.” (tłumaczenie) „Roboty Google traktują błędy 4xx poza 429 jak brak prawidłowego pliku i zakładają brak ograniczeń”. Przejdź do cytatu
- “For the first 12 hours, Google stops crawling the site but keeps trying to fetch the robots.txt file. If Google can’t fetch a new version, for the next 30 days Google will use the last good version, while still trying to fetch a new version.” (tłumaczenie) „Przez pierwsze 12 godzin Google wstrzymuje pobieranie, a potem przez 30 dni używa ostatniej poprawnej wersji i nadal próbuje pobrać nową”. Przejdź do cytatu
- “If the errors are still not fixed after 30 days: If the site is generally available to Google, Google will behave as if there is no robots.txt file (but still keep checking for a new version).” (tłumaczenie) „Jeśli po 30 dniach błędy trwają, a witryna jest dostępna, Google zachowuje się jak przy braku robots.txt, lecz nadal szuka nowej wersji”. Przejdź do cytatu
- “User agent specific groups and global groups (
*) are not combined.” (tłumaczenie) „Grupy dla konkretnych robotów nie są łączone z grupami globalnymi”. Przejdź do cytatu
RFC 9309 — standard
- “This document specifies and extends the ‘Robots Exclusion Protocol’ method originally defined by Martijn Koster in 1994 for service owners to control how content served by their services may be accessed, if at all, by automatic clients known as crawlers.” (tłumaczenie) „Dokument określa i rozszerza metodę zdefiniowaną przez Martijna Kostera w 1994 r., aby właściciele usług kontrolowali dostęp robotów do treści”. — RFC 9309. Przejdź do cytatu
- “The rules MUST be accessible in a file named ‘/robots.txt’ (all lowercase) in the top-level path of the service.” (tłumaczenie) „Reguły MUSZĄ być dostępne w pliku /robots.txt zapisanym małymi literami w głównej ścieżce usługi”. Przejdź do cytatu
- “The Robots Exclusion Protocol is not a substitute for valid content security measures. Listing paths in the robots.txt file exposes them publicly and thus makes the paths discoverable.” (tłumaczenie) „Protokół nie zastępuje zabezpieczeń treści; wpisanie ścieżek do robots.txt ujawnia je publicznie”. Przejdź do cytatu
Bing — crawl-delay
- Wskazówki dotyczące Bingbota opisują zakres
crawl-delayod 1 do 20 sekund. To wskazówki właściwe dla Bing, których Google nie stosuje.
Patrick Stox — eksperyment z blokowaniem (mój eksperyment Ahrefs, zrecenzowany przez Joshuę Hardwicka)
- “We lost a position here or there and all of the featured snippets for the pages.” (tłumaczenie) „Straciliśmy pojedyncze pozycje i wszystkie fragmenty z odpowiedzią dla tych stron”. Przejdź do cytatu
- “Both pages lost some traffic. But it didn’t result in much change to our traffic estimate like I was expecting.” (tłumaczenie) „Obie strony straciły część ruchu, ale szacowany ruch zmienił się mniej, niż oczekiwałem”. Przejdź do cytatu
- “Don’t block pages you want indexed. It hurts. Not as bad as you might think it does—but it still hurts.” (tłumaczenie) „Nie blokuj stron przeznaczonych do indeksowania. To szkodzi, choć mniej, niż można sądzić”. Przejdź do cytatu
Robots.txt — ściąga ze składni
Dyrektywy obsługiwane przez Google
| Dyrektywa | Działanie | Przykład |
|---|---|---|
User-agent: | Rozpoczyna grupę i wskazuje roboty. | User-agent: Googlebot |
Disallow: | Wskazuje ścieżki, których robot nie może pobierać. | Disallow: /cart/ |
Allow: | Tworzy wyjątek od Disallow. | Allow: /cart/help |
Sitemap: | Podaje bezwzględny adres mapy witryny niezależny od grup. | Sitemap: https://x.com/sitemap.xml |
Znaki specjalne
| Znak | Znaczenie |
|---|---|
* | W ścieżce: dowolna liczba znaków; jako user-agent: wszystkie roboty. |
$ | Oznacza koniec adresu. Disallow: /*.pdf$ blokuje adresy zakończone .pdf. |
# | Komentarz; reszta wiersza jest ignorowana. |
/ | Ścieżka musi zaczynać się od /; Disallow: / blokuje całą witrynę. |
Reguły dopasowania
- Wygrywa najbardziej szczegółowa, czyli najdłuższa ścieżka.
- Przy remisie wygrywa reguła najmniej restrykcyjna:
AllowprzedDisallow. - Ścieżki rozróżniają wielkość liter (
/Folder/≠/folder/), a nazwy pól i robotów nie. - Robot stosuje dokładnie jedną, najbardziej szczegółową pasującą grupę.
Nieobsługiwane przez Google od 1 września 2019 r.: noindex, nofollow, crawl-delay. Bing nadal uwzględnia crawl-delay jako względne ograniczenie, a Yandex przestał 22 lutego 2018 r.; tempo ustaw w Yandex Webmaster.
Obsługa przez Google
- Limit 500 KiB, reszta ignorowana; pamięć podręczna około 24 godzin.
- 4xx poza 429 → brak ograniczeń. 5xx lub niedostępność → około 12 godzin przerwy, następnie ostatnia poprawna kopia przez około 30 dni, a potem brak ograniczeń. 3xx → co najmniej pięć przekierowań, potem 404.
- Grupa dla konkretnego
User-agentnigdy nie jest łączona z grupą*.
Typowe przepisy
# Block a folder for everyone
User-agent: *
Disallow: /admin/
# Block all PDFs
User-agent: *
Disallow: /*.pdf$
# Block AI training crawler (won't stop search bots)
User-agent: GPTBot
Disallow: /
# Point to the sitemap
Sitemap: https://example.com/sitemap.xml Lista kontrolna audytu robots.txt
- Plik istnieje dokładnie pod
https://yourdomain.com/robots.txti zwraca200. - Każdy host i protokół ma własny plik:
www, bezwww, subdomeny,httpihttps. - Nie ma przypadkowego
Disallow: /, które blokuje całą witrynę. - Nie blokujesz strony, którą chcesz oznaczyć
noindex; Google musi ją pobrać. - Nie używasz robots.txt do usuwania stron z indeksu — to zadanie noindex.
- CSS i JavaScript potrzebne do renderowania nie są zablokowane.
- Nie ma
noindex,nofollowanicrawl-delaykierowanych do Google. - Nie wpisano poufnych ścieżek; publiczny plik je ujawnia, więc użyj uwierzytelniania.
- Reguły
*i$sprawdzono na prawdziwych adresach, z uwzględnieniem wielkości liter. - Każda grupa
User-agent: bingbotlub innego robota powtarza potrzebne reguły z*. - Dyrektywa
Sitemap:zawiera bezwzględny adres URL. - Plik ma mniej niż 500 KiB.
- Plik sprawdzono w raporcie robots.txt Search Console, a adresy ze stanem “Indexed, though blocked by robots.txt” (tłumaczenie) „Zindeksowano mimo blokady w robots.txt” oceniono jako rzeczywiście zbędne.
Modele myślowe
1. Kontrola pobierania, nie indeksowania. Robots.txt określa tylko, czy robot może pobrać adres URL. Nie decyduje o indeksowaniu. Blokada adresu nie oznacza usunięcia go z Google.
2. Wygrywa reguła najbardziej szczegółowa, a remis rozstrzyga najmniej restrykcyjna. Przy dwóch regułach dotyczących tego samego adresu wygrywa dłuższa ścieżka. Przy równych długościach Allow wygrywa z Disallow.
3. Blokada czy noindex — drzewo decyzji.
- Chcesz usunąć stronę z indeksu? →
noindex; nie blokuj jej w robots.txt. - Chcesz ograniczyć zbędne pobieranie i akceptujesz sam adres w wynikach? →
Disallow. - Chcesz zachować poufność? → uwierzytelnianie. Robots.txt jest publiczny.
Nigdy nie blokuj i nie oznaczaj noindex tego samego adresu — dyrektywy przestają działać zgodnie z celem, a strona może pozostać w indeksie.
4. Dostępność pliku jest krytyczna produkcyjnie. Kod HTTP dla /robots.txt wpływa na całą witrynę: 4xx oznacza brak ograniczeń, a 5xx może zatrzymać pobieranie przez Google na około 12 godzin. Traktuj ten punkt końcowy jak pozostałe krytyczne usługi.
Pobieranie i audyt robots.txt dla wielu hostów
Zakres robots.txt obejmuje jeden host, protokół i port, dlatego łatwo pominąć wariant. Poniższe polecenia pobierają wersje domeny i wskazują błędy lub 404.
macOS / Linux
for url in "https://example.com/robots.txt" "https://www.example.com/robots.txt" "http://example.com/robots.txt"; do
code=$(curl -s -o /dev/null -w "%{http_code}" "$url")
echo "$code $url"
doneWindows (PowerShell)
$urls = "https://example.com/robots.txt","https://www.example.com/robots.txt","http://example.com/robots.txt"
foreach ($u in $urls) {
$r = Invoke-WebRequest -Uri $u -UseBasicParsing -SkipHttpErrorCheck
Write-Host "$($r.StatusCode) $u"
}Oczekiwanym wynikiem jest 200 w każdym wierszu. Odpowiedź 4xx oznacza brak ograniczeń dla danego hosta i protokołu, co może być zamierzone; 5xx jest niebezpieczny i może zatrzymać pobieranie.
Wyrażenie regularne pobierające ścieżki Disallow i Allow
Przydaje się do porównania robots.txt przed zmianą i po niej albo automatycznego sprawdzania ważnych adresów URL.
import re
robots_txt = open("robots.txt").read()
# Captures the directive (Disallow/Allow) and its path value
pattern = re.compile(r'^(Disallow|Allow):\s*(\S*)', re.IGNORECASE | re.MULTILINE)
for directive, path in pattern.findall(robots_txt):
print(f"{directive}: {path or '(empty — matches nothing)'}")(Disallow|Allow)przechwytuje zastosowaną dyrektywę.\s*(\S*)przechwytuje ścieżkę i dopuszcza pustyDisallow:, który Google interpretuje jako brak blokady.re.IGNORECASEodpowiada temu, że nazwy pól nie rozróżniają wielkości liter; wartości ścieżek nadal ją rozróżniają, więc nie zmieniaj ich na małe litery.
Fragment do konsoli Chrome DevTools
Wklej go w panelu Console (F12 → Console), aby pobrać i wyświetlić robots.txt bieżącego hosta bez opuszczania karty:
fetch(new URL('/robots.txt', location.origin))
.then(r => r.text())
.then(t => console.log(t))
.catch(e => console.error('No robots.txt or fetch blocked:', e));Bookmarklet otwierający robots.txt bieżącej witryny
Zapisz kod jako adres URL zakładki, a następnie kliknij ją na dowolnej stronie:
javascript:(function(){var u=new URL('/robots.txt',location.origin).href;location.href=u;})(); Narzędzia do testowania i walidacji robots.txt
- Google Search Console — raport robots.txt w Ustawieniach pokazuje pobrany przez Google plik, stan i błędy parsowania. Dawny samodzielny tester został wycofany.
- Sprawdzanie adresu URL w GSC potwierdza, czy konkretny adres jest zablokowany i jak widzi go Google.
- GSC “Indexed, though blocked by robots.txt” (tłumaczenie) „Zindeksowano mimo blokady w robots.txt” wskazuje adresy zindeksowane pomimo blokady.
- Bing Webmaster Tools — tester i dokumentacja robots.txt sprawdzają plik dla bingbota.
- Ahrefs Site Audit i Screaming Frog SEO Spider pokazują zablokowane adresy i błędne reguły.
- Dowolna przeglądarka pozwala po prostu otworzyć
yourdomain.com/robots.txt; pamiętaj, że każdy może zrobić to samo.
Incydent: Disallow: / trafiło na produkcję
To klasyczna pozostałość ze środowiska testowego: plik blokujący staging trafia na produkcję, a User-agent: * / Disallow: / zatrzymuje całą witrynę. Oto kolejność naprawy.
Krok 1 — potwierdź zasięg. Natychmiast pobierz https://yourdomain.com/robots.txt w przeglądarce lub przez curl -I. Jeśli pod User-agent: * widnieje samo Disallow: / bez węższego Allow:, wszystkie roboty respektujące plik są zablokowane. Przejdź do kroku 2.
Krok 2 — popraw plik i potwierdź wdrożenie. Wstaw zamierzone reguły albo minimalne User-agent: * / Allow: /, wdroż i ponownie pobierz działający adres. Ufaj odpowiedzi HTTP, nie panelowi wdrożenia. Jeśli nadal widać stare Disallow: /, usuń pamięć podręczną CDN dla tej ścieżki.
Krok 3 — ustal czas blokady. Google przechowuje robots.txt zwykle do około 24 godzin, więc poprawka nie zostanie zauważona natychmiast. Raport robots.txt w Search Console pokazuje czas ostatniego pobrania i wykrytą wersję. Nie ma ręcznego żądania ponownego pobrania pliku; poczekaj lub po potwierdzeniu poprawki użyj Sprawdzania adresu URL i opcji indeksowania dla najważniejszych stron.
Krok 4 — oceń szkody.
- Blokada trwająca kilka godzin zwykle nie daje widocznych skutków.
- Po dniach lub tygodniach sprawdź wzrost stanu “Blocked by robots.txt” (tłumaczenie) „Zablokowano przez robots.txt”. Mój eksperyment pokazał, że strony pozostały w indeksie i rankingu, ale utraciły świeżość i fragmenty z odpowiedzią; szkody narastają z czasem.
- Spadek pozycji lub wyświetleń w raporcie Skuteczność podczas blokady potwierdza rzeczywisty wpływ.
Krok 5 — zweryfikuj poprawkę. Sprawdź ważne ścieżki w narzędziu do testowania robots.txt z poprawionym plikiem. Jeśli którakolwiek pozostaje zablokowana, wróć do kroku 2.
Konkretne błędy, których należy unikać
Blokowanie w robots.txt strony, którą chcesz oznaczyć noindex. Noindex działa tylko wtedy, gdy robot może odczytać stronę. Po blokadzie Google nie zobaczy dyrektywy, a adres może pozostać w indeksie. Zamiast tego pozostaw stronę dostępną i dodaj noindex w metatagu lub nagłówku X-Robots-Tag.
Używanie robots.txt do usuwania z indeksu. Robots.txt kontroluje pobieranie, nie indeksowanie. Dokumentacja Google stwierdza, że “is not a mechanism for keeping a web page out of Google.” (tłumaczenie) „nie jest mechanizmem służącym do usuwania strony z Google”. Niedozwolony adres może pojawić się bez opisu. Użyj noindex na niezablokowanej stronie.
Blokowanie CSS lub JavaScriptu potrzebnych do renderowania. Google renderuje strony w przeglądarce. Po blokadzie zasobów może zobaczyć uszkodzoną lub pustą stronę. Pozostaw dostępne /assets/, /static/ i inne katalogi z zasobami; przykładowy robots.txt Google jawnie zezwala na potrzebne pliki.
Wpisywanie poufnych ścieżek, aby je „ukryć”. Plik jest publiczny, więc wpis Disallow: /admin-panel/ ujawnia istnienie katalogu. RFC 9309 stwierdza, że protokół “is not a substitute for valid content security measures.” (tłumaczenie) „nie zastępuje prawidłowych zabezpieczeń treści”. Użyj uwierzytelniania lub hasła.
Mylenie ścieżek z ukośnikiem końcowym. Disallow: /folder blokuje /folder, /folder/, /folder-name/ i /folder.html, ponieważ dopasowanie działa według prefiksu, a nie katalogu. Gdy chodzi tylko o katalog, użyj Disallow: /folder/ i przetestuj prawdziwe adresy.
Założenie, że reguły nie rozróżniają wielkości liter. Nazwy pól jej nie rozróżniają, ale wartości ścieżek tak: Disallow: /Folder/ nie wpływa na /folder/. Dopasuj zapis do rzeczywistych adresów URL.
Typowe problemy
„Zablokowałem stronę, ale nadal pojawia się w Google”
- Objaw: adres nadal występuje w wynikach, zwykle bez opisu, mimo dyrektywy Disallow.
- Przyczyna: prowadzą do niego odnośniki, więc Google zindeksował sam adres bez pobierania treści. Robots.txt nie służy do usuwania z indeksu.
- Naprawa: dodaj
noindexi usuń blokadę robots.txt. Po ponownym pobraniu sprawdź adres w Search Console.
Search Console pokazuje: “Indexed, though blocked by robots.txt” (tłumaczenie) „Zindeksowano mimo blokady w robots.txt”
- Objaw: raport Strony w GSC wskazuje ten stan dla co najmniej jednego adresu.
- Przyczyna: często są to adresy koszyka, filtrów lub parametrów, do których gdzieś prowadzi odnośnik.
- Naprawa: ustal, czy adres powinien być indeksowany. Dla zbędnych parametrów stan jest oczekiwany. Dla ważnej strony usuń blokadę i zastosuj noindex, jeśli celem jest wykluczenie.
„Zmieniłem robots.txt, ale zmiana nie jest widoczna”
- Objaw: po wdrożeniu narzędzie lub Google nadal odczytuje stare reguły.
- Przyczyna: Google buforuje robots.txt do około 24 godzin, a CDN lub reverse proxy może podawać nieaktualną kopię.
- Naprawa: pobierz bezpośrednio
yourdomain.com/robots.txtlub użyj narzędzia do testowania robots.txt. Jeśli działający plik jest poprawny, poczekaj na odświeżenie Google i sprawdź czas ostatniego pobrania w Search Console.
„Tester zezwala na ścieżkę, ale Google jej nie pobiera”
- Objaw: robots.txt zezwala na adres, lecz logi lub Search Console nie pokazują pobrania.
- Przyczyna: zezwolenie jest konieczne, ale nie gwarantuje pobrania. Strona może być osierocona, nieobecna w mapie albo mieć niski priorytet.
- Naprawa: sprawdź odkrywalność przez odnośniki wewnętrzne i mapę witryny; robots.txt nie jest wąskim gardłem.
„Reguła Disallow nie pasuje do oczekiwanych adresów”
- Objaw: reguła nie blokuje albo blokuje zbyt wiele adresów.
- Przyczyna: wielkość liter (
/Folder/≠/folder/) lub dopasowanie prefiksu (Disallow: /folderblokuje też/folder-name/). - Naprawa: sprawdź dokładny zapis adresów, dodaj ukośnik końcowy dla katalogu i przetestuj ścieżki w narzędziu do testowania robots.txt.
„Bing przestał stosować reguły domyślne po dodaniu sekcji bingbot”
- Objaw: reguły
User-agent: *przestały działać dla Bing po dodaniuUser-agent: bingbot. - Przyczyna: Bing, podobnie jak Google, stosuje tylko najbardziej szczegółową grupę; grupa
bingbotzastępuje domyślną*poza crawl-delay. - Naprawa: powtórz w grupie bingbot wszystkie potrzebne dyrektywy, aby była samodzielna.
Testy walidacyjne
Wykonaj je po każdej zmianie robots.txt, zanim uznasz pracę za zakończoną.
Test 1: plik jest dostępny i poprawny
- Test: uruchom
curl -I https://yourdomain.com/robots.txtlub otwórz adres, a następnie sprawdź plik w narzędziu do testowania robots.txt. - Oczekiwany wynik:
HTTP/1.1 200i dokładnie zamierzone reguły. - Interpretacja błędu: status inny niż 200 oznacza problem z wdrożeniem lub routingiem; stara treść zwykle wskazuje pamięć podręczną CDN albo Google.
- Okno obserwacji: status i treść natychmiast, Google do około 24 godzin.
- Wycofaj zmianę, gdy: plik nieoczekiwanie zwraca błąd klienta lub serwera albo zawiera niezamierzone reguły.
Test 2: zmieniona ścieżka zachowuje się zgodnie z zamiarem
- Test: wklej dokładny adres do narzędzia do testowania robots.txt i sprawdź wynik dla Googlebota oraz, jeśli trzeba, Bingbota.
- Oczekiwany wynik: „dozwolone” dla otwartej ścieżki albo „zablokowane” dla zamkniętej.
- Interpretacja błędu: przeciwna decyzja zwykle oznacza, że dłuższa reguła
AllowlubDisallowma pierwszeństwo. - Okno obserwacji: natychmiast.
- Wycofaj zmianę, gdy: działający plik jest zgodny z wdrożeniem, ale test nadal daje błędny wynik.
Test 3: odblokowana strona została pobrana
- Test: użyj Sprawdzania adresu URL w Search Console i odczytaj „Pobieranie dozwolone?” oraz datę ostatniego pobrania.
- Oczekiwany wynik: „Tak” i data późniejsza niż zmiana robots.txt.
- Interpretacja błędu: „Nie” może oznaczać pamięć podręczną lub inną pasującą regułę; brak nowej daty nie musi jeszcze oznaczać awarii.
- Okno obserwacji: 2–4 tygodnie, dłużej dla dużych lub mało ważnych witryn.
- Wycofaj zmianę, gdy: wynik później wraca do „Nie” bez zmiany pliku; zbadaj CDN i pamięć podręczną.
Test 4: nic innego nie zostało przypadkowo zablokowane
- Test: po wdrożeniu przeskanuj witrynę w Ahrefs Site Audit lub Screaming Frog i porównaj listę adresów zablokowanych przez robots.txt przed zmianą i po niej.
- Oczekiwany wynik: zmieniły się tylko zamierzone adresy.
- Interpretacja błędu: nieoczekiwana blokada zwykle wynika ze zbyt szerokiego symbolu wieloznacznego lub prefiksu.
- Okno obserwacji: natychmiast po wdrożeniu.
- Wycofaj zmianę, gdy: nowo zablokowana jest strona istotna dla ruchu organicznego.
Gotowe prompty
Po każdym prompcie wklej rzeczywistą treść robots.txt, a w drugim także listę ważnych adresów URL.
Audyt konfliktów i ryzykownych reguł w robots.txt
I'm going to paste a robots.txt file. Read it as a technical SEO would and
flag:
1. Any Disallow rule that conflicts with an Allow rule on the same or an
overlapping path (tell me which one wins under longest-match rules).
2. Any bare "Disallow: /" under a User-agent group — that blocks everything
for that crawler.
3. Any rule that would block commonly render-critical paths (CSS, JS, fonts,
images used for layout).
4. Any use of noindex, nofollow, or crawl-delay under a Google-facing
User-agent — these are not supported by Google.
5. Anything that looks like it's trying to hide a sensitive path (remember
this file is public).
Here is the file:
<paste robots.txt content>Sprawdzenie, czy konkretne adresy można bezpiecznie pobierać i indeksować
I want the following URLs to be crawlable AND indexable by Google. Given this
robots.txt file, tell me for each URL whether it would be blocked from
crawling, and separately remind me that robots.txt says nothing about
indexing — a URL can be blocked from crawling but still indexed if it's
linked elsewhere, and a URL can be crawlable but still noindexed via a meta
tag or header this file can't show you.
Robots.txt:
<paste robots.txt content>
URLs:
<paste list of URLs> Przydatne materiały
Moje powiązane artykuły
- Historia zablokowania dwóch wysoko notowanych stron za pomocą robots.txt — mój eksperyment pokazujący, że blokowanie nie oznacza usunięcia z indeksu.
- Przewodnik dla początkujących po technicznym SEO — miejsce robots.txt w procesie pobierania i indeksowania.
- Strategie SEO dla przedsiębiorstw — zarządzanie robots.txt na dużych witrynach.
Moje wystąpienia
- Jak działa wyszukiwanie w SlideShare — omówienie procesu pobieranie → renderowanie → indeksowanie. Zastrzeżenie: “This is my understanding of systems… not going to be 100% complete or accurate.” (tłumaczenie) „To moje rozumienie systemów; opis nie będzie w stu procentach kompletny ani dokładny”.
Materiały innych autorów
- Robots.txt i SEO: wszystko, co trzeba wiedzieć — szczegółowy przewodnik Joshuy Hardwicka po składni i typowych regułach.
- Przy usuwaniu stron z Google używaj noindex, nie robots.txt — omówienie wskazówki Johna Muellera.
- Dlaczego adresy zablokowane przez robots.txt nadal mogą być indeksowane — przykład adresów dodawania do koszyka i często nieszkodliwego stanu blokady.
- Wskazówka Bing: w sekcji bingbot umieść wszystkie potrzebne dyrektywy — grupa szczegółowa zastępuje ustawienia globalne.
- Przegląd robotów OpenAI — oficjalne identyfikatory GPTBot, OAI-SearchBot i ChatGPT-User oraz niezależne przykłady blokowania.
- r/TechSEO — społeczność zajmująca się diagnostyką pobierania, indeksowania i blokad robots.txt.
Sprawdź swoją wiedzę: Robots.txt
Pięć krótkich pytań o to, co kontroluje robots.txt, a czego nie. Wybierz odpowiedź i sprawdź wynik.
Dziennik zmian
Zaktualizowano 11 sie 2026.
Podsumowanie redakcyjne i zapisane szczegóły zmian.Szczegóły zmian
-
Szczegółowe uwagi dotyczące zmian są obecnie dostępne po angielsku.
Pełne porównanie jest niedostępne — dla tej wersji nie zarchiwizowano wcześniejszej migawki.
Zaktualizowano 11 sie 2026.
Podsumowanie redakcyjne i zapisane szczegóły zmian.Szczegóły zmian
-
Szczegółowe uwagi dotyczące zmian są obecnie dostępne po angielsku.
Pełne porównanie jest niedostępne — dla tej wersji nie zarchiwizowano wcześniejszej migawki.
Zaktualizowano 30 lip 2026.
Podsumowanie redakcyjne i zapisane szczegóły zmian.Szczegóły zmian
-
Szczegółowe uwagi dotyczące zmian są obecnie dostępne po angielsku.
Pełne porównanie jest niedostępne — dla tej wersji nie zarchiwizowano wcześniejszej migawki.
Zaktualizowano 19 lip 2026.
Podsumowanie redakcyjne i zapisane szczegóły zmian.Szczegóły zmian
-
Szczegółowe uwagi dotyczące zmian są obecnie dostępne po angielsku.
Pełne porównanie jest niedostępne — dla tej wersji nie zarchiwizowano wcześniejszej migawki.
Zaktualizowano 18 lip 2026.
Podsumowanie redakcyjne i zapisane szczegóły zmian.Szczegóły zmian
-
Szczegółowe uwagi dotyczące zmian są obecnie dostępne po angielsku.
-
Szczegółowe uwagi dotyczące zmian są obecnie dostępne po angielsku.
-
Szczegółowe uwagi dotyczące zmian są obecnie dostępne po angielsku.
-
Szczegółowe uwagi dotyczące zmian są obecnie dostępne po angielsku.
-
Szczegółowe uwagi dotyczące zmian są obecnie dostępne po angielsku.
Pełne porównanie jest niedostępne — dla tej wersji nie zarchiwizowano wcześniejszej migawki.
Who's been ignoring my robots.txt?
This is live data from this site, not an illustration. My robots.txt
disallows /api/trap/, and the only link to it is invisible to
humans — so a compliant crawler will never request it. Every user-agent
below fetched it anyway. (Humans poking at it with curl show
up too; the user-agent usually gives them away.)