Robots.txt – kompletny poradnik + 20 przykładów reguł

robots.txt to jeden z najprostszych, a zarazem najbardziej ryzykownych plików technicznych w SEO. Jedna linijka potrafi przyspieszyć pracę robotów albo… wyłączyć widoczność całej witryny. Dobrze skonfigurowany plik pomaga ukierunkować crawlowanie (np. nie marnować budżetu na parametry i wyniki wyszukiwania), a także wskazać robotom mapę witryny. Źle skonfigurowany — utrudni renderowanie, zablokuje zasoby CSS/JS i spowoduje niepotrzebne błędy w Search Console.

Najważniejsze, by rozumieć różnicę między crawlowaniem a indeksacją: robots.txt steruje odwiedzaniem adresów przez boty, nie decyduje bezpośrednio o tym, czy URL znajdzie się w indeksie. Do deindeksacji służy meta robots noindex na konkretnej stronie (a bot musi móc tę stronę pobrać, żeby meta w ogóle zobaczyć).

Czym jest robots.txt i jak działa

robots.txt to prosty plik tekstowy w katalogu głównym domeny (np. https://twojadomena.pl/robots.txt), który instruuje roboty wyszukiwarek, jak crawlować Twój serwis.

Crawlowanie vs indeksacja — kluczowa różnica

  • Crawlowanie to pobieranie treści przez boty.
  • Indeksacja to decyzja wyszukiwarki, czy dany URL ma trafić do wyników.
  • Disallow ogranicza pobieranie URL-i, ale nie gwarantuje braku indeksacji (URL może trafić do indeksu z samych linków zewnętrznych/wewnętrznych).
  • Jeśli chcesz wykluczyć stronę z wyników, użyj <meta name="robots" content="noindex"> na tej stronie i nie blokuj jej w robots.txt — inaczej bot nie zobaczy meta.

Co robots.txt może, a czego nie może

Może:

  • zablokować crawlowanie wybranych ścieżek (Disallow),
  • zezwolić na wyjątki w zablokowanej strefie (Allow),
  • wskazać lokalizację map witryny (Sitemap).

Nie może:

  • wymusić deindeksacji (od tego jest meta noindex lub nagłówek x-robots-tag),
  • ustalać wersji kanonicznej,
  • regulować szybkości crawlowania w Google (Crawl-delay przez Google ignorowane),
  • działać „globalnie” dla całej infrastruktury — każda subdomena ma swój własny robots.txt.

Jak wyszukiwarki czytają reguły — składnia i priorytety

  • User-agent: — wskaż bota (np. Googlebot) lub * dla wszystkich.
  • Disallow: — ścieżka zakazana; pusta wartość = wszystko dozwolone.
  • Allow: — wyjątek od Disallow (obsługiwane m.in. przez Google).
  • Wildcardy: * (dowolny ciąg znaków), $ (koniec adresu).
  • Reguły dopasowane bardziej szczegółowo zwykle wygrywają nad ogólnymi.
  • Wpisy Sitemap: mogą występować wielokrotnie (dla wielu map).

Minimalny, bezpieczny start (WordPress)

User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php

Sitemap: https://twojadomena.pl/sitemap_index.xml

Konsekwencje złej konfiguracji

  • zablokowanie katalogów z CSS/JS utrudnia renderowanie i obniża jakość ocen UX,
  • globalne Disallow: / (często po developmencie) = brak crawlowania całej witryny,
  • blokowanie stron, które mają noindex, uniemożliwia botowi odczyt meta i „uwięzi” adres w indeksie.

Gdzie umieścić robots.txt i jak dodać w WordPressie

Lokalizacja i dostępność pliku

  • Miejsce: katalog główny hostingu (root domeny).
  • Publiczny URL: https://twojadomena.pl/robots.txt.
  • Sprawdź, czy serwer zwraca HTTP 200 i nagłówek Content-Type: text/plain.
  • Maksymalny rozmiar praktyczny: do ~500 KB (to i tak bardzo dużo).

WordPress — trzy bezpieczne sposoby

  1. Ręcznie (FTP / Menedżer plików)
    • Utwórz w root robots.txt, wklej treść, zapisz w kodowaniu UTF-8.
    • Plus: pełna kontrola. Minus: łatwo o błąd przy ręcznych edycjach.
  2. Wtyczka SEO (Yoast / Rank Math / AIOSEO)
    • Z poziomu panelu edytujesz robots.txt i sitemap.
    • Nie twórz wtedy pliku ręcznie, aby uniknąć konfliktu dwóch źródeł.
  3. Motyw/własny snippet (dla zaawansowanych)
    • Serwowanie „wirtualnego” robots.txt przez hook (np. do_robots).
    • Wymaga świadomości, by nie kolidować z wtyczkami SEO.

Nagłówki, cache i wersjonowanie

  • Content-Type: text/plain; charset=utf-8.
  • Cache: możesz keszować, ale pamiętaj o odświeżeniu po zmianach (purge).
  • Roboty okresowo pobierają nową wersję — przy krytycznych zmianach warto równolegle zaktualizować i pingnąć sitemapę.

Subdomeny, staging i wielojęzyczność

  • Każda subdomena (np. blog.twojadomena.pl) ma osobny robots.txt.
  • Środowiska testowe (stage.twojadomena.pl) zabezpiecz hasłem i dodaj Disallow: / tylko tam — nigdy na produkcji.
  • W wersjach wielojęzycznych (np. /pl/, /en/) zwykle jeden robots.txt dla domeny, bez blokowania zasobów dla hreflang i API (/wp-json/).

Szybka lista kontrolna wdrożenia

  • publiczny URL .../robots.txt zwraca 200 i text/plain,
  • nie blokujesz katalogów z CSS/JS,
  • dodałeś linie Sitemap: dla wszystkich map,
  • nie ma globalnego Disallow: / na produkcji,
  • strony z noindex nie są blokowane w robots.txt,
  • subdomeny mają własne, dostosowane pliki.

Składnia i najważniejsze dyrektywy w robots.txt

robots.txt składa się z bloków reguł dla wybranych botów. Każdy blok zaczyna się od User-agent: i zawiera dyrektywy, które go dotyczą. Komentarze zaczynamy #. Ścieżki są case-sensitive (po domenie), więc /Folder/ i /folder/ to różne adresy.

Struktura pliku — bloki dla botów

Najpierw reguły dla konkretnych botów (np. Googlebot-Image), potem ogólny blok *. Bot wybiera najlepiej dopasowaną nazwę (np. Googlebot-Image zamiast Googlebot, a Googlebot zamiast *).

# Blok dla obrazów Google
User-agent: Googlebot-Image
Allow: /wp-content/uploads/
Disallow: /private/

# Ogólny blok dla wszystkich
User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php
Sitemap: https://twojadomena.pl/sitemap_index.xml

User-agent — do kogo mówisz?

  • User-agent: * — reguły dla wszystkich botów.
  • Konkret: Googlebot, Googlebot-Image, AdsBot-Google, Bingbot.
  • Jeśli ten sam bot pasuje do wielu bloków, bierze ten najbardziej szczegółowy.

Disallow — czego nie crawlować

Zakazuje pobierania dopasowanych ścieżek. Pusta wartość po Disallow: oznacza „nic nie zakazuj”.

User-agent: *
Disallow: /wp-admin/
Disallow: /search/            # katalog wyników wyszukiwarki wewnętrznej
Disallow: /*?s=               # zapytania ?s= (WordPress search)
Disallow: /*.pdf$             # wszystkie PDF-y

Uwaga: Disallow nie usuwa stron z indeksu. Do deindeksacji użyj noindex (meta/nagłówek).


Allow — wyjątek od zakazu

Pozwala na crawl w obrębie zablokowanego katalogu. Wspierane m.in. przez Google.

User-agent: *
Disallow: /private/
Allow: /private/js/
Allow: /private/css/

Sitemap — gdzie są mapy witryny

Podawaj pełne adresy; możesz dodać kilka linii, także do map na subdomenach.

Sitemap: https://twojadomena.pl/sitemap_index.xml
Sitemap: https://blog.twojadomena.pl/sitemap_index.xml

Wildcardy i kotwica końca

  • * — dowolny ciąg znaków (w tym parametry).
  • $ — koniec URL (użyteczne dla rozszerzeń plików).
User-agent: *
Disallow: /*?utm_          # wszystkie adresy z parametrami kampanii
Disallow: /*?filter_*      # adresy z parametrami filtrów
Disallow: /*.xlsx$         # pliki xlsx
Allow: /media/*.webp$      # zezwól wybrane rozszerzenie w danym katalogu

Priorytety i rozstrzyganie konfliktów

Google stosuje zasadę najdłuższego dopasowania ścieżki (bardziej szczegółowa reguła wygrywa).

User-agent: *
Disallow: /private/
Allow: /private/zasoby-publiczne/

# Wynik:
# /private/raport.html         → zablokowane
# /private/zasoby-publiczne/   → dozwolone (Allow jest bardziej szczegółowe)

Dyrektywy i konstrukcje, których lepiej nie używać

  • Noindex: w robots.txt — niewspierane przez Google.
  • Crawl-delay:ignorowane przez Google (częściowo wspiera Bing/Yandex).
  • Host:ignorowane przez Google.
  • Blokowanie /wp-includes/, /wp-content/ w WordPress — grozi utratą renderu (CSS/JS).

Przykłady dopasowań — szybkie studium przypadku

User-agent: *
Disallow: /tag/
Disallow: /*?orderby=
Allow: /tag/poradnik-seo/        # wyjątek: chcesz, by ta sekcja była crawlowa

# /tag/nowosci/                   → zablokowane
# /tag/poradnik-seo/              → dozwolone (Allow)
# /kategoria/akcesoria/?orderby=price  → zablokowane (parametr sortowania)

Minimalny, bezpieczny wzorzec (WordPress/WooCommerce)

User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php

# NIE blokuj koszyka/checkout — daj tam meta noindex w szablonie:
# /cart/, /checkout/, /my-account/

Sitemap: https://twojadomena.pl/sitemap_index.xml

20 gotowych przykładów reguł (różne przypadki)

Nie wklejaj wszystkich naraz. Wybierz te, które pasują do Twojej witryny.
Komentarze po # są dla Ciebie – roboty je ignorują.

1) WordPress – bezpieczny start

User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php
Sitemap: https://twojadomena.pl/sitemap_index.xml

2) WP – nie blokuj zasobów (CSS/JS)

User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php
# Nie blokujemy /wp-includes/ ani /wp-content/ – potrzebne do renderu

3) Wewnętrzna wyszukiwarka WP

User-agent: *
Disallow: /*?s=
# Lepiej: meta noindex na stronach wyszukiwania, zamiast Disallow

4) Parametry UTM, FBCLID, GCLID (śmieci w indeksie)

User-agent: *
Disallow: /*?utm_
Disallow: /*&utm_
Disallow: /*?gclid=
Disallow: /*?fbclid=

5) Katalog wyników wyszukiwania (niestandardowy)

User-agent: *
Disallow: /search/

6) Strony podglądu, wersje robocze

User-agent: *
Disallow: /*?preview=true
Disallow: /wp-json/wp/v2/   # ostrożnie – blokując API możesz utrudnić integracje

7) Archiwa dat / autorów (jeśli duplikują)

User-agent: *
Disallow: /author/
Disallow: /2023/
Disallow: /2024/
# Częściej stosuj meta noindex w szablonie tych archiwów

8) Paginacje w tagach/kategoriach (jeśli nieużyteczne)

User-agent: *
Disallow: /tag/*/page/
Disallow: /category/*/page/

9) WooCommerce – parametry, sortowanie, filtrowanie

User-agent: *
Disallow: /*?orderby=
Disallow: /*?filter_
Disallow: /*?min_price=
Disallow: /*?max_price=
# Uwaga: nie blokuj istotnych listingów – rozważ faceted SEO + kanonikalizacje

10) WooCommerce – koszyk/checkout/konto (preferuj meta noindex)

User-agent: *
Disallow: /cart/
Disallow: /checkout/
Disallow: /my-account/
# Lepsze: noindex w szablonach, bez Disallow, by robot widział meta

11) Blokowanie feedów (opcjonalnie)

User-agent: *
Disallow: /feed/
Disallow: /*/feed/
Disallow: /comments/feed/

12) Pliki do pobrania (PDF, CSV – jeśli nie chcesz ich w indeksie)

User-agent: *
Disallow: /*.pdf$
Disallow: /*.csv$
# Jeśli chcesz, by roboty indeksowały opisy plików – nie blokuj, użyj noindex po stronie listingu

13) Katalogi prywatne / staging

User-agent: *
Disallow: /private/
Disallow: /backup/
Disallow: /stage/
Disallow: /test/
# Staging zabezpiecz również hasłem (Basic Auth)

14) Wyjątki w obszarze zablokowanym (Allow w Google)

User-agent: *
Disallow: /private/
Allow: /private/css/
Allow: /private/js/

15) Wiele map witryny (multi-site, subdomena bloga)

Sitemap: https://twojadomena.pl/sitemap_index.xml
Sitemap: https://blog.twojadomena.pl/sitemap_index.xml
Sitemap: https://twojadomena.pl/news-sitemap.xml

16) Googlebot-Image – dopuszczamy obrazy

User-agent: Googlebot-Image
Allow: /wp-content/uploads/

17) AdsBot-Google – landing pages dla kampanii muszą być crawlable

User-agent: AdsBot-Google
Allow: /

18) Ograniczenie botów narzędziowych (ostrożnie – mogą być przydatne)

User-agent: AhrefsBot
Disallow: /

User-agent: SemrushBot
Disallow: /

19) Parametry kampanii i śledzenia (dodatkowe)

User-agent: *
Disallow: /*?utm_source=
Disallow: /*?utm_medium=
Disallow: /*?ref=
Disallow: /*?sessionid=

20) Wykluczenie podkatalogu z materiałami backend (np. exporty)

User-agent: *
Disallow: /export/
Disallow: /admin-tools/
Disallow: /*.log$

Wskazówka: jeśli masz wiele warstw przekierowań (np. 301→301→200), uporządkuj je – robots.txt nie rozwiązuje problemów łańcuchów, a tylko dokłada komplikacji w crawlowaniu.


marketing social media

Jak testować i monitorować

Szybka weryfikacja techniczna

  • Wejdź w przeglądarce na https://twojadomena.pl/robots.txt.
    Powinno zwrócić HTTP 200 i treść „czystego” tekstu.
  • Sprawdź nagłówek Content-Type: text/plain; charset=utf-8.
  • Jeśli używasz CDN/kesza, po zmianach wykonaj purge.

Google Search Console – Inspekcja URL i raporty

  • Inspekcja URL → Przetestuj adres na żywo:
    zobaczysz, czy Crawl allowed = Tak/Nie dla danego URL.
  • Strony (Indexing → Pages):
    przejrzyj sekcję „Wykluczone” – zobaczysz „Zablokowano przez plik robots txt” oraz konkretne przykłady.
  • Sitemaps: dodaj/zaktualizuj mapę. Jeśli zmieniasz reguły robots, dobrze jest również „odświeżyć” zgłoszenie mapy.

Test w crawlerze (Screaming Frog / Sitebulb)

  • Uruchom crawl domeny i porównaj listę „Blocked by robots.txt”.
  • Przetestuj „Custom robots.txt” (Screaming Frog ma opcję Local robots.txt) – możesz sprawdzić nową wersję przed wdrożeniem na produkcji.
  • Sprawdź zakładki: Render, Blocked Resources – czy CSS/JS są dostępne.

Analiza logów serwera

  • W logach http(s) zobaczysz faktyczne odwiedziny botów (User-Agent, kod odpowiedzi, ścieżka).
  • Szukaj:
    • nadmiernych hitów na „mało wartościowe” parametry,
    • błędów 404/5xx indeksowanych stron,
    • nagłych spadków hitów Googlebota po zmianach w robots.txt.

Procedura po zmianach

  1. Zrób kopię obecnego robots.txt.
  2. Wprowadź zmiany najpierw na stagingu i przetestuj crawlerem.
  3. Wdróż na produkcję, zrób purge cache/CDN.
  4. Zaktualizuj/zgłoś Sitemaps w GSC.
  5. Monitoruj przez 7–14 dni: raport „Strony” i „Crawled/Indexed” oraz logi.

Najczęstsze czerwone flagi

  • „Zablokowano przez plik robots.txt” w ważnych URL-ach produktowych/kategorii.
  • Blokada katalogów z CSS/JS.
  • Globalne Disallow: / pozostawione po developmencie.
  • Blokowanie stron z meta noindex (robot nie może odczytać meta).
  • Brak linii Sitemap: lub błędne ścieżki map.

Budujemy strony zgodne z najlepszymi standardami Google: Core Web Vitals, podejście mobile-first, schema.org i dostępność.

Tworzenie stron internetowych

Wtyczki WordPress do robots.txt – które wybrać i jak dbać o czytelność

Zasada numer jeden: jedna wtyczka SEO powinna odpowiadać zarówno za robots.txt, jak i sitemapę. To minimalizuje konflikty i utrzymuje spójność. Plik fizyczny robots.txt trzymaj tylko wtedy, gdy świadomie rezygnujesz z edycji przez wtyczkę.

Yoast SEO – bezpieczny minimalizm

Plusy:

  • Prosty edytor robots.txt i automatyczna obsługa sitemap (gdy włączona funkcja map).
  • Rozsądne ustawienia domyślne; mniejsze ryzyko „przeoptymalizowania”.
    Na co uważać:
  • Jeśli istnieje fizyczny robots.txt w root, edycja w panelu może być wyłączona.
  • Edytor plików bywa blokowany przez politykę hostingu (to normalne – wtedy edytuj przez FTP).

Czytelność: Yoast zwykle nie „zaśmieca” pliku. Zalecany, jeśli chcesz minimum reguł + pełną kontrolę.


Rank Math SEO – elastyczny edytor wirtualny

Plusy:

  • Wygodny „wirtualny” robots.txt (bez fizycznego pliku), szybka edycja i rollback.
  • Dobra obsługa multisite; wygodne dodawanie kilku linii Sitemap:.
    Na co uważać:
  • Szablony i gotowce potrafią dodać zbyt wiele reguł – trzymaj minimalizm.
  • Łatwo przypadkowo zablokować zasoby, jeśli bezrefleksyjnie użyjesz gotowych presetów.

Czytelność: świetna, jeśli trzymasz się własnej konwencji i ograniczasz liczbę bloków.


All in One SEO (AIOSEO) – wszystko w jednym

Plusy:

  • Globalny edytor robots.txt + integracja z sitemapą i regułami indeksowania.
  • Dobre podpowiedzi dla początkujących.
    Na co uważać:
  • Opcje typu „blokady botów” mogą dopisywać obszerne listy user-agentów. Czytelność i utrzymanie spadają, a efekt SEO bywa iluzoryczny.
  • Unikaj nadmiarowych reguł – łatwo o chaos.

Czytelność: dobra, o ile nie włączasz masowego „blokowania botów”.


SEOPress – lekko i przejrzyście

Plusy:

  • Prosty edytor, czysty domyślny output; dobre dla stron nastawionych na minimalizm.
  • Wsparcie multisite.
    Na co uważać:
  • Jeśli równocześnie działa inna wtyczka SEO, możesz dorobić się dwóch źródeł prawdy. Zostań przy jednej.

Czytelność: bardzo dobra, gdy trzymasz jednolitą konwencję formatowania.


„WP Robots Txt” i podobne wtyczki pojedynczego celu

Plusy:

  • Bardzo proste – tylko edycja robots.txt.
    Na co uważać:
  • Brak integracji z mapami witryn; większe ryzyko rozjazdu między robots.txt a sitemapą.
  • Łatwo o konflikt, gdy później doinstalujesz dużą wtyczkę SEO.

Czytelność: zależy wyłącznie od Twojej dyscypliny – brak „prowadzenia za rękę”.


Rekomendacja wyboru

  • Wybierz jeden „silnik” SEO (Yoast albo Rank Math albo SEOPress/AIOSEO) i powierz mu jednocześnie robots.txt oraz sitemapę.
  • Unikaj równoległej edycji: wtyczka + fizyczny plik na FTP.
  • Zadbaj o konwencję formatowania – ten sam układ bloków we wszystkich projektach.


Konwencja czytelności — prosty standard do wdrożenia

  1. Krótki komentarz nagłówkowy (data/autor zmiany).
  2. Najpierw bloki dla botów specyficznych (np. Googlebot-Image), potem blok *.
  3. Grupuj reguły: katalogi, parametry, rozszerzenia plików.
  4. Na końcu wszystkie wiersze Sitemap: (pełne URL-e).
  5. Puste linie między blokami, bez egzotycznych dyrektyw.

Przykład „czytelny”:

# robots.txt – SocialBerry, aktualizacja: 2025-08-25

User-agent: Googlebot-Image
Allow: /wp-content/uploads/

User-agent: *
# Katalogi systemowe
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php

# Parametry i śmieci
Disallow: /*?s=
Disallow: /*?utm_
Disallow: /*?fbclid=
Disallow: /*?gclid=

# Rozszerzenia (opcjonalnie)
# Disallow: /*.pdf$

Sitemap: https://twojadomena.pl/sitemap_index.xml
Sitemap: https://blog.twojadomena.pl/sitemap_index.xml

Przykład „nieczytelny” (czego unikać):

User-agent:* Disallow:/ wp-admin/ Disallow:/*?s=Disallow:/*?utm_Allow:/wp-admin/admin-ajax.php
Sitemap:https://twojadomena.pl/sitemap_index.xml Sitemap:https://blog.twojadomena.pl/sitemap_index.xml
# losowa lista 50 botów do blokowania...

Kiedy fizyczny plik, a kiedy „wirtualny” przez wtyczkę?

  • Wirtualny (przez wtyczkę SEO): zalecany w 90% przypadków — łatwa edycja, wersjonowanie, spójność z sitemapą.
  • Fizyczny plik: gdy masz nietypową infrastrukturę/CI/CD, chcesz wersjonować robots.txt w repo lub hosting blokuje edycję plików z panelu.

Drobne, ale ważne dobre praktyki

  • Nie blokuj katalogów z CSS/JS – wpływa to na render.
  • Nie używaj Noindex: w robots.txt — Google tego nie wspiera.
  • Crawl-delay i Host ignorowane przez Google — nie śmieć nimi w pliku.
  • Strony typu koszyk/checkout/konto oznaczaj meta noindex w szablonach, nie w robots.txt.
  • Po każdej zmianie: purge cache/CDN i szybki test w GSC → Inspekcja URL.
Facebook w wynikach wyszukiwania Google - Podsumowanie

Podsumowanie – warto poświęcić parę minut na porządny robots.txt

Dobrze zaprojektowany robots.txt porządkuje sposób, w jaki boty eksplorują Twoją stronę. To nie jest „magiczny przełącznik SEO”, ale element, który realnie wpływa na wydajność crawlowania, szybkość wykrywania nowych treści i stabilność renderowania. Klucz tkwi w zrozumieniu różnicy między crawlowaniem a indeksacją: Disallow jedynie ogranicza pobieranie adresów, natomiast o obecności w wynikach decydują mechanizmy indeksacji. Dlatego do usuwania adresów z wyników służy meta noindex/nagłówek X-Robots-Tag, a nie robots.txt.

Najczęstsze problemy wynikają z kilku prostych błędów: przypadkowe pozostawienie Disallow: / po developmencie, blokowanie kluczowych zasobów CSS/JS (co obniża jakość renderu), blokowanie stron z noindex (robot nie widzi meta) oraz brak odniesień do Sitemaps, przez co roboty wolniej odnajdują nowe adresy. W środowiskach z subdomenami pamiętaj, że każda z nich ma swój własny robots.txt. W stagingu zabezpieczaj dostęp hasłem i stosuj osobny, restrykcyjny plik – nigdy nie kopiuj go bezrefleksyjnie na produkcję.

Finalnie, najlepszą strategią jest minimalizm plus świadome wyjątki: krótki, czytelny plik z kilkoma regułami i wyraźnie wskazaną mapą witryny. Gdy dochodzą zaawansowane przypadki (filtrowanie, sortowanie, faceted navigation, rozbudowane parametry, różne boty), pracuj iteracyjnie: wprowadź zmianę, przetestuj w Inspekcji URL i crawlerze, sprawdź logi, a potem wdrażaj na produkcję z kontrolą efektów w Search Console.

Najważniejsze zasady w pigułce

  • Nie myl Disallow z deindeksacją – do wykluczania używaj noindex.
  • Nie blokuj katalogów z CSS/JS – są potrzebne do renderowania.
  • Dodaj wszystkie mapy witryny w liniach Sitemap: (także dla subdomen).
  • Każda subdomena ma osobny robots.txt.
  • Staging/test: hasło + restrykcyjny robots.txt tylko tam.
  • Zmiany wprowadzaj małymi krokami i monitoruj w GSC, crawlerze i logach.

Co zrobić teraz (checklista działań)

  1. Otwórz https://twojadomena.pl/robots.txt i sprawdź: HTTP 200 oraz Content-Type: text/plain.
  2. Upewnij się, że nie blokujesz /wp-content/ i /wp-includes/ (WordPress) ani krytycznych zasobów.
  3. Dodaj/zweryfikuj linie Sitemap: (wszystkie mapy w pełnych URL-ach).
  4. Sprawdź w Search Console → Inspekcja URL, czy kluczowe strony mają „Crawl allowed: Yes”.
  5. Przepuść test w Screaming Frog/Sitebulb z lokalnym robots.txt, zanim wdrożysz zmiany.
  6. Po wdrożeniu zrób purge cache/CDN i zaktualizuj Sitemaps w GSC.
  7. Monitoruj raporty „Strony” i logi przez 7–14 dni; koryguj reguły, jeśli zajdzie potrzeba.

Chcesz mieć pewność, że robots.txt, sitemap i render są skonfigurowane poprawnie?

Zamów szybki audyt techniczny SEO
Oficjalne wytyczne Google dotyczące pliku robots.txt oraz metatagów indeksowania znajdziesz w dokumentacji Search Central: robots.txt – wprowadzenie i meta robots.

Mini FAQ, czyli nie bądź zielony w temacie robots.txt

Zielona Borówka robots.txt
Robots.txt – co to jest i do czego służy?
To prosty plik tekstowy w katalogu głównym domeny, który instruuje roboty wyszukiwarek, które ścieżki mogą crawlować, a które omijać. Nie decyduje bezpośrednio o indeksacji.
Gdzie musi się znajdować robots.txt?
W katalogu głównym (root) domeny, pod adresem: https://twojadomena.pl/robots.txt. Serwer powinien zwracać HTTP 200 i Content-Type: text/plain.
Czy Disallow usuwa stronę z Google?
Nie. Disallow ogranicza crawlowanie, ale adres może się pojawić w indeksie z samych linków. Do wykluczania użyj meta noindex (lub nagłówka X-Robots-Tag) i nie blokuj równocześnie tego URL w robots.txt.
Jak dodać mapę witryny w robots.txt?
Dodaj pełny URL w osobnej linii, np.: Sitemap: https://twojadomena.pl/sitemap_index.xml. Dopuszczalne są wiele linii Sitemap: (np. blog, newsy, subdomeny).
Czy każda subdomena ma własny robots.txt?
Tak. blog.twojadomena.pl/robots.txt to inny plik niż www.twojadomena.pl/robots.txt. Reguły dobierasz do roli subdomeny.
Czy mogę blokować CSS i JS w robots.txt?
Lepiej nie. Wyszukiwarki potrzebują CSS/JS do poprawnego renderowania. Blokady mogą obniżyć ocenę jakości strony (UX) i utrudnić indeksację.
Jak dodać robots.txt w WordPressie – wtyczka czy plik?
Najprościej przez wtyczkę SEO (Yoast, Rank Math, SEOPress). Wtedy nie twórz równolegle fizycznego pliku w FTP, aby uniknąć konfliktów. Alternatywnie – ręcznie w katalogu głównym.
Jak przetestować robots.txt w praktyce?
Wejdź na /robots.txt i sprawdź HTTP 200. W Search Console użyj Inspekcji URL (czy „Crawl allowed: Yes”). W crawlerze (Screaming Frog/Sitebulb) przetestuj „custom robots.txt”.
Czy warto blokować parametry UTM, fbclid, gclid?
Często tak, aby ograniczyć duplikację i „śmieciowe” adresy. Przykłady: Disallow: /*?utm_, Disallow: /*?fbclid=, Disallow: /*?gclid=.
Czy Crawl-delay/Host/Noindex działają w Google w robots.txt?
Google ignoruje Crawl-delay i Host. Noindex w robots.txt również nie działa. Do deindeksacji stosuj meta noindex lub nagłówek X-Robots-Tag.
Co zrobić, gdy przez przypadek mam Disallow: / na produkcji?
Usuń blokadę natychmiast, wyczyść cache/CDN, przetestuj kluczowe adresy w Inspekcji URL i zaktualizuj mapy w GSC, aby przyspieszyć crawlowanie.
Czy blokować wyniki wyszukiwania, filtry i sortowanie?
Często tak (ze względu na duplikacje). Przykłady: Disallow: /*?s=, Disallow: /*?orderby=, Disallow: /*?filter_. Rozważ też kanonikalizację i reguły po stronie szablonu.
Jak wykluczyć pliki PDF z crawlowania i wyników?
W robots.txt: Disallow: /*.pdf$ (dotyczy crawlowania). Jeśli chcesz je usunąć z wyników, zastosuj meta/nagłówek noindex na stronach, które je eksponują, bo sam Disallow nie usuwa z indeksu.
Gdzie znaleźć oficjalne wytyczne Google dla robots.txt?
W dokumentacji Google dla webmasterów: robots.txt – wprowadzenie. Do diagnostyki użyj także Google Search Console.

Krzysztof Gruca
Krzysztof Gruca

Projektant stron i specjalista SEO/UX z 20-letnim stażem. Łączę wyczucie grafiki z technicznym SEO i dbałością o wydajność (Core Web Vitals), żeby każdy projekt był intuicyjny, szybki i gotowy na wysokie pozycje - a kawa to mój najwierniejszy framework.