robots.txt – co to jest, jak działa i jak go poprawnie skonfigurować?

obrazek ilustrujący marketing internetowy

robots.txt to prosty plik tekstowy umieszczony w katalogu głównym serwisu, który instruuje roboty indeksujące (crawlers), które zasoby mogą być crawlowane, a które powinny zostać pominięte dzięki odpowiednim dyrektywom dla robotów (np. roboty Google). Pamiętaj jednak: robots.txt dotyczy crawlowania, a nie indeksowania – samo zablokowanie URL-a w robots.txt nie gwarantuje jego usunięcia z indeksu.

Po co go stosować? Żeby kierować ruchem robotów, dbać o serwer, minimalizować marnowanie crawl budgetu i wykluczać szum (np. parametry filtrów). Kogo dotyczy? Właścicieli stron, sklepów i blogów, administratorów, marketerów i deweloperów. Jakie ma ograniczenia? Działa w ramach Robots Exclusion Protocol i jest dobrowolnie respektowany – nie każdy crawler będzie grzeczny. Z drugiej strony, dobrze przygotowane dyrektywy pomagają robotowi indeksującemu efektywnie odwiedzać witrynę bez dławienia serwera nadmiarem żądań HTTP. W praktyce operujesz dyrektywami na poziomie User-agent i ścieżek URL/host.

