Sitemap XML i robots.txt – poprawna konfiguracja
Wróć do bloga
SEO 26 czerwca 2026 14 min

Sitemap XML i robots.txt – poprawna konfiguracja

Grzegorz Kalmus

Grzegorz Kalmus

Autor

Strona działa, treści są opublikowane, a Google nadal nie indeksuje nowych podstron po tygodniu od uruchomienia. Albo odwrotnie – raport w Google Search Console pokazuje setki zaindeksowanych adresów, ale połowa to strony administracyjne, koszyki i duplikaty, które nigdy nie miały tam trafiać. Oba problemy mają jedno wspólne źródło: błędna konfiguracja pliku sitemap XML lub robots.txt.

Te dwa pliki to fundament technicznego SEO. Sitemap XML mówi Googleowi, co ma zaindeksować. Robots.txt mówi, co ma pominąć. Prawidłowo skonfigurowane, razem przyspieszają indeksację i chronią budżet crawlowania. Skonfigurowane błędnie, mogą zablokować całą domenę lub zapełnić indeks bezużyteczną treścią.

W tym przewodniku omówimy format sitemap XML, jego limity techniczne, sposoby generowania w popularnych platformach oraz pełną składnię pliku robots.txt. Wyjaśnimy kluczową różnicę między blokowaniem crawlowania a blokowaniem indeksacji – błąd, który popełnia zaskakująco wiele stron. Ten artykuł uzupełnia nasz przewodnik po Google Search Console i audyt SEO krok po kroku.

Czego się dowiesz:

  • Czym jest sitemap XML i jakie są jego limity techniczne (50 000 URL, 50 MB)
  • Jak generować sitemap w Yoast SEO, Rank Math i Next.js
  • Jak pisać poprawny plik robots.txt (User-agent, Disallow, Allow, Sitemap)
  • Dlaczego noindex i disallow to nie to samo i jak nie pomylić tych dwóch mechanizmów
  • Jak zgłosić sitemap w Google Search Console i weryfikować indeksację

Czym jest sitemap XML i do czego służy

Sitemap XML to plik w formacie XML, który zawiera listę adresów URL Twojej strony. Informuje wyszukiwarki, które podstrony istnieją, kiedy były ostatnio modyfikowane i jak ważne są w stosunku do siebie. Protokół sitemaps.org jest obsługiwany przez Google, Bing, Yahoo i większość innych wyszukiwarek.

Choć Google odkryje większość stron przez linkowanie wewnętrzne, sitemap przyspiesza ten proces – szczególnie w trzech sytuacjach:

  • Nowe domeny bez linków przychodzących, gdzie crawler zaczyna odkrywanie od zera
  • Duże serwisy (sklepy, portale, blogi z setkami lub tysiącami podstron), gdzie crawl może nie dotrzeć do wszystkich głęboko zagnieżdżonych URL-i
  • Strony ze słabą architekturą linków wewnętrznych, gdzie nawigacja nie prowadzi do wszystkich treści

Według dokumentacji Google Search Central, sitemap jest traktowany jako wskazówka, nie nakaz. Google może zdecydować się nie indeksować adresu z sitemapa, jeśli uzna go za słabej jakości, duplikat lub niezgodny z innymi sygnałami (np. canonical wskazuje na inny URL). Warto o tym pamiętać – sam fakt dodania URL do sitemapa nie gwarantuje indeksacji.

Format i limity techniczne sitemap XML

Podstawowa struktura pliku

Każdy plik sitemap musi zaczynać się od deklaracji XML i korzenia urlset z namespace protokołu. Wewnątrz każdy adres opisuje element url:

<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <url>
    <loc>https://example.com/strona/</loc>
    <lastmod>2026-06-01</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://example.com/kontakt/</loc>
    <lastmod>2026-01-15</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.5</priority>
  </url>
</urlset>

Tagi lastmod, changefreq i priority są opcjonalne. Google i tak stosuje własne algorytmy do ustalania częstotliwości crawlowania – wartości changefreq i priority mają ograniczone znaczenie w praktyce. Jeśli jednak podajesz lastmod, musi być to rzeczywista data ostatniej modyfikacji treści, nie data publikacji lub bieżąca data skryptu.

Limity techniczne

Parametr Limit Co zrobić po przekroczeniu
Maksymalna liczba URL w jednym pliku 50 000 Podziel na kilka plików i użyj sitemap index
Maksymalny rozmiar pliku (nieskompresowany) 50 MB Podziel na mniejsze pliki
Maksymalna długość URL 2 048 znaków Skróć URL lub pomiń w sitemapie
Kodowanie znaków UTF-8 Zawsze używaj UTF-8

Sitemap index dla dużych serwisów

Gdy liczba URL-i przekracza 50 000 lub rozmiar pliku zbliża się do 50 MB, stosuje się sitemap index. To plik XML wyższego rzędu, który wskazuje na wiele osobnych plików sitemap:

<?xml version="1.0" encoding="UTF-8"?>
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <sitemap>
    <loc>https://example.com/sitemap-strony.xml</loc>
    <lastmod>2026-06-01</lastmod>
  </sitemap>
  <sitemap>
    <loc>https://example.com/sitemap-produkty.xml</loc>
    <lastmod>2026-06-01</lastmod>
  </sitemap>
  <sitemap>
    <loc>https://example.com/sitemap-artykuly.xml</loc>
    <lastmod>2026-06-01</lastmod>
  </sitemap>
</sitemapindex>

W Google Search Console zgłaszasz adres pliku index – wszystkie podpliki są automatycznie przetwarzane. To zalecana struktura dla sklepów internetowych i portali z dziesiątkami tysięcy produktów lub artykułów.

Specjalne typy sitemapów

Oprócz standardowego sitemapa stron istnieją wyspecjalizowane rozszerzenia protokołu:

  • Image Sitemap – informuje Google o obrazach na stronie, ważne dla portali fotograficznych i sklepów z dużą liczbą zdjęć produktów
  • Video Sitemap – dla serwisów z treściami wideo; zawiera metadane jak tytuł, opis, czas trwania
  • News Sitemap – dla wydawców wiadomości zarejestrowanych w Google News; artykuły muszą być z ostatnich 48 godzin

Jak generować sitemap – WordPress, Next.js i narzędzia

Yoast SEO (WordPress)

Yoast SEO automatycznie generuje sitemap index pod adresem /sitemap_index.xml. Plik zawiera osobne sitemaps dla stron, wpisów, kategorii i własnych typów treści.

Kluczowe ustawienia w Yoast:

  • SEO > General > Features > XML Sitemaps – musi być włączone
  • W ustawieniach każdego typu treści (SEO > Search Appearance) można wykluczyć całe typy z sitemapa
  • Poszczególne strony wyklucza się przez ustawienie „Robots” na „noindex” – Yoast automatycznie usuwa je z sitemapa

Rank Math (WordPress)

Rank Math generuje sitemap pod /sitemap_index.xml. Panel konfiguracji: Rank Math > Sitemap Settings. Oferuje bardziej granularną kontrolę niż Yoast – można ustawiać priorytety i częstotliwości dla każdego z typów treści oraz tagów i kategorii oddzielnie.

Sitemap w Next.js (App Router)

Dla aplikacji Next.js 13+ z App Router dostępna jest natywna obsługa sitemapa. Tworzysz plik app/sitemap.ts, który eksportuje funkcję zwracającą tablicę adresów:

// app/sitemap.ts
import { MetadataRoute } from 'next'

export default async function sitemap(): Promise<MetadataRoute.Sitemap> {
  // Pobieranie dynamicznych URL z WordPress REST API
  const posts = await fetch('https://api.example.com/wp-json/wp/v2/posts?per_page=100')
    .then(r => r.json())

  const postUrls = posts.map((post: any) => ({
    url: `https://example.com/${post.slug}`,
    lastModified: new Date(post.modified),
    changeFrequency: 'monthly' as const,
    priority: 0.7,
  }))

  return [
    {
      url: 'https://example.com',
      lastModified: new Date(),
      changeFrequency: 'monthly',
      priority: 1,
    },
    ...postUrls,
  ]
}

Next.js automatycznie serwuje ten plik pod /sitemap.xml. W przypadku headless WordPress (jak studiokalmus.com) warto pobierać URL dynamicznie z REST API, żeby sitemap był zawsze aktualny po każdym buildzie.

Narzędzia do generowania sitemapa

Dla mniejszych stron lub jednorazowego stworzenia sitemapa można skorzystać z narzędzi online. Popularne opcje to Screaming Frog SEO Spider (do 500 URL bezpłatnie) lub serwis xml-sitemaps.com. Wadą jest konieczność ręcznej aktualizacji – warto ją zautomatyzować przez harmonogram zadań lub webhook po publikacji nowej treści.

Plik robots.txt – składnia i dyrektywy

Robots.txt to plik tekstowy w katalogu głównym domeny (https://example.com/robots.txt). Instruuje roboty wyszukiwarek, które zasoby mogą, a których nie powinny pobierać podczas crawlowania. Protokół Robots Exclusion Standard opisuje go szczegółowo w RFC 9309 opublikowanym przez IETF.

Podstawowe dyrektywy

Dyrektywa Znaczenie Przykład użycia
User-agent Określa robota, którego dotyczą reguły. * oznacza wszystkich. User-agent: Googlebot
Disallow Zabrania crawlowania danej ścieżki lub pliku Disallow: /wp-admin/
Allow Zezwala na crawlowanie (nadpisuje Disallow dla podścieżki) Allow: /wp-admin/admin-ajax.php
Sitemap Adres URL pliku sitemap Sitemap: https://example.com/sitemap.xml
Crawl-delay Przerwa między żądaniami (obsługiwana przez Bing, nie Google) Crawl-delay: 5

Przykład poprawnego robots.txt dla WordPress

User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php
Disallow: /wp-login.php
Disallow: /cart/
Disallow: /checkout/
Disallow: /my-account/
Disallow: /?s=
Disallow: /wp-content/uploads/woocommerce_uploads/

User-agent: Googlebot
Disallow:

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

Sekcja User-agent: Googlebot z pustym Disallow pozwala Google crawlować wszystko, nawet jeśli wcześniej zdefiniowane reguły dla * coś blokowały. To przydatne, gdy chcesz ograniczyć ruch innych botów, ale nie chcesz wprowadzać żadnych barier dla Googlebota.

Priorytet reguł

Gdy kilka reguł pasuje do danego URL, Google stosuje najdłuższą pasującą regułę. Przykład:

Disallow: /uslugi/
Allow: /uslugi/seo/

Bot może crawlować /uslugi/seo/ (dłuższa reguła Allow wygrywa), ale nie może crawlować /uslugi/projektowanie/. Ta zasada pozwala na precyzyjne wyjątki wewnątrz blokowanych katalogów.

Najczestsze bledy – noindex vs disallow

Najpoważniejszy błąd w konfiguracji technicznego SEO to mylenie dwóch różnych mechanizmów:

Disallow w robots.txt blokuje crawlowanie – bot nie pobiera strony, ale jeśli ma do niej linki z innych domen, może mimo wszystko zaindeksować sam URL (bez treści).

Meta noindex blokuje indeksację – bot pobiera stronę, odczytuje tag i nie dodaje jej do wyników wyszukiwania. Ale może ją crawlować bez ograniczeń.

Konsekwencja praktyczna: strona z Disallow w robots.txt i meta noindex w kodzie to konfiguracja sprzeczna. Bot nie może pobrać strony (Disallow), więc nie może odczytać tagu noindex. Jeśli inny serwis linkuje do tej strony, Google może zaindeksować sam URL jako stronę „bez treści”.

Poprawna zasada: jeśli chcesz wykluczyć stronę z indeksu, używaj tylko meta noindex (lub nagłówka HTTP X-Robots-Tag: noindex). Robots.txt stosuj tylko do blokowania zasobów technicznych, które nie powinny być w ogóle pobierane (pliki konfiguracyjne, środowisko staging, katalog admina).

Blokada plikow CSS i JavaScript

Starsze konfiguracje WordPress często zawierały reguły blokujące całe katalogi /wp-content/ lub /wp-includes/. To błąd, który do dziś pojawia się w audytach. Google musi renderować pliki CSS i JS, żeby zobaczyć stronę taką, jak widzi ją użytkownik – jest to kluczowe dla oceny Core Web Vitals i jakości treści. Blokada tych zasobów przez robots.txt sprawia, że Googlebot „widzi” stronę bez stylów, bez skryptów, często jako nagą strukturę HTML.

Badanie Google z 2024 roku wskazuje, że strony z zablokowanymi zasobami renderowania otrzymują niższe oceny w systemie crawlowania i mogą być rzadziej odwiedzane, co spowalnia indeksację nowych treści. Jeśli Twój robots.txt zawiera Disallow: /wp-content/ – usuń tę regułę.

Disallow: / na produkcji

Środowisko testowe (staging) powinno mieć Disallow: / – to standard, który chroni przed indeksacją wersji deweloperskiej. Problem pojawia się, gdy ta konfiguracja przez pomyłkę trafi na produkcję. Google zaczyna ignorować wszystkie URL-i domeny. Strona znika z wyników w ciągu kilku tygodni. Odbudowa indeksacji po takim błędzie może zająć miesiące.

Zawsze weryfikuj robots.txt po każdym wdrożeniu lub migracji serwera. Wystarczy wejść na https://twojadomena.pl/robots.txt i sprawdzić wzrokiem.

Brak linii Sitemap w robots.txt

Wielu administratorów zgłasza sitemap wyłącznie przez Google Search Console i zapomina o dodaniu linii Sitemap: do robots.txt. To nie jest błąd krytyczny, ale brak tej linii oznacza, że inne wyszukiwarki (Bing, DuckDuckGo, Yandex) mogą nie znaleźć sitemapa automatycznie. Dobra praktyka: zawsze dodawaj pełny URL sitemapa do robots.txt.

URL-e z noindex w sitemapie

Sitemap powinien zawierać tylko URL-e, które chcesz zaindeksować. Jeśli strona ma meta noindex, nie powinna być w sitemapie. Google zgłosi ją jako „zaindeksowane mimo exclusion” lub „strona z noindex w sitemapie” – to sygnał niespójności, który obniża jakość sitemapa w oczach crawlera. Yoast SEO i Rank Math automatycznie pomijają strony z noindex przy generowaniu sitemapa.

Zgloszenie sitemapa w Google Search Console

Po przygotowaniu sitemapa należy go zgłosić w Search Console. Procedura jest prosta i trwa kilka minut:

  1. Zaloguj się do Google Search Console
  2. Wybierz właściwość swojej domeny
  3. W lewym menu wybierz Indeksowanie > Sitemaps
  4. W polu tekstowym wpisz adres sitemapa (np. sitemap_index.xml)
  5. Kliknij Prześlij

Po kilku godzinach lub dniach GSC wyświetli liczbę odkrytych URL-i oraz ewentualne błędy. Możliwe statusy:

  • Sukces – sitemap przetworzony, URL-e odkryte
  • Mógł zostać odczytany – błąd parsowania, sprawdź XML
  • Brak – plik nie został odnaleziony (sprawdź URL)

Zgłoszenie sitemapa to jeden z elementów opisanych w naszym planie SEO na pierwsze 100 dni po wdrożeniu.

Weryfikacja indeksacji – co sprawdzac i jak interpretowac dane

Raport w Google Search Console (Indeksowanie > Strony) pokazuje status wszystkich odkrytych URL-i. Kluczowe metryki:

  • Zaindeksowane – URL-e w indeksie Google, widoczne w wynikach wyszukiwania
  • Odkryto – oczekuje na indeksację – Google wie o stronie, ale jeszcze jej nie odwiedził lub odłożył na później
  • Zablokowane przez robots.txt – crawler natrafił na blokadę
  • Zduplikowane bez wybranej kanonicznej wersji – Google widzi duplikaty i nie wie, który URL preferować
  • Błąd 404 – URL z sitemapa nie istnieje

Jeśli liczba zaindeksowanych URL-i jest znacznie niższa niż odkrytych, przyczyny mogą być różne: niski autorytet domeny, zduplikowana treść, strony z thin content lub techniczne problemy z renderowaniem. Szczegółowy checklist indeksacji znajdziesz w audycie SEO krok po kroku.

W ramach audytu SEO sprawdzamy pełny raport indeksacji, identyfikujemy strony blokowane błędnie i optymalizujemy sitemap pod kątem crawl budget. Jeśli potrzebujesz pomocy z konfiguracją swojej strony, skontaktuj się z nami.

Czym jest crawl budget i jak sitemap na niego wplywa

Crawl budget to liczba URL-i, które Googlebot jest gotowy crawlować na Twojej domenie w danym czasie. Dla małych stron (do kilkuset podstron) crawl budget nie jest ograniczeniem. Dla dużych serwisów – sklepów z dziesiątkami tysięcy produktów, portali z milionami stron – efektywne zarządzanie budżetem crawlowania ma bezpośredni wpływ na to, jak szybko nowe treści trafiają do indeksu.

Sitemap pomaga zarządzać crawl budget przez:

  • Wskazywanie priorytetowych URL-i – strony z sitemapa są crawlowane chętniej
  • Eliminację stron śmieciowych – sitemap bez duplikatów, stronicowania i stron z parametrami URL zmniejsza liczbę „bezużytecznych” wizyt bota
  • Aktualny lastmod – Google crawluje częściej strony, które były niedawno modyfikowane

Strony ze skomplikowaną nawigacją fasetową (filtry kategorii, parametry sortowania) szczególnie korzystają na precyzyjnym sitemapie, który zawiera tylko kanoniczne URL-e bez wariantów parametrycznych.

Praktyczne wskazowki – checklist konfiguracji

Zanim opublikujesz stronę lub przed uruchomieniem kampanii pozycjonowania stron, zweryfikuj te elementy:

  • robots.txt jest dostępny pod /robots.txt i zwraca HTTP 200
  • Sitemap jest dostępny i zwraca prawidłowy XML (zielony w przeglądarce)
  • W robots.txt jest linia Sitemap: ze pełnym URL pliku
  • Sitemap nie zawiera URL-i z meta noindex
  • Sitemap nie zawiera URL-i z canonicalem wskazującym na inny adres
  • Sitemap nie zawiera URL-i zablokowanych przez robots.txt (sprzeczność)
  • Pliki CSS i JS nie są blokowane przez robots.txt
  • robots.txt środowiska produkcyjnego NIE zawiera Disallow: /
  • Staging posiada osobny robots.txt z Disallow: /
  • Sitemap zgłoszony w Google Search Console
  • Sitemap aktualizuje się automatycznie po dodaniu nowej treści
  • URL-e w sitemapie są kanoniczne (https, bez www lub z www – spójnie)

Budowa strony internetowej to jedno – jej poprawna konfiguracja techniczna to osobny krok. Na stronie tworzenie stron internetowych opisujemy pełny zakres naszych prac, w tym konfigurację SEO technicznego po wdrożeniu.

FAQ – najczestsze pytania

Czy sitemap XML jest obowiazkowy dla kazdej strony?

Sitemap nie jest technicznie obowiązkowy. Google znajdzie większość stron przez linkowanie wewnętrzne. Jednak dla stron nowych, dużych lub z nieregularną strukturą linków – jest zdecydowanie zalecany. Jeśli Twoja strona ma więcej niż 50 podstron lub publikujesz nowe treści regularnie, sitemap przyspiesza indeksację i ułatwia monitorowanie w Search Console.

Ile czasu zajmuje zaindeksowanie strony po zgloszeniu sitemapa?

Nie ma stałego terminu. Dla silnych domen z dużym autorytetem – od kilku godzin do 2-3 dni. Dla nowych domen bez linków przychodzących – od tygodnia do kilku miesięcy. Na czas indeksacji wpływają autorytet domeny, jakość treści, szybkość serwera i częstotliwość publikacji. Regularne sprawdzanie raportu „Odkryte – oczekuje na indeksację” w GSC pozwala monitorować kolejkę.

Co sie stanie, jesli usune URL z sitemapa?

Usunięcie URL z sitemapa nie powoduje usunięcia strony z indeksu. Strona pozostanie zaindeksowana do czasu naturalnego recrawlowania lub zgłoszenia usunięcia przez narzędzie „Usuwanie URL” w GSC. Sitemap to wskazówka dla crawlera, nie lista dozwolonych stron. Jeśli chcesz usunąć stronę z indeksu, dodaj meta noindex lub zgłoś URL do usunięcia w GSC.

Jak sprawdzic, czy robots.txt blokuje konkretny adres?

Google Search Console oferuje narzędzie „Inspekcja URL”, które pokazuje, czy dana strona jest blokowana przez robots.txt. W GSC przejdź do sekcji Ustawienia, znajdziesz tam też tester robots.txt. Alternatywnie możesz ręcznie sprawdzić plik pod adresem twojadomena.pl/robots.txt i porównać reguły z konkretną ścieżką.

Czy moge miec kilka plikow sitemap?

Tak – to właśnie zasada działania sitemap index. Możesz mieć osobne pliki dla stron, wpisów blogowych, produktów, obrazów i filmów. Wszystkie wskazujesz w sitemap index, który zgłaszasz jeden raz w Search Console. Podział na osobne pliki ułatwia monitorowanie – w GSC widzisz osobne statystyki indeksacji dla każdego pliku.

Jak robots.txt zachowuje sie dla podstron z parametrami URL?

Robots.txt działa na zasadzie dopasowania prefiksu. Disallow: /sklep/ zablokuje /sklep/produkt-a, /sklep/kategoria/ i /sklep/?sort=price. Jeśli chcesz blokować wyłącznie URL z parametrami (np. wyszukiwarki, filtry), użyj Disallow: /?s= lub Disallow: /sklep/?. Pamiętaj jednak, że lepszym rozwiązaniem dla zduplikowanych URL parametrycznych jest canonical, a nie blokada crawlowania.

Podsumowanie

Sitemap XML i robots.txt to dwa pliki konfiguracyjne, które mają nieproporcjonalnie duży wpływ na widoczność w Google. Poprawna konfiguracja obu przyspiesza indeksację, chroni budżet crawlowania i zapobiega trafieniu do indeksu stron, które tam nie powinny się znaleźć.

Najważniejsze zasady do zapamiętania:

  • Sitemap powinien zawierać tylko URL-e, które mają być w indeksie – bez noindex, duplikatów, stron technicznych
  • Robots.txt blokuje crawlowanie, nie indeksację – do usunięcia z indeksu używaj meta noindex
  • Nigdy nie blokuj plików CSS i JS przez robots.txt
  • Zawsze weryfikuj robots.txt po wdrożeniu i migracji
  • Zgłoś sitemap w Google Search Console i monitoruj raport indeksacji regularnie
  • Środowisko staging powinno mieć Disallow: /, produkcja nigdy

Poprawna konfiguracja to dopiero początek. Dalsze kroki SEO opisujemy w przewodniku Google Search Console krok po kroku i w planie SEO na pierwsze 100 dni.

Sprawdzimy konfiguracje Twojej strony

W Studio Kalmus wykonujemy audyty techniczne SEO obejmujące sitemap, robots.txt, canonicale i pełny raport indeksacji w GSC. Pracujemy ze stronami na WordPressie, Next.js i innych platformach.

Napisz do nas lub sprawdz cennik audytu SEO. Jeśli dopiero planujesz stronę, zajrzyj do oferty tworzenia stron internetowych.

Studio Kalmus

Potrzebujesz profesjonalnej strony?

Tworzymy nowoczesne strony internetowe dla firm. Bezpłatna wycena w 24h.

Szukasz hostingu? SeoHost z rabatem

Kod studiokalmus55 daje 40% rabatu na aktywację serwera. Szybkie NVMe, SSL i wsparcie 24/7.

Sprawdź Ofertę
Digital Workspace Background

[ 09 / Kontakt ]

Czekamyna
TwojąWiadomość

Teraz albo nigdy! Nie odkładaj tego na później. Działaj, zanim stracisz swoją przewagę!

W dni robocze odpisujemy w max 60 minut.

Sitemap XML i robots.txt - poprawna konfiguracja - Studio Kalmus | Studio Kalmus