robots.txt i sitemap.xml: techniczne SEO krok po kroku | POLPROG Przejdź do treści

robots.txt i sitemap.xml: kompletny przewodnik technicznego SEO

robots.txt i sitemap.xml rozwiązują dwa różne problemy technicznego SEO. Pierwszy steruje tym, które adresy robot może pobierać, drugi pomaga wskazać ważne adresy URL i ich metadane. Błędy zaczynają się wtedy, gdy robots.txt jest używany do blokowania indeksowania albo sitemap.xml zawiera przekierowania, duplikaty i adresy z noindex. Dobry system łączy kontrolę skanowania, spójne adresy kanoniczne, aktualne mapy witryny i monitoring w Search Console.

Opublikowano Autor Czas czytania 20 min czytania

robots.txt i sitemap.xml rozwiązują dwa różne problemy technicznego SEO. Pierwszy steruje tym, które adresy robot może pobierać, drugi pomaga wskazać ważne adresy URL i ich metadane. Błędy zaczynają się wtedy, gdy robots.txt jest używany do blokowania indeksowania albo sitemap.xml zawiera przekierowania, duplikaty i adresy z noindex. Dobry system łączy kontrolę skanowania, spójne adresy kanoniczne, aktualne mapy witryny i monitoring w Search Console.

Na tej stronie
  1. 1robots.txt i sitemap.xml robią zupełnie różne rzeczy
  2. 2robots.txt: lokalizacja i zakres działania
  3. 3Podstawowa składnia robots.txt
  4. 4Dopasowanie reguł: szczegółowość, wielkość liter i wildcardy
  5. 5robots.txt nie jest sposobem na noindex
  6. 6Błędy robots.txt, kody HTTP i pamięć podręczna
  7. 7sitemap.xml: po co jest mapa witryny
  8. 8Obsługiwane formaty map witryn
  9. 9Limity sitemap.xml i indeks map witryn
  10. 10Jakie adresy powinny znaleźć się w sitemap.xml
  11. 11`<lastmod>`, `<priority>` i `<changefreq>`
  12. 12Jak zgłosić mapę witryny Google
  13. 13Witryny wielojęzyczne i mapy specjalistyczne
  14. 14Najczęstsze błędy technicznego SEO
  15. 15Checklista wdrożenia robots.txt i sitemap.xml

robots.txt i sitemap.xml robią zupełnie różne rzeczy

MechanizmCelZakresNajważniejszy efekt
robots.txtKontrola skanowaniaŚcieżki dla robotówNie gwarantuje braku indeksowania
sitemap.xmlOdkrywanie i sygnalizowanie ważnych URL-iLista URL-i i metadaneWskazówka, nie gwarancja indeksowania
noindexWykluczenie z indeksuKonkretny URL lub zasóbDziała po odczytaniu przez robota
rel="canonical"Wskazanie preferowanej wersji duplikatuKonkretny URL lub zasóbSilny sygnał, ale nie absolutna dyrektywa

robots.txt jest częścią Robots Exclusion Protocol i informuje roboty, które ścieżki mogą lub nie mogą być skanowane. Nie jest mechanizmem uwierzytelniania ani zabezpieczeniem prywatnych danych. RFC 9309 wprost wskazuje, że reguły robots nie są formą autoryzacji dostępu. [4]

Mapa witryny służy do przekazywania wyszukiwarkom informacji o stronach, filmach i innych plikach, które uważasz za ważne, oraz o relacjach między nimi. Google używa map witryn, aby skuteczniej odkrywać i skanować zawartość. [6]

Te mechanizmy nie są zamienne. robots.txt odpowiada na pytanie, co robot może pobrać, a sitemap.xml na pytanie, które adresy warto robotowi wskazać.

robots.txt: lokalizacja i zakres działania

Plik musi nazywać się dokładnie `robots.txt` i znajdować się w katalogu głównym hosta, na przykład `https://example.com/robots.txt`. Nie można przenieść go do podkatalogu i oczekiwać, że będzie sterował całą witryną. [2][4]

Zakres robots.txt jest powiązany z protokołem, hostem i portem. Reguły z `https://example.com/robots.txt` nie sterują automatycznie `http://example.com`, `https://m.example.com` ani usługą na innym porcie. [2]

Plik powinien być zwykłym tekstem zakodowanym w UTF-8. Google stosuje limit 500 KiB i ignoruje zawartość przekraczającą ten rozmiar. [3]

Podstawowa składnia robots.txt

User-agent: *
Disallow: /admin/
Allow: /admin/public/

Sitemap: https://example.com/sitemap.xml

Google obsługuje pola `user-agent`, `allow`, `disallow` i `sitemap`. Inne wpisy, takie jak `crawl-delay`, nie są obsługiwane przez Google. [3]

`user-agent` wybiera robota, którego dotyczą reguły. `disallow` blokuje wskazaną ścieżkę przed skanowaniem, a `allow` może dopuścić bardziej szczegółową ścieżkę wewnątrz obszaru zablokowanego. [3]

Pole `sitemap` przyjmuje pełny, bezwzględny adres URL mapy witryny lub indeksu map witryn. Można podać wiele linii `Sitemap`. [2][3]

Dopasowanie reguł: szczegółowość, wielkość liter i wildcardy

Google wybiera najbardziej szczegółową pasującą regułę na podstawie długości ścieżki. Jeżeli reguły `allow` i `disallow` są równie szczegółowe, Google stosuje regułę mniej restrykcyjną, czyli `allow`. [3][4]

Wartości ścieżek w `allow` i `disallow` są rozróżniane pod względem wielkości liter. `/Folder/` i `/folder/` mogą więc zachowywać się inaczej. [3]

Google obsługuje `*` jako dopasowanie dowolnego ciągu znaków oraz `$` jako oznaczenie końca adresu URL. `Disallow: /*.pdf$` może więc dopasować adresy kończące się `.pdf`. [3]

robots.txt nie jest sposobem na noindex

Adres zablokowany w robots.txt może nadal pojawić się w wynikach Google, jeżeli Google odkryje go z linków w innych miejscach. W takim przypadku Google może znać sam URL bez możliwości odczytania treści strony. [1][3]

Jeżeli chcesz wykluczyć stronę z wyników, użyj `noindex` w tagu robots lub nagłówku `X-Robots-Tag`. Google musi jednak móc pobrać stronę, aby zobaczyć tę regułę. Zablokowanie jej jednocześnie w robots.txt może uniemożliwić odczytanie `noindex`. [5][16]

Dyrektywa `noindex` umieszczona bezpośrednio w robots.txt nie jest obsługiwana przez Google. [5]

Błędy robots.txt, kody HTTP i pamięć podręczna

KodZachowanie Google
2xxPrzetwarza plik jako robots.txt
3xxŚledzi przekierowania, co najmniej 5 przejść
4xx except 429Traktuje jak brak pliku, czyli bez ograniczeń skanowania
5xx / networkMoże wstrzymać skanowanie i używać ostatniej poprawnej wersji

Dla odpowiedzi `2xx` Google przetwarza pobrany robots.txt. Przy przekierowaniach Google śledzi co najmniej pięć przejść, a później może potraktować sytuację jak brak pliku. Większość błędów `4xx`, z wyjątkiem `429`, jest traktowana tak, jakby prawidłowy robots.txt nie istniał, czyli bez ograniczeń skanowania. [3]

Przy `5xx` lub problemach sieciowych Google może początkowo zatrzymać skanowanie, potem korzystać z ostatniej poprawnej wersji robots.txt i ponawiać próby. Google opisuje osobne zasady dla pierwszych 12 godzin i kolejnych 30 dni. [3]

Google zwykle przechowuje robots.txt w pamięci podręcznej do 24 godzin, choć czas może się zmieniać zależnie od błędów i nagłówków `Cache-Control`. [3]

sitemap.xml: po co jest mapa witryny

Mapa witryny pomaga wyszukiwarce odkrywać ważne strony i pliki oraz może przekazywać informacje o ostatniej zmianie, wersjach językowych, obrazach, filmach i wiadomościach. [6][7]

Google zaznacza, że mała witryna, około 500 stron lub mniej, z bardzo dobrym linkowaniem wewnętrznym może nie potrzebować mapy witryny. Mapa staje się szczególnie przydatna przy dużych serwisach, nowych witrynach z małą liczbą linków zewnętrznych oraz przy dużej liczbie materiałów multimedialnych. [6]

Mapa witryny nie zastępuje linkowania wewnętrznego i nie gwarantuje indeksowania.

Obsługiwane formaty map witryn

Google obsługuje XML, RSS, mRSS, Atom 1.0 oraz zwykłe tekstowe mapy witryn zgodne z dokumentacją. XML jest najbardziej uniwersalny, ponieważ pozwala dodawać rozszerzenia dla obrazów, filmów, wiadomości i wersji językowych. [7]

Tekstowa mapa witryny może zawierać po jednym pełnym adresie URL w wierszu, ale nie przenosi dodatkowych metadanych. RSS i Atom są wygodne szczególnie wtedy, gdy CMS już generuje kanał zmian. [7]

Google nie deklaruje preferencji pomiędzy poprawnie obsługiwanymi formatami. Wybór powinien wynikać z architektury witryny i danych, które trzeba przekazać. [7]

Limity sitemap.xml i indeks map witryn

PlikMaksymalna liczba wpisówMaksymalny rozmiarUwagi
Pojedyncza mapa witryny50,00050 MBLimit po rozpakowaniu; gzip jest dozwolony
Indeks map witryn50,000 sitemaps50 MBLimit po rozpakowaniu; gzip jest dozwolony

Pojedyncza mapa witryny może mieć maksymalnie 50 000 adresów URL lub 50 MB po rozpakowaniu. Po przekroczeniu dowolnego z tych limitów należy podzielić mapę na kilka plików. [7][8]

Indeks map witryn może wskazywać maksymalnie 50 000 map witryn i również podlega limitowi 50 MB. Można używać wielu indeksów map witryn. [8]

Pliki mogą być kompresowane gzip, ale limit rozmiaru dotyczy danych po rozpakowaniu. [8]

Jakie adresy powinny znaleźć się w sitemap.xml

Google zaleca umieszczanie w mapie adresów, które chcesz widzieć w wynikach wyszukiwania. Powinny to być pełne, bezwzględne adresy URL. [7]

Jeżeli ta sama treść jest dostępna pod wieloma adresami, w mapie warto umieszczać preferowany URL kanoniczny. Google traktuje obecność w sitemap jako słaby sygnał kanoniczności, słabszy niż przekierowanie lub `rel="canonical"`. [7][9]

W praktyce mapa witryny nie powinna być magazynem wszystkich technicznie istniejących URL-i. Nie warto celowo dodawać adresów z `noindex`, błędów 404, przekierowań albo duplikatów, jeżeli nie są to adresy, które chcesz indeksować.

`<lastmod>`, `<priority>` i `<changefreq>`

Google ignoruje wartości `<priority>` oraz `<changefreq>` w mapach witryn. Nie warto więc budować złożonej logiki ich automatycznego wyliczania wyłącznie dla Google. [7]

Google może wykorzystać `<lastmod>`, jeśli wartość jest konsekwentnie i możliwie do zweryfikowania poprawna. Data powinna odzwierciedlać ostatnią istotną zmianę treści, danych strukturalnych albo linków na stronie. Sama aktualizacja roku w stopce nie jest istotną zmianą. [7]

Fałszywe odświeżanie `<lastmod>` przy każdym deployu osłabia wiarygodność tego sygnału.

Jak zgłosić mapę witryny Google

Mapę można zgłosić w raporcie Sitemaps w Search Console, przez Search Console API albo wskazać ją w robots.txt za pomocą `Sitemap: https://example.com/sitemap.xml`. [7][11][12]

Dodanie mapy do Search Console jest przydatne także dlatego, że raport pokazuje między innymi czas odczytu i błędy przetwarzania. [7][11]

Samo zgłoszenie mapy jest jedynie wskazówką. Google wprost zaznacza, że nie gwarantuje to pobrania mapy, wykorzystania jej do skanowania ani indeksowania wskazanych adresów. [7]

Witryny wielojęzyczne i mapy specjalistyczne

Dla serwisów wielojęzycznych Google pozwala przekazywać relacje `hreflang` w sitemap XML. Każdy URL powinien wskazywać wszystkie wersje językowe, w tym samego siebie. [10]

Sitemap może być rozszerzona o dane dla obrazów, filmów i wiadomości. Google publikuje osobne wymagania dla każdego z tych rozszerzeń. [13][14][15]

Dla Google News w mapie wiadomości należy utrzymywać świeże artykuły. Dokumentacja Google wskazuje, że metadane news powinny dotyczyć artykułów z ostatnich dwóch dni. [15]

Najczęstsze błędy technicznego SEO

Najpoważniejszy błąd to zablokowanie w robots.txt strony, na której oczekujesz wykonania `noindex`. Robot nie może wtedy odczytać reguły indeksowania. [5][16]

Inny częsty problem to sprzeczne sygnały, na przykład sitemap wskazuje URL A jako preferowany, a `rel="canonical"` wskazuje URL B. Google zaleca spójność metod kanonikalizacji. [9]

W mapie witryny często trafiają też niepotrzebne parametry, duplikaty, przekierowania, strony błędów lub adresy generowane przez filtry. Taka mapa przestaje być czytelnym zestawem adresów, które rzeczywiście mają być indeksowane.

  • Nie używaj robots.txt jako zamiennika `noindex`.
  • Nie blokuj Google dostępu do strony, jeśli musi odczytać jej robots meta.
  • Nie umieszczaj w mapie wszystkich technicznie wygenerowanych URL-i.
  • Nie aktualizuj `<lastmod>` bez istotnej zmiany strony.
  • Nie licz na `<priority>` i `<changefreq>` w Google.
  • Nie twórz sprzecznych sygnałów sitemap i canonical.
  • Nie zapominaj o osobnym robots.txt dla subdomen lub innych protokołów, jeśli są potrzebne.

Checklista wdrożenia robots.txt i sitemap.xml

Przed wdrożeniem sprawdź rzeczywiste odpowiedzi HTTP, a nie tylko pliki w repozytorium. robots.txt powinien zwracać poprawny tekst, a sitemap poprawny XML lub inny obsługiwany format. [2][7]

Po publikacji zgłoś mapę w Search Console, sprawdź raport Sitemaps i użyj kontroli adresu URL dla reprezentatywnych stron. Przy migracjach Google zaleca użycie map witryn jako jednego z mechanizmów pomagających odkrywać nowe adresy. [11][17]

Automatyzacja ma sens szczególnie przy większych serwisach: generowanie sitemap z bazy danych, walidacja statusów URL, zgodności canonical, noindex i aktualności `<lastmod>` powinna być częścią procesu publikacji.

  • Czy robots.txt jest dostępny dokładnie pod `/robots.txt`?
  • Czy reguły dotyczą właściwego protokołu, hosta i portu?
  • Czy żaden ważny URL nie jest przypadkowo zablokowany?
  • Czy strony z `noindex` pozostają dostępne dla robota?
  • Czy sitemap zawiera tylko pełne, preferowane adresy URL?
  • Czy pojedynczy plik mieści się w limicie 50 000 URL-i i 50 MB?
  • Czy `<lastmod>` odpowiada realnym istotnym zmianom?
  • Czy canonical i sitemap wskazują te same preferowane adresy?
  • Czy mapy wielojęzyczne mają poprawne relacje `hreflang`?
  • Czy Search Console nie raportuje błędów odczytu lub przetwarzania mapy?

Najlepsza konfiguracja technicznego SEO jest prosta i spójna. robots.txt powinien blokować wyłącznie obszary, których robot rzeczywiście nie powinien pobierać. sitemap.xml powinien zawierać adresy, które chcesz widzieć w wynikach, najlepiej kanoniczne, dostępne i indeksowalne. Reguł noindex nie należy ukrywać za robots.txt, a dane `<lastmod>` powinny odzwierciedlać istotne zmiany, a nie każdy deploy. Na końcu wszystko trzeba zweryfikować w Search Console i na rzeczywistych odpowiedziach HTTP.

SEO Technical SEO robots.txt sitemap.xml Crawling Indexing Google Search Console Canonical hreflang Sitemaps

Najczęściej zadawane pytania

Czy robots.txt blokuje indeksowanie strony?

Nie gwarantuje tego. Adres zablokowany przed skanowaniem może nadal pojawić się w wynikach, jeśli Google odkryje go z innych źródeł. Do wykluczania z indeksu używaj noindex, przy czym strona musi być dostępna dla robota. [1][5]

Czy można wpisać noindex w robots.txt?

Google tego nie obsługuje. noindex powinien być podany w tagu robots meta albo nagłówku X-Robots-Tag. [5][16]

Czy sitemap.xml gwarantuje indeksowanie?

Nie. Zgłoszenie mapy witryny jest wskazówką i nie gwarantuje pobrania, skanowania ani indeksowania adresów. [7]

Jaki jest limit sitemap.xml?

Pojedynczy plik ma limit 50 000 adresów URL i 50 MB po rozpakowaniu. Większe zbiory trzeba podzielić i można zebrać je w indeksie map witryn. [7][8]

Czy Google używa <priority> i <changefreq>?

Nie. Google deklaruje, że ignoruje oba te pola. [7]

Czy Google używa <lastmod>?

Tak, ale tylko jeśli wartość jest konsekwentnie i możliwie do zweryfikowania poprawna oraz odzwierciedla istotną zmianę strony. [7]

Czy sitemap musi znajdować się w katalogu głównym?

Google zaleca katalog główny. Bez zgłoszenia przez Search Console zasięg mapy jest związany z katalogiem, w którym została opublikowana. [7]

Czy sitemap może znajdować się na innym hoście?

Tak. Google obsługuje cross-site submission w określonych konfiguracjach, a wpis Sitemap w robots.txt może wskazywać pełny URL na innym hoście. [3][7]

Czy crawl-delay działa w Google?

Nie. Google nie obsługuje pola crawl-delay w robots.txt. [3]

Czy do sitemap należy dodawać URL-e z noindex lub przekierowaniami?

Jeżeli celem mapy jest wskazanie adresów, które mają pojawić się w wynikach, takie URL-e są sprzecznym sygnałem. Google zaleca umieszczanie preferowanych adresów kanonicznych. [7][9]

Czy można mieć wiele sitemap?

Tak. Można zgłaszać wiele map i indeksów map witryn, a pojedynczy indeks może zawierać do 50 000 map. [7][8]

Czy wpis Sitemap w robots.txt wystarczy?

Google może dzięki niemu odkryć mapę. Search Console nadal jest użyteczne, ponieważ daje informacje o odczycie, przetwarzaniu i błędach mapy. [7][11]

Źródła i przypisy

  1. Google Search Central, robots.txt introduction12
  2. Google Crawling Infrastructure, Create and submit a robots.txt file1234
  3. Google Crawling Infrastructure, How Google interprets the robots.txt specification12345678910111213
  4. IETF RFC 9309, Robots Exclusion Protocol123
  5. Google Search Central, Block Search indexing with noindex12345
  6. Google Search Central, Learn about sitemaps123
  7. Google Search Central, Build and submit a sitemap12345678910111213141516171819202122
  8. sitemaps.org, Sitemap protocol12345
  9. Google Search Central, How to specify a canonical URL123
  10. Google Search Central, Localized versions of your pages
  11. Google Search Console Help, Sitemaps report1234
  12. Google Search Console API, Sitemaps: submit
  13. Google Search Central, Image sitemaps
  14. Google Search Central, Video sitemaps and alternatives
  15. Google Search Central, News sitemaps12
  16. Google Search Central, Robots meta tag and X-Robots-Tag specifications123
  17. Google Search Central, Site moves and migrations

Czy ten artykuł był pomocny?

Nowe artykuły na e-mail

Jeden krótki e-mail przy każdym nowym artykule. Bez spamu, wypisujesz się jednym kliknięciem.

Wykorzystujemy e-mail wyłącznie do wysyłki nowych artykułów. Bez udostępniania stronom trzecim.

Wróć do bazy wiedzy