Sitemap XML – jak pomóc Google znaleźć wszystkie ważne strony?
Co sitemap XML przekazuje Google?
Sitemap XML przekazuje wyszukiwarce listę adresów, które właściciel serwisu uważa za ważne i przeznaczone do indeksowania. Dla Google jest dodatkowym źródłem odkrywania nowych oraz zaktualizowanych stron — obok linkowania wewnętrznego i linków zewnętrznych.
Mapa witryny nie zastępuje architektury informacji i nie wymusza indeksacji. Pomaga jednak Google szybciej znaleźć adresy, których robot nie odkrył jeszcze przez zwykłe linki, oraz wskazuje preferowane wersje URL-i. Dlatego sitemapę budujemy z adresów zgodnych z canonicalem, a nie ze wszystkich wariantów technicznych generowanych przez CMS.
Sitemap jest szczególnie przydatny w kilku sytuacjach:
- witryna jest duża albo ma głęboko zagnieżdżoną strukturę, przez co do części produktów, kategorii lub artykułów można dostać się wyłącznie przechodząc długą ścieżkę linków,
- serwis jest nowy i ma niewiele linków zewnętrznych,
- oferta często się zmienia, a data
lastmodmoże pomóc Google rozpoznać istotną aktualizację, - część wartościowych stron jest słabo połączona wewnętrznie — choć wtedy sitemapę traktujemy jako wsparcie, a nie zamiennik naprawy linkowania,
- witryna zawiera dużo obrazów, filmów, wersji językowych albo treści newsowych wymagających rozszerzonego formatu mapy.
Struktura pliku sitemap XML
Podstawowy plik sitemap wygląda następująco:
|
|
Omówienie poszczególnych elementów:
<loc>— pełny, bezwzględny adres URL strony; to element wymagany,<lastmod>— data ostatniej istotnej modyfikacji w formacie ISO 8601. Google wykorzystuje ją, jeżeli odpowiada rzeczywistym zmianom treści,<changefreq>— deklarowana częstotliwość zmian, spotykana w starszych generatorach; Google ją ignoruje,<priority>— względny priorytet adresu w obrębie witryny; Google również go ignoruje.
W rekomendowanym pliku wystarczą więc <loc> i rzetelnie aktualizowany <lastmod>. Zmiana stopki, roku w prawach autorskich albo ponowne wygenerowanie strony bez zmiany jej istotnej treści nie powinny przesuwać tej daty. Aktualne zasady opisuje dokumentacja sitemap Google.
Sitemap index - rozwiązanie dla dużych witryn
Pojedynczy plik sitemap ma dwa ograniczenia:
- maksymalnie 50 000 adresów URL,
- maksymalny rozmiar pliku to 50 MB (nieskompresowany).
Dla witryn przekraczających te limity stosuje się sitemap index - plik nadrzędny, który wskazuje na poszczególne pliki sitemap:
|
|
Podział sitemap na mniejsze pliki jest przydatny również przed przekroczeniem limitów. Osobne mapy dla produktów, kategorii i artykułów pozwalają filtrować raport indeksowania w Google Search Console i szybciej zobaczyć, która część serwisu ma problem. Nie warto jednak rozbijać małej witryny na dziesiątki plików bez celu diagnostycznego.
Google nie obsługuje zagnieżdżonych indeksów sitemap
Na pierwszy rzut oka najbardziej logiczna wydaje się wielopoziomowa struktura: jeden główny indeks prowadzi do indeksów produktów, kategorii i artykułów, a dopiero one wskazują właściwe pliki sitemap. Niektóre crawlery i parsery XML potrafią przejść po takim drzewie, ale Google go nie obsługuje.
Taka struktura jest błędna dla Google:
|
|
Plik z elementem głównym <sitemapindex> może wskazywać pliki sitemap, ale nie kolejny <sitemapindex>. Google Search Console zgłasza wtedy błąd zagnieżdżonego indeksu i nie przechodzi do map znajdujących się poziom niżej. To ograniczenie wynika z protokołu sitemap i jest opisane wprost w dokumentacji błędów Google Search Console.
Najprostsze i najbezpieczniejsze rozwiązanie to spłaszczenie struktury:
|
|
Jeżeli z powodów organizacyjnych chcesz zachować osobne indeksy dla produktów, kategorii i artykułów, zgłoś każdy z nich oddzielnie w Google Search Console i dodaj osobne dyrektywy Sitemap: w robots.txt. Nie zgłaszaj Google głównego indeksu, który prowadzi wyłącznie do kolejnych indeksów.
Ograniczenie jest mało eleganckie, ale w praktyce nie zmniejsza pojemności map: pojedynczy sitemap index może zawierać do 50 000 plików, a każdy z nich do 50 000 URL-i. To daje teoretycznie 2,5 miliarda adresów bez dodatkowego poziomu zagnieżdżenia. Google pozwala też zgłosić do 500 indeksów sitemap dla jednej witryny.
Jak wygenerować sitemap na popularnych platformach
WordPress / WooCommerce
WordPress generuje natywną mapę witryny od wersji 5.5. W aktualnym WordPressie 7 nadal jest ona dostępna pod adresem /wp-sitemap.xml, obejmuje publiczne typy treści i taksonomie, a jej działanie można rozszerzać filtrami. W praktyce wiele serwisów korzysta z map generowanych przez Yoast SEO albo Rank Math, ponieważ łatwiej wtedy kontrolować typy treści, taksonomie i pojedyncze wykluczenia. Najpierw sprawdź jednak, który mechanizm faktycznie obsługuje sitemapę — dwie wtyczki SEO nie powinny równolegle generować konkurencyjnych zestawów map.
W WooCommerce sprawdź osobno produkty, kategorie i ewentualne tagi produktów. Koszyk, checkout, konto klienta oraz techniczne endpointy nie są kandydatami do indeksowania i nie powinny znaleźć się w mapie. Oficjalna dokumentacja klasy WP_Sitemaps pokazuje, jak działa natywny mechanizm WordPressa.
Shopify
Shopify automatycznie generuje /sitemap.xml i aktualizuje mapy po dodaniu produktu, kolekcji, strony, obrazu lub wpisu blogowego. Plik nadrzędny prowadzi do osobnych map produktów, kolekcji, bloga i stron. Nie edytuje się go bezpośrednio, dlatego problemy rozwiązujemy przez status publikacji, canonicale, przekierowania i konfigurację domen. Przy wielu rynkach trzeba również sprawdzić mapy wygenerowane dla dodatkowych domen. Szczegóły opisuje dokumentacja Shopify.
PrestaShop
W PrestaShop mapa zależy od używanego modułu i jego konfiguracji. Oficjalny moduł Sitemap Generator for SEO pozwala wybrać języki, obrazy oraz typy stron, a także skonfigurować cykliczną aktualizację przez cron. Nie zakładaj z góry jednego adresu pliku: skopiuj URL wygenerowany przez konkretny moduł i sprawdź, czy po zmianach w katalogu produktów mapa rzeczywiście się odświeża.
Generowanie ręczne
Dla witryn statycznych lub niestandardowych CMS-ów najlepiej generować sitemapę bezpośrednio z bazy publikowanych treści. Screaming Frog potrafi wyeksportować mapę z crawla, XML-Sitemaps.com obsłuży mały serwis, a własny generator można zbudować na przykład w Pythonie z biblioteką lxml. Generator oparty wyłącznie na crawlu nie odnajdzie stron osieroconych, więc trzeba porównać jego wynik ze źródłem danych CMS-a.
Jak zgłosić sitemapę do Google Search Console
Zgłoszenie mapy mówi Google, gdzie znajduje się plik i pozwala obserwować jego odczyty oraz błędy. Nie wysyłasz pliku do Search Console — plik pozostaje na Twoim serwerze.
- Zaloguj się do Google Search Console i wybierz właściwą usługę.
- Przejdź do sekcji „Mapy witryn”.
- W polu „Dodaj nową mapę witryny” wpisz adres, na przykład
sitemap.xmlalbositemap_index.xml. - Kliknij „Prześlij” i sprawdź, czy Google może pobrać plik.
Po prawidłowym zgłoszeniu Google zwykle szybko pobiera samą sitemapę. Crawlowanie i indeksowanie wymienionych stron odbywa się osobno i może potrwać dłużej.
Jak czytać raport Mapy witryn?
| Pole lub status | Co oznacza | Co zrobić |
|---|---|---|
| Sukces | Google pobrał i przetworzył plik | sprawdź datę ostatniego odczytu oraz liczbę wykrytych stron |
| Nie udało się pobrać | robot nie otrzymał prawidłowego pliku | sprawdź adres, status HTTP, blokady, wymagane logowanie i dostępność dla Googlebota |
| Mapa zawiera błędy | część pliku została odczytana, ale parser wykrył problemy | otwórz szczegóły i popraw wskazane URL-e, daty albo składnię XML |
| Wykryte strony | liczba unikalnych adresów odczytanych z mapy | porównaj ją z liczbą stron indeksowalnych w danej sekcji, a nie z całym katalogiem CMS-a |
„Wykryte strony” nie oznaczają „strony zaindeksowane”. Otwórz raport indeksowania przefiltrowany według konkretnej sitemapy i porównaj produkty z produktami, kategorie z kategoriami oraz artykuły z artykułami. Jeżeli mapa zawiera 40 000 produktów, a raport pokazuje tylko niewielką część jako zaindeksowaną, zbadaj próbki przez Inspekcję URL-i oraz sprawdź canonicale, noindex, statusy HTTP i linkowanie. Taki podział daje użyteczniejszą diagnozę niż jeden wspólny plik dla całego serwisu.
Dodatkowo warto wskazać lokalizację sitemap w pliku robots.txt za pomocą dyrektywy:
|
|
Odnośnik w robots.txt pozwala wyszukiwarkom odnaleźć mapę niezależnie od ręcznego zgłoszenia. Nadal warto dodać ją w Search Console, ponieważ wtedy zobaczysz datę odczytu i błędy przetwarzania.
Sprawdź plik sitemap przed zgłoszeniem
Poniższy inspektor lokalnie sprawdzi podstawową strukturę XML, limity, adresy, hosty, duplikaty i daty lastmod. Nie pobiera URL-i z mapy, dlatego dostępność oraz indeksowalność stron nadal trzeba zweryfikować w crawlerze i Google Search Console.
Analiza lokalna w przeglądarce
Sprawdź podstawową strukturę sitemap XML
Wklej lub otwórz plik, aby znaleźć błędy XML, adresów, hostów, duplikatów i dat. Dane pozostają w Twojej przeglądarce.
Wynik analizy
Wymaga poprawy
Do weryfikacji
Sprawdzone pozytywnie
Czego ten test nie sprawdza
- nie pobiera adresów z
<loc>, więc nie zna ich statusów HTTP, przekierowań, canonicali,noindexani blokad robots.txt, - nie sprawdza, czy podane
<lastmod>odpowiadają faktycznym zmianom treści, - kontroluje podstawową strukturę
urlsetisitemapindex, ale nie pełne rozszerzenia news, image, video ani hreflang, - ostateczny stan przetwarzania i indeksacji sprawdzisz w Google Search Console.
Google zna tylko część ważnych stron?
Sprawdzimy sitemapę, canonicale, linkowanie i raport indeksowania, aby znaleźć różnicę między katalogiem serwisu a tym, co rzeczywiście odkrywa Google.
Najczęstsze błędy w sitemap XML
Adresy URL z noindex w sitemapie
Sitemapa wskazuje preferowane adresy, które chcesz widzieć w wynikach, natomiast noindex wyklucza stronę z indeksu. To sprzeczne cele. Usuń taki URL z mapy albo — jeżeli strona rzeczywiście ma być indeksowana — usuń nieprawidłową dyrektywę.
Nieaktualne adresy URL
Mapa zawierająca błędy 404, przekierowania albo usunięte produkty tworzy szum diagnostyczny i może kierować żądania Googlebota do nieaktualnych miejsc. Generuj ją z bieżącego zbioru publikowanych, kanonicznych stron zwracających 200 OK, zamiast dopisywać kolejne URL-e do pliku bez usuwania poprzednich.
lastmod zmieniany bez aktualizacji treści
Jeżeli każdy deploy albo uruchomienie generatora ustawia wszystkim stronom dzisiejszą datę, <lastmod> przestaje odróżniać prawdziwe aktualizacje od zmian technicznych. Aktualizuj go po istotnej zmianie głównej treści, danych strukturalnych lub linków na stronie. W e-commerce warto powiązać datę z realną modyfikacją produktu lub kategorii, a nie z nocnym eksportem całego katalogu.
Brak odnośnika do sitemapy w robots.txt
Jeżeli mapa została zgłoszona w Search Console, brak dyrektywy Sitemap: nie unieważnia zgłoszenia. Mimo to warto wskazać plik również w robots.txt, ponieważ jest to niezależny, dostępny dla różnych robotów punkt odkrywania mapy.
Niespójna wersja domeny
Adresy w sitemapie powinny być spójne z protokołem, hostem i wersją kanoniczną domeny. Jeśli witryna działa na https://www.example.com, nie mieszaj jej z http://www.example.com ani https://example.com. Google próbuje pobierać dokładnie te adresy, które znajdują się w pliku.
Najczęstsze pytania o sitemap XML
Jak często Google odczytuje sitemap?
lastmod niż ręczne wysyłanie go za każdym razem.
Czy sitemap jest wymagany do indeksacji?
Czy mogę mieć kilka plików sitemap?
Czy sitemap index może wskazywać kolejny sitemap index?
robots.txt. To, że inne narzędzie potrafi przejść po zagnieżdżonym drzewie, nie oznacza, że zrobi to Googlebot.