Spis treści

    Jak działa Robots Exclusion Protocol?

    Robot Google odwiedza https://domena.pl/robots.txt, czyta sekcje User-agent, dopasowuje reguły (pattern matching), a następnie stosuje najbardziej precyzyjne zasady (priorytet reguł). Proste znaki specjalne jak wildcard * oraz znak końca dopasowania $ pomagają sterować dopasowaniem do ścieżek URL. Komentarze zaczynające się od # są ignorowane przez boty. To mechanizm dobrowolny – nie wszystkie boty będą go szanować, choć kluczowe wyszukiwarki zwykle tak.

    Składnia pliku robots.txt

    Poniżej znajdziesz najważniejsze dyrektywy, które przydadzą Ci się przy pozycjonowaniu stron. Każda definicja zaczyna się krótką odpowiedzią „co robi”, a potem dostajesz mikro-przykłady w kodzie. Tak – dokładnie tak, jak lubi robot google i zespół devów.

    User-agent

    Co robi: wskazuje, do którego bota (robota indeksującego) odnoszą się kolejne reguły.

    Przykłady:
    User-agent: *
    Disallow: /private/
    
    User-agent: Googlebot
    Allow: /blog/
    Disallow: /beta/
    
    User-agent: Bingbot
    Crawl-delay: 5
    
    User-agent: Googlebot-Image
    Disallow: /tmp/
    
    User-agent: AdsBot-Google
    Allow: /public/

    Disallow i Allow

    Co robi: Disallow blokuje crawlowanie danej ścieżki, a Allow je dopuszcza - przy konflikcie wygrywa reguła dokładniej dopasowana (precedencja na korzyść precyzji).

    Przykłady:
    User-agent: *
    Disallow: /private/
    Allow: /private/plik-dozwolony.html
    
    # wzorce:
    Disallow: /search # blokuje /search i wszystko poniżej
    Disallow: /koszyk/ # blokuje ścieżkę i potomków
    Allow: /public/css/*.css # UWAGA: Google wspiera *, ale nie regexy pełne

    Sitemap

    Co robi: podaje lokalizację mapy stron XML (możesz wskazać wiele plików; obsługuje subdomeny i zewnętrzne hosty).

    Przykłady:
    Sitemap: https://www.example.com/sitemap.xml
    Sitemap: https://cdn.example.com/sitemaps/sitemap-posts.xml
    Sitemap: https://sklep.example.com/sitemap.xml

    Crawl-delay (obsługa zależna od bota)

    Co robi: sugeruje przerwę między żądaniami - część botów (np. Bingbot) respektuje; Googlebot ignoruje.

    Ryzyko: zbyt duża wartość wydłuża crawlowanie i opóźnia odświeżanie treści.

    Przykłady:
    User-agent: Bingbot
    Crawl-delay: 5
    
    User-agent: Yandex
    Crawl-delay: 10

    Wzorce * i $, komentarze #

    Co robi: * działa jako wildcard, a $ oznacza koniec dopasowania. # wprowadza komentarz.

    Przykłady:
    # blokuj tylko pliki PNG (dokładnie końcówka)
    User-agent: Googlebot-Image
    Disallow: /*.png$
    
    # blokuj wszystko w katalogach tymczasowych
    User-agent: *
    Disallow: /tmp/
    Disallow: /cache-*/
    
    # ignoruj komentarze
    # To jest komentarz i nie wpływa na dopasowanie

    Umiejscowienie i serwowanie robots.txt

    Plik musi być dostępny pod /robots.txt w katalogu głównym hosta. HTTPS to standard; www i bez www traktuj jak osobne hosty (każdy ma swój robots.txt). Subdomena (np. blog.example.com) również potrzebuje własnego pliku. Statusy HTTP mają znaczenie: 200 - plik istnieje i obowiązuje; 404 - brak pliku (bot zwykle przyjmuje „brak ograniczeń”); 403 - zabronione (część botów zakłada „wszystko zabronione”). Pamiętaj o nagłówkach HTTP (np. prawidłowe kodowanie).

    Reguły dla popularnych botów (praktyczne mini-bloczki)

    Googlebot / Googlebot-Image / AdsBot-Google - nie blokuj zasobów krytycznych dla renderowania: JavaScript i CSS.

    Przykład:
    User-agent: Googlebot
    Allow: /assets/js/
    Allow: /assets/css/
    Disallow: /kopia-robocza/
    
    User-agent: Googlebot-Image
    Allow: /media/
    Disallow: /media/prywatne/
    
    User-agent: AdsBot-Google
    Allow: /

    Bingbot - podobne zalecenia; ew. Crawl-delay:

    Przykład:
    User-agent: Bingbot
    Allow: /assets/
    Disallow: /kopia-robocza/
    Crawl-delay: 5

    Robots.txt - dobre praktyki vs. ryzyka

    1. Nie używaj robots.txt do usuwania z indeksu. Zamiast tego: meta robots noindex, X-Robots-Tag w nagłówkach lub kontrola autoryzacją (np. basic auth) albo statusy 404/410.
    2. Nie blokuj JS/CSS potrzebnych do renderowania. Google ocenia stronę tak, jak ją „zobaczy”.
    3. Uważaj na zbyt szerokie wzorce. Disallow: /search ≠ Disallow: /search? — to różne kryteria.
    4. Środowiska testowe zabezpieczaj hasłem, zamiast zostawiać globalne Disallow: / w produkcji.

    Typowe wzorce i gotowce

    E-commerce: parametry filtrów, koszyk/checkout

    Zastosowanie: mniejszy szum w indeksie, lepsza alokacja crawl budgetu.

    Przykład:
    User-agent: *
    # Filtry i paginacja — ogranicz szum crawla
    Disallow: /*?sort=
    Disallow: /*?filter=
    Disallow: /*?page=
    
    # Sekcje transakcyjne
    Disallow: /koszyk/
    Disallow: /checkout/

    CMS (WordPress): blok wp-admin z dopuszczeniem AJAX

    Zastosowanie w WordPresie: panel poza crawllem, ale mechanizmy AJAX (np. wyszukiwarka, lazy) działają.

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

    Relacja robots.txt ↔ sitemap.xml

    W robots.txt podawaj Sitemap.xml, szczególnie gdy masz wiele sekcji lub subdomen. Dbaj o kanoniczność i spójność lokalizacji URL - mapa powinna wskazywać kanoniczne adresy tej samej domeny/hosta. W środowiskach wielodomenowych rozdzielaj mapy per host.

    Testowanie i monitorowanie pliku robots.txt

    Jak weryfikować, czy reguły działają?

    • Narzędzia webmastera (np. „tester robots.txt”).
    • Logi serwera (User-agent, ścieżka, status HTTP).
    • curl -I https://domena.pl/robots.txt i selektywne testy URL.
    • Monitoruj crawl budget i anomalie w częstotliwości wejść.

    Najczęstsze błędy - checklista

    1. Używanie robots.txt do „noindex” → zastosuj meta robots lub X-Robots-Tag.
    2. Globalne Disallow: / lub zbyt szerokie wzorce.
    3. Blokowanie JS/CSS koniecznych do renderowania.
    4. Zostawienie Disallow: / po migracji ze stagingu.
    5. Błędne wieloznaczniki (*, $) prowadzące do niespodziewanych dopasowań.

    Parę osobistych uwag na koniec

    Dobrze napisany robots.txt jest jak ruch uliczny z mądrymi znakami - nie zamykasz autostrady, tylko kierujesz strumień tam, gdzie ma sens. Oto dlaczego zawsze sprawdzam logi i realne ścieżki wejść botów podczas analizy SEO. Znam ten ból, gdy przez jeden zbyt szeroki Disallow znika pół bloga z crawla. Dlatego proponuję działać ostrożnie, testować i wersjonować. Jeśli chcesz, mogę przejrzeć Twój plik i przygotować bezpieczną konfigurację pod Twój sklep czy blog - technicznie i „po ludzku”.

      Źródła i materiały
      1. https://developers.google.com/search/docs/crawling-indexing/robots/intro?hl=pl
      2. https://developers.google.com/crawling/docs/robots-txt/robots-txt-spec
      3. https://developers.google.com/crawling/docs/robots-txt/create-robots-txt
      4. https://www.semstorm.com/pl/blog/seo-and-ppc/plik-robotstxt-co-jest-i-jak-tego-uzywac
      Zdjęcie autora artykuły Bartosza Politowskiego

      Bartosz Politowski

      Specjalista SEO & Web Developer

      Pomagam firmom rosnąć dzięki SEO, analityce i mądremu contentowi. Tworzę i modernizuję strony / sklepy, układam roadmapy i plany contentowe, a kampanie oceniam językiem biznesu.