Plik robots.txt i mapa XML: jak poprawnie skonfigurować crawl budget
robots.txt i mapa XML konfiguracja to fundament technicznego SEO. Blokuj sesje, koszyki i wyszukiwania wewnętrzne, a sitemapę ogranicz wyłącznie do indeksowalnych, kanonicznych URLi. Google zyska jasny sygnał, co ma sens crawlować.
Plik robots.txt ma raptem kilkadziesiąt linijek, ale potrafi zdecydować o tym, czy Googlebot w ogóle dotrze do Twoich najważniejszych stron. Mapa XML to z kolei lista adresów, którą serwujesz robotom na tacy - i tutaj też można zepsuć więcej, niż się wydaje. Oba pliki razem tworzą coś w rodzaju systemu nawigacji dla crawlerów, a ich błędna konfiguracja kosztuje widoczność.
W tym artykule przechodzę przez całość: co powinno się znaleźć w robots.txt, czego nie wolno blokować nawet jeśli kusząco wygląda na zbędne, jak zbudować sitemapę, która faktycznie przyspiesza indeksowanie, oraz jak sprawdzić czy w ogóle masz problem z crawl budgetem. Szczególnie dużo miejsca poświęcam WooCommerce, bo sklepy generują specyficzne typy URLi, które potrafią pożreć crawl budget w kilka tygodni.
Czym jest crawl budget i kiedy naprawdę ma znaczenie
Crawl budget to liczba stron, które Googlebot jest gotowy odwiedzić na Twojej witrynie w danym przedziale czasu. Wynika z dwóch czynników: limitu crawlowania (ile równoległych żądań może wysyłać bez przeciążenia serwera) i popytu na crawlowanie (jak bardzo Google jest zainteresowany Twoją treścią).
Gdzie leży granica, od której warto się tym przejmować? Google jasno mówi: dla serwisów poniżej kilku tysięcy stron budżet crawlowania rzadko jest realnym ograniczeniem - Googlebot odwiedzi całość. Problem pojawia się, gdy serwis ma dziesiątki tysięcy URLi, z czego duża część to strony bezwartościowe, sesyjne lub paginacyjne. Wtedy Googlebot marnuje wizyty na śmietnik, zamiast odwiedzać nowe produkty albo zaktualizowane wpisy.
Praktyczny punkt odniesienia: sklep WooCommerce z 500 produktami i kategoriami, kilkoma filtrami i blogiem może generować dziesiątki tysięcy permutacji URLi przez sam mechanizm filtrów i sortowania. To realne ryzyko nawet dla średniego e-commerce.
Struktura pliku robots.txt: co robić, czego unikać
Plik robots.txt leży w głównym katalogu domeny (np. https://twojadomena.pl/robots.txt) i jest publiczny - każdy może go zobaczyć. Składa się z bloków reguł, gdzie każdy blok zaczyna się od User-agent (bot, do którego kierujesz regułę), po czym następują dyrektywy Allow i Disallow.
Najważniejsza zasada: Disallow zablokuje crawlowanie, ale nie indeksowanie. Jeśli zablokujesz stronę w robots.txt, a do tej strony prowadzi link zewnętrzny, Google może zaindeksować ją jako pusty rekord z tytułem i URLem, ale bez treści. Żeby trwale usunąć stronę z indeksu, potrzebujesz meta noindex lub odpowiedzi HTTP X-Robots-Tag: noindex.
Druga zasada: nigdy nie blokuj /wp-content/. To błąd, który widzę regularnie w audytach - ktoś chciał „zabezpieczyć" katalog z plikami i przy okazji zablokował dostęp do CSS, JavaScript i obrazów. Googlebot renderuje strony jak przeglądarka: bez dostępu do arkuszy stylów i skryptów widzi gołe HTML bez formatowania, co algorytm interpretuje jako stronę złej jakości.
Blokada /wp-content/ to jeden z najczęstszych błędów w audytach WordPress. Efekty mogą być spektakularne: Google Search Console zaczyna raportować strony jako nieprzyjazne dla urządzeń mobilnych, mimo że responsywność kodu jest poprawna.
Co powinno znaleźć się w robots.txt dla typowego WordPressa bez sklepu?
User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php
Disallow: /?s=
Disallow: /search/
Disallow: /feed/
Sitemap: https://twojadomena.pl/sitemap_index.xml
Blokujemy panel administracyjny (poza admin-ajax.php, który obsługuje dynamiczne zapytania frontendowe), wewnętrzną wyszukiwarkę i feed RSS. Sitemap deklarujemy na końcu - to dobra praktyka, bo większość crawlerów ją czyta i od razu wie, gdzie szukać mapy witryny.
Konfiguracja robots.txt dla WooCommerce
WooCommerce generuje specyficzne URLe, które muszą być zablokowane. Koszyk, checkout, konto klienta i strony porównania produktów są bezwartościowe dla indeksowania, a każde crawlowanie ich to zmarnowana wizyta Googlebota.
Obowiązkowe blokady dla WooCommerce
- /cart/ - koszyk zakupowy, treść sesyjna
- /checkout/ - strona płatności, dane osobowe
- /my-account/ - panel klienta, chronione podstrony
- /wishlist/ - jeśli używasz pluginu listy życzeń
- /?add-to-cart= - dynamiczne parametry dodawania do koszyka
- /?orderby= - sortowanie produktów (duplikaty kategorii)
- /shop/?orderby= - sortowanie na stronie sklepu
- /product-category/?filter_ - parametry filtrów facetowych
- /shop/page/ - jeśli paginacja ma canonical na pierwszą stronę
U klienta prowadzącego sklep z meblami dziecięcymi (kilkaset produktów, kilkanaście kategorii, plugin WooCommerce Product Filters) po pierwszym audycie w Google Search Console znalazłem ponad 8000 URLi parametrycznych w raporcie Coverage. Googlebot odwiedzał kombinacje filtrów zamiast stron produktów. Po dodaniu blokady parametrów w robots.txt i ustawieniu canonical na kategorie liczba „crawlowanych" URLi spadła o 60% w ciągu trzech tygodni.
Przed zablokowaniem jakiegokolwiek URL sprawdź w Google Search Console > Statystyki indeksowania, jakie adresy Googlebot odwiedza najczęściej. Możesz być zaskoczony, ile czasu bot spędza na stronach, o których istnieniu nie wiedziałeś.
Do zablokowania parametrów możesz użyć wildcarda. Przykładowo Disallow: /*?orderby= zablokuje wszystkie URLe z parametrem orderby niezależnie od ścieżki bazowej. Googlebot obsługuje wildcard * i znacznik końca URLa $ w robots.txt, więc masz dużą elastyczność bez konieczności wpisywania każdego wariantu osobno.
AI crawlery: nowa kategoria do obsługi
Od 2025 roku właściciele stron muszą podjąć decyzję dotyczącą nowej klasy botów: crawlerów trenujących modele językowe. GPTBot (OpenAI), ClaudeBot (Anthropic) i CCBot (Common Crawl) respektują dyrektywę User-agent: GPTBot w robots.txt. Aktywność ClaudeBot na początku 2026 wzrosła o około 800% w związku ze skalowaniem API wyszukiwania przez Anthropic.
Kluczowa informacja: blokowanie tych botów nie ma żadnego wpływu na Twoje pozycje w Google. Googlebot i GPTBot to zupełnie różne systemy. Możesz zablokować AI crawlery, a jednocześnie pozostawić Googlebota z pełnym dostępem.
Crawlery: Googlebot vs AI boty
| Bot | Cel | Wpływ na Google ranking |
|---|---|---|
| Googlebot | Indeksowanie wyników wyszukiwania | Tak, bezpośredni |
| GPTBot | Trening modelu ChatGPT | Brak |
| ClaudeBot | Trening modelu Claude | Brak |
| Bingbot | Indeks Bing + Microsoft Copilot | Nie (chyba że zależy Ci na Bingu) |
| CCBot | Common Crawl dataset | Brak |
| PerplexityBot | Wyniki Perplexity AI | Zależy od strategii visibility w AI |
Strategia zależy od Twoich celów. Jeśli zależy Ci na widoczności w ChatGPT Search (OAI-SearchBot) - możesz zablokować GPTBot (trenujący model) a zostawić OAI-SearchBot. To daje obecność w wynikach ChatGPT bez udostępniania treści do trenowania. Jeśli zależy Ci wyłącznie na Google - możesz spokojnie zablokować wszystkie AI boty.
Mapa XML: co to robi i co musi zawierać
Plik sitemap to lista URLi Twojej witryny w formacie XML, którą przekazujesz robotom jako podpowiedź do odkrywania stron. Podkreślam: podpowiedź, nie nakaz. Google nie indeksuje wszystkiego, co jest w sitemapie - ocenia wartość każdej strony i podejmuje własną decyzję.
Dla WordPressa sitemapę generuje automatycznie Rank Math lub Yoast SEO. Rank Math w wersji darmowej tworzy sitemap index podzielony na kategorie treści (posty, strony, produkty, kategorie), co jest dobrą praktyką szczególnie dla większych serwisów.
Główna reguła: w sitemapie umieszczasz tylko URLe, które spełniają wszystkie poniższe warunki jednocześnie:
Warunki dla URLa w sitemapie
- URL zwraca status 200 (nie 301, nie 404, nie 410)
- URL nie jest zablokowany w robots.txt
- Strona nie ma meta tagu noindex
- URL jest kanonicznym adresem strony (nie duplikatem z parametrem UTM, sessionid itp.)
- Strona zawiera treść o wartości dla użytkownika
Wiele pluginów domyślnie wstawia do sitemaps strony z taksonomii (tagów), które mają po 1-2 wpisy i są potencjalnie słabą treścią. Warto przejrzeć, czy tagi wpisów bloga i atrybuty produktów faktycznie mają własną, unikalną wartość - jeśli nie, wyłącz je w ustawieniach sitemaps.
Tagi lastmod, priority i changefreq: prawda vs mity
Praktycznie każdy generator sitemaps wypełnia trzy opcjonalne atrybuty: lastmod (data ostatniej modyfikacji), priority (priorytet od 0.0 do 1.0) i changefreq (częstość zmian). Google oficjalnie potwierdza, że priority i changefreq są ignorowane - historycznie były tak masowo ustawiane na maksimum przez webmasterów, że przestały nieść jakąkolwiek informację.
Jedyny tag, który realnie działa, to lastmod. Google używa go jako sygnału do ponownego crawlowania - jeśli wartość się zmieniła, bot wróci szybciej. Ważne: lastmod musi być dokładny. Jeśli ustawisz statyczny lastmod na dzień sprzed roku dla stron, które się faktycznie zmieniają, Google może zignorować cały atrybut na Twojej domenie. Rank Math i Yoast aktualizują lastmod automatycznie przy każdej zmianie posta.
Plusy
- Sitemap index dzieli mape na logiczne grupy (posty, produkty, obrazy)
- lastmod przyspiesza ponowne crawlowanie zaktualizowanych stron
- Wczesne wykluczenie noindex i 404 z sitemaps poprawia crawl efficiency
- Automatyczna aktualizacja przez Rank Math/Yoast eliminuje ręczną pracę
Minusy
- priority i changefreq to w praktyce martwe atrybuty - Google je ignoruje
- Zbyt duza sitemap z urlami niskiej jakosci moze zaszkodzic bardziej niz pomoc
- Plugin moze domyslnie wstawiac tagi, strony autorów lub archiwa dat - trzeba to sprawdzic
- Sitemap nie zastepuje linków wewnętrznych jako metody odkrywania stron
Sitemap index dla większych serwisów
Jeśli Twój sklep lub serwis ma ponad 50 000 URLi albo Twój plik sitemaps przekracza 50 MB po dekompresji, musisz użyć sitemap index - to plik nadrzędny, który wskazuje na kilka plików podrzędnych. Rank Math i Yoast tworzą sitemap index automatycznie.
Dla typowego sklepu WooCommerce polecam strukturę z podziałem: osobna mapa dla stron statycznych, dla wpisów bloga, dla produktów (z podziałem na partię co 500-1000 URLi jeśli jest ich dużo), osobna dla kategorii. Taki podział daje Ci jasny obraz w GSC - widzisz osobno, ile produktów jest zaindeksowanych, ile stron bloga, ile kategorii.
Łącze do sitemap index w robots.txt wstawiasz przez dyrektywę Sitemap: - możesz wstawić kilka takich linii jeśli masz wiele indeksów. Google pobierze je wszystkie niezależnie od ustawień User-agent.
Jak zweryfikować konfigurację w Google Search Console
Google Search Console to jedyne wiarygodne źródło informacji o tym, co Google faktycznie robi z Twoją stroną. Dwa raporty są kluczowe:
Pierwszy: Indeksowanie stron (dawniej Coverage). Pokazuje, ile stron jest zaindeksowanych, ile wykluczonych i dlaczego. Szczególna uwaga na sekcję „Wykluczone" - powinna zawierać URLe, które celowo wykluczone są z indeksu (noindex, kanoniczne przekierowania), ale nie powinny tam być Twoje najważniejsze strony produktów.
Drugi: Ustawienia > Statystyki indeksowania. To raport crawl stats - pokazuje, ile stron dziennie odwiedza Googlebot i jakie kody odpowiedzi zwracały. Jeśli widzisz dużo 404 lub 3xx, Googlebot marnuje budżet na usunięte lub przeniesione URLe. Jeśli liczba odwiedzonych URL jest duża, ale indeksowanych mało - sygnał, że wiele crawlowanych stron Google uznaje za bezwartościowe.
Po przesłaniu sitemaps w GSC poczekaj 3-7 dni na pełne przetworzenie. GSC pokaże, ile URLi z sitemaps zostało odczytanych i ile zaindeksowanych. Rozbieżność między tymi liczbami wskazuje na strony, które Google odrzuca mimo obecności w mapie.
GSC ma też narzędzie do testowania pliku robots.txt (Ustawienia > Crawlowanie > Plik robots.txt), które pokazuje dokładnie, jaką wersję pliku Google aktualnie buforuje i pozwala przetestować dowolny URL pod kątem blokad.
Typowe błędy i jak je naprawiać
Przejrzałem kilkadziesiąt audytów technicznych i te same błędy powtarzają się zbyt często, żeby je pominąć.
Błąd pierwszy: blokada zasobów renderujących. Disallow: /wp-content/ albo blokada konkretnych plików JS z biblioteki frontendu. Efekt: Google renderuje stronę bez stylów i uznaje ją za nieresponsywną. Naprawienie: usuń blokadę i sprawdź w narzędziu Testuj aktualizacje na żywo w GSC, jak Googlebot widzi Twoją stronę.
Błąd drugi: brak blokad parametrycznych w sklepach z filtrami. URLe w stylu /kategoria/?pa_kolor=czerwony&pa_rozmiar=M&pa_material=bawelna&orderby=price&paged=3 to kombinacyjna eksplozja. Przy 10 atrybutach i 5 wartościach każdy masz matematycznie dziesiątki tysięcy permutacji. Naprawienie: blokuj wzorce parametryczne przez wildcard w robots.txt i ustaw canonical na wersję bez parametrów.
Błąd trzeci: strony noindex w sitemapie. Plugin generuje sitemapę automatycznie, ale ktoś dodał noindex do konkretnych stron bez aktualizacji wykluczeń w sitemapie. Google widzi URL w sitemapie, wchodzi, napotyka noindex - i jest zdezorientowany. W najnowszych wersjach Rank Math i Yoast strony noindex są automatycznie wykluczane z sitemaps, ale po migracji warto to sprawdzić ręcznie.
Błąd czwarty: archiwa dat i strony autorów w sitemapie. WordPress domyślnie generuje archiwa dla każdego autora (/author/jan-kowalski/) i każdego miesiąca (/2022/03/). To duplikaty treści o zerowej wartości dla użytkownika. Wyłącz je w ustawieniach sitemaps w Rank Math (Rank Math > Sitemap > Post Types > wyłącz Author Archives i Date Archives).
robots.txt a migracje i środowiska stagingowe
Migracje to osobny, ważny przypadek. Jeśli przenosisz sklep z jednej domeny na drugą albo przepisujesz całą strukturę URLi, tymczasowe zablokowanie nowej wersji w robots.txt przez czas testów jest dobrą praktyką - ale pamiętaj, żeby przed wdrożeniem na produkcję koniecznie usunąć blokadę.
Środowisko stagingowe (demo, dev) absolutnie musi mieć zablokowane całe crawlowanie. W WordPress dość łatwo o pomyłkę: kopiujesz produkcyjny plik robots.txt na staging i nagle Googlebot zaczyna odwiedzać staging.twojadomena.pl. Standardowe podejście to Disallow: / dla wszystkich botów na środowiskach deweloperskich plus ustawienie w WordPressie opcji „Odradź wyszukiwarkom indeksowanie tej strony" (która dodaje header X-Robots-Tag: noindex do każdej strony).
Po wdrożeniu na produkcję: sprawdź robots.txt pod właściwą domeną w ciągu 24 godzin od uruchomienia. Pomyłki tu potrafią kosztować tygodnie niepotrzebnego crawlowania błędnych URLi zanim indeks się ureguluje.
Integracja z pozycjonowaniem: większy obraz
Robots.txt i sitemap to elementy technicznego SEO, nie strategii treści. Poprawna konfiguracja usuwa przeszkody, ale sama w sobie nie spowoduje wzrostu pozycji. Żeby crawl budget był efektywnie wykorzystany, potrzebujesz stron, które mają wartość: unikalną treść, odpowiedź na konkretne pytanie, linki wewnętrzne prowadzące do powiązanych zasobów.
Jeśli planujesz kompleksowe pozycjonowanie swojego sklepu lub strony firmowej, zadbanie o robots.txt i sitemapę to punkt wyjścia - bez tego audytu reszta działań SEO jest mniej efektywna. Szczegółowy opis tego, czego możesz oczekiwać w pierwszych tygodniach współpracy, znajdziesz w artykule o pierwszym miesiącu pracy SEO.
Kwestia kosztów: konfiguracja robots.txt i sitemaps to zazwyczaj jednorazowe zadanie w ramach audytu technicznego. Jeśli zastanawiasz się, za co płacisz w stałym abonamencie SEO, zajrzyj do artykułu o cenniku abonamentów SEO - tam wyjaśniam, co składa się na miesięczną pracę specjalisty.
Warto też mieć świadomość, że widoczność w wyszukiwarkach to w 2026 roku coraz szersza kategoria. Jeśli chcesz rozumieć, jak zmieniają się algorytmy i jak SEO wygląda w epoce modeli AI, mam dla Ciebie dedykowany przewodnik po trendach na 2026 rok.
Nie - robots.txt blokuje tylko crawlowanie, czyli odwiedziny Googlebota. Jeśli inna strona linkuje do zablokowanego URLa, Google może go zaindeksować jako pusty wpis bez treści. Żeby trwale wykluczyć stronę z indeksu, użyj meta tagu noindex lub odpowiedzi HTTP X-Robots-Tag: noindex. Google pobiera plik robots.txt mniej więcej raz na dobę. Zmiany powinny zacząć obowiązywać w ciągu 24-48 godzin, choć w Google Search Console możesz wymusić ponowne pobranie przez narzędzie Inspekcja URLi. Warto sprawdzić w GSC, jaka wersja pliku jest aktualnie buforowana. Google przetwarza maksymalnie 500 kB pliku robots.txt. Przy dużych serwisach, gdzie reguł jest wiele, może to stanowić ograniczenie. W praktyce rozbudowane reguły dla dziesiątek ścieżek i kilkudziesięciu user-agentów (w tym AI botów) spokojnie zmieszczą się w tym limicie. Tak, ale z zastrzeżeniami. Sitemap skraca czas od publikacji do odkrycia przez Googlebota, szczególnie gdy nowa strona nie ma jeszcze linków wewnętrznych. Jednak samo dodanie URLa do sitemaps nie gwarantuje indeksowania - Google ocenia wartość strony i może ją pominąć mimo jej obecności w mapie. W sitemapie umieszczaj wyłącznie URLe kanoniczne, dostępne robotom (nie blokowane w robots.txt) i oznaczone do indeksowania (bez meta noindex). Wyklucz: strony 404, przekierowania 301/302, duplikaty z parametrami UTM, strony paginacji jeśli mają canonical na pierwszą stronę, koszyk i checkout. Nie. GPTBot, ClaudeBot czy CCBot to zupełnie inne boty niż Googlebot. Blokowanie ich w robots.txt nie ma żadnego wpływu na indeksowanie ani ranking w Google Search. Możesz je blokować lub wpuszczać niezależnie od ustawień dla Googlebota. W Google Search Console przejdź do Ustawienia > Statystyki indeksowania. Porównaj liczbę żądań crawlowania z liczbą indeksowanych stron. Jeśli Googlebot odwiedza wielokrotnie te same URLe, które nie są indeksowane, albo paginację i parametry filtrów - masz problem z budżetem. Dla sklepów poniżej 5000 produktów zazwyczaj nie jest to krytyczne. Rank Math SEO w wersji darmowej daje pełną kontrolę: edytor robots.txt w dashboardzie, sitemap index z podziałem na typy treści, integrację z Search Console i szczegółowe opcje wykluczania konkretnych taksonomii lub wpisów. Yoast SEO oferuje podobne funkcje, ale część zaawansowanych opcji (np. schema markup) jest w płatnej wersji Premium. Dla WooCommerce Rank Math radzi sobie lepiej z produktami i wariantami.Najczęstsze pytania
Czy robots.txt może całkowicie zablokować stronę przed indeksowaniem?
Jak często Google aktualizuje swoją kopię pliku robots.txt?
Ile URLi może mieć plik robots.txt?
Czy sitemap XML przyspiesza indeksowanie nowych stron?
Co powinno być w sitemapie, a czego nie wolno tam wstawiać?
Czy blokowanie AI botów w robots.txt wpływa na pozycje w Google?
Jak sprawdzić, czy crawl budget jest realnym problemem na mojej stronie?
Jaki plugin WordPress najlepiej zarządza robots.txt i sitemapą?
Potrzebujesz pomocy z projektem?
Robię strony WordPress i sklepy Shoper od 2500 zł. Partner Shoper, 120+ projektów.
- Odpowiedź w 24h
- Certyfikowany Partner Shoper
- 120+ zrealizowanych projektów
- Zgodność z RODO, pełna ochrona danych