Czym właściwie jest sitemap.xml?

Sitemap.xml, czyli mapa witryny, to plik, który w założeniu powinien zawierać listę istotnych dla nas stron w obrębie witryny. Stworzony jest po to, by roboty indeksujące w łatwiejszy sposób mogły dotrzeć do ważnych dla nas zasobów, szczególnie tych nowo powstałych, jak i trudnodostępnych ze względu na strukturę naszego serwisu, czy sposób linkowania wewnętrznego.

Plik mapy witryny jako pojedynczy plik nie powinien przekraczać 50 MB i 50,000 adresów URL wg wytycznych Google. Plik mapy witryny powinien być stworzony w formacie XML.

Czy wiesz, że?

XML to pochodzący z języka angielskiego skrót od Extensible Markup Language. Tłumacząc to na język polski, otrzymujemy „Rozszerzalny język znaczników”. Pliki XML są używane w celu przekazywania danych w strukturalny sposób, ponieważ są niezależne od platformy, przez co format ten jest tak popularny i uniwersalny.

Jako administrator serwisu, bloger czy właściciel e-commerce często popełniasz błąd, chcąc umieścić w takiej mapie witryny wszystkie podstrony. Dlaczego nie jest to dobry wybór? Co ze stronami typu regulaminy, do których wszystkie odnośniki mają wartość atrybutu rel= “nofollow”? Lub stronami z tagiem noindex? O tym, jakie adresy URL powinny znaleźć się w mapie witryny, dowiesz się dokładnie w dalszej części artykułu.

Z jakich danych składa się sitemap.xml?

Jak wspomniałem wcześniej, format XML pozwala na przedstawianie danych w sposób usystematyzowany. Oznacza to, że w głównej mierze składa się on z określonych znaczników, które mają swoją konkretną rolę. Zastosowanie tego formatu sprawia, że każdy przesyła informacje o adresach URL w ten sam sposób, który bez problemu odczytują roboty crawlujące. Poniżej znajdziesz informacje o 3 najważniejszych znacznikach, bez których mapa strony nie może istnieć.

Ważne! Plik sitemap.xml powinien mieć kodowanie UTF-8!

Najważniejsze znaczniki w sitemap.xml

<urlset> Zawiera plik i odwołanie do bieżącego standardu protokołu. Jest elementem zaczynającym i kończącym każdy z plików sitemap.xml. Znajdują się w nim wszystkie tagi.

<url> Tag nadrzędny każdego wpisu adresu URL, który chcemy, aby znalazły roboty indeksujące Google. W tagu <url> musi znajdować się jeszcze jeden znacznik <loc>, aby zapis był prawidłowy. Może być wzbogacony o dodatkowe/opcjonalne tagi, o których piszę w dalszej części.

<loc> Location <loc> jest znacznikiem oznaczający lokalizację danej podstrony. W znaczniku powinien znaleźć się adres URL przedstawiony w pełnej formie, tzn. również z protokołem http/https.

Opcjonalne znaczniki w sitemap.xml

<lastmod> Informuje o dacie modyfikacji treści na danej podstronie. Roboty wiedzą, czy od ostatniego skanowania treść danej podstrony została zmieniona. W lastmod korzystamy z W3C Datetime, który umożliwia podanie samej daty w postaci RRRR-MM-DD, bez podawania godziny.

<priority> Tag, który w domyśle ma wskazywać robotom crawlującym, które z podstron są dla nas najistotniejsze i powinny być zaindeksowane w pierwszej kolejności. Zakres wartości w tym tagu to od 0.0 do 1.0, gdzie domyślny priorytet dla podstron to 0.5. Element ten uważam za średnio użyteczny, jako że Gary Illyes w 2017 roku potwierdził jego ignorowanie przez crawlery.

źródło:

<changefreq> Tag określający częstotliwość zmian na danej podstronie w obrębie witryny. W założeniu element ten miał pomóc określać częstotliwość skanowania danej podstrony, skorelowaną ze zmianami na nich przeprowadzanymi.

Właściwe wartości, które mogą znaleźć się w <changefreq>

  • always - dokumenty zmieniające się przy każdym otwarciu
  • hourly - zmiany co godzinę
  • daily - zmiany co dzień
  • weekly - zmiany co tydzień
  • monthly - zmiany co miesiąc
  • yearly - zmiany co roku
  • never - nigdy nie zmieniane

Przykładowy zapis pliku sitemap.xml dla domeny ks.pl
Przykładowy zapis pliku sitemap.xml dla domeny ks.pl

Jakie adresy URL powinny znaleźć się w mapie strony?

Jak wspomniałem w początkowej części artykułu nie wszystkie adresy URL powinny znaleźć się w naszej sitemapie. Spotykam się bardzo często z niepoprawną konfiguracją tego elementu, która może negatywnie wpływać na crawl budget strony. Zadbajmy więc o to, by w sitemapie znalazły się wyłącznie wartościowe podstrony. Do takich zaliczamy przede wszystkim:

  • Strony generujące kod odpowiedzi 200
  • Strony niezablokowane w robots.txt
  • Linki kanoniczne
  • Strony wartościowe dla użytkowników
  • Strony niezabezpieczone hasłem lub z utrudnionym dostępem

W głównej mierze w zależności od typu strony będą to:

  • Strona główna, kategorie i strony produktowe, wpisy blogowe, kategorie blogowe, strony typu FAQ, strony statyczne (informacyjne).

Jakie adresy URL nie powinny znaleźć się w mapie strony?

Powyżej umieściłem informację, jakie adresy URL powinna zawierać mapa witryny. Równie ważna jest także wiedza o tym, jakich adresów powinniśmy unikać, tworząc mapę strony. Są to przede wszystkim:

  • Adresy URL z przekierowaniami
  • Strony Błędów 40X oraz 50X
  • Strony zablokowane w robots.txt
  • Strony z tagiem noindex
  • Strony małowartościowe dla użytkowników (regulaminy, polityki prywatności)
  • Strony paginacji
  • Strony wyników wyszukiwania
  • Strony z parametrami filtracji/sortowania

Jak wygenerować sitemapę? - Najpopularniejsze metody

W zależności od tego, jak duży serwis posiadamy oraz z jakiego systemu zarządzania treścią (CMS) korzystamy, generowanie mapy witryny może odbyć się za pomocą darmowych narzędzi (generatory sitemap.xml) lub wbudowanych/dodatkowych narzędzi/wtyczek.

Jak wygenerować sitemap.xml dla WordPress?

Zacznijmy od najpopularniejszego systemu zarządzania treścią w Polsce (prawie 49% udziału w rynku wg. danych z https://trends.builtwith.com/cms/open-source/country/Poland). Najszybszym i najłatwiejszym sposobem, aby stworzyć mapę witryny, jest skorzystanie z wtyczki Yoast SEO. Automatycznie tworzy nam mapę witryny, my wybieramy odpowiednie ustawienia i decydujemy, które zasoby mają być w niej zawarte. Wtyczka jest bardzo intuicyjna i prosta w obsłudze. Dodatkowo jej podstawowa wersja ma opcje wystarczające dla większości webmasterów.

Mapa witryny w Shoper

Przejdźmy do stale zyskującego na popularności w Polsce Shopera. Ten SaaS nie wymaga od nas instalowania dodatkowych wtyczek. Sam automatycznie tworzy mapę witryny za nas. Adres sitemapy dla Shopera to:

https://nazwa-twojej-domeny.pl/console/integration/execute/name/GoogleSitemap

Stworzenie sitemap xml dla CMS-ów, które nie mają takich funkcjonalności

Jeśli system zarządzania treścią, z którego korzystasz, nie ma wbudowanej funkcjonalności lub dodatkowego modułu, z którego możesz skorzystać do tworzenia mapy witryny, to nie oznacza to, że musisz tworzyć ją ręcznie. Z pomocą przychodzi szereg narzędzi zarówno darmowych, jak i płatnych, z których możesz skorzystać.

Online generator, który stworzy mapę strony, najczęściej w wersji darmowej ma pewne ograniczenia. W większości jest to maksymalny limit stron, jakie możemy umieścić w sitemap.xml i wynosi on 500 adresów URL. W płatnych wersjach wtyczek praktycznie nie spotkamy się z ograniczeniami ilościowymi. Generatory sitemap polecam szczególnie posiadaczom niewielkich witryn, gdzie wspomniany limit nie będzie problemem.

Mapę strony możesz również przygotować przy okazji skanowania witryny przy użyciu crawlera, jakim jest Screaming Frog (https://ks.pl/slownik/co-to-jest-screaming-frog). Screaming Frog w darmowej wersji pozwala na zeskanowanie 500 zasobów w obrębie witryny.

Instrukcja tworzenia sitemapy w narzędziu Screaming Frog znajdziesz w ich oficjalnym poradniku: https://www.screamingfrog.co.uk/xml-sitemap-generator/

Uwaga: W przypadku ręcznie tworzonych map witryny, nie są one aktualizowane automatycznie. Należy pamiętać o ich aktualizacji po dodaniu nowych produktów, wpisów czy stron.

Gdzie umieścić plik sitemap.xml?

Wygenerowany plik sitemap.xml najczęściej znajduje się w katalogu głównym witryny, której dotyczy i dostępny jest pod adresem https://nazwa-twojej-domeny.pl/sitemap.xml. Nie jest to jednak wymóg konieczny.

Zarówno nazwa, jak i ścieżka dotarcia do sitemapy może różnić się w zależności od tego, czy mapa witryny została dodana w ręczny sposób, czy jednak skorzystaliśmy z wbudowanych rozwiązań.

Aby ułatwić robotom crawlującym dostanie się do mapy witryny, warto umieścić ścieżkę dostępu do niej w pliku robots.txt.

Wystarczy, że dopiszemy regułę Sitemap: https://nazwa-twojej-domeny.pl/sitemap.xml

Najpopularniejsze typy sitemap.xml

Mapy strony nie zawsze są takie same – w zależności od typu i wielkości witryny możemy potrzebować różnego rodzaju sitemap, które zostaną omówione poniżej. Koniecznie dowiedz się czym jest sitemap index, kiedy warto zdecydować się na mapę grafik oraz jaki związek z Google News ma nasza sitemapa.

Klasyczna mapa witryny

Standardowa mapa witryny w formacie XML, w której znajdują się odnośniki do stron internetowych w obrębie naszej witryny. Najczęściej występująca pod nazwą sitemap.xml

Mapa zbiorcza sitemap-index.xml

Indeks sitemap to nic innego jak mapa witryny zawierająca w sobie inne sitemapy. Wykorzystywana w przypadku bardzo dużych witryn, których potencjalna mapa witryny przekraczałaby 50 MB – takie mapy należy podzielić na kilka mniejszych i zamieścić odnośniki do nich, korzystając właśnie z indeksu sitemap.

Przykładowy indeks sitemap
Przykładowy indeks sitemap

Również wcześniej wspomniana wtyczka Yoast SEO tworzy indeks sitemap dla różnego rodzaju stron. Dzięki niej powstaje między innymi osobna sitemapa dla stron, wpisów blogowych, kategorii blogowych czy autora.

Mapa witryny wygenerowana w wtyczce Yoast SEO
Mapa witryny wygenerowana w wtyczce Yoast SEO

Mapa witryny z plikami graficznymi i materiałami wideo

Jeśli zależy Ci, aby Twoje pliki graficzne znalazły się w wyszukiwarce grafiki Google, to koniecznie zwiększ na to szanse, tworząc dedykowaną mapę witryny zawierającą odnośniki do plików graficznych. O ile roboty crawlujące nie mają problemu z odnajdywaniem i indeksowaniem plików graficznych, to ustawienia takie jak np. lazyload mogą im to utrudniać. Stworzenie mapy plików graficznych jest bardzo proste.

Przykładowa sitemapa dla plików graficznych
Przykładowa sitemapa dla plików graficznych

Źródło: https://developers.google.com/search/docs/advanced/sitemaps/image-sitemaps

Uwaga: W starszych mapach plików graficznych znajdują się jeszcze tagi takie jak ≶image:caption>, ≶image:geo_location>, ≶image:title>, ≶image:license>. Zostały one usunięte z dokumentacji i nie ma konieczności przypisywania ich do każdego z plików graficznych.

Mapa strony dla artykułów w Google News

Czym jest Google News, nie muszę chyba nikomu tłumaczyć. Newsy stały się źródłem informacji dla ogromnej liczby użytkowników, dlatego każdy z wydawców internetowych chce się tam znaleźć. W sitemapie z artykułami newsowymi powinny znaleźć się odnośniki do artykułów, które nie są starsze niż 2 dni. W przypadku starszych artykułów należy usunąć je z sitemapy.

Przykładowa sitemapa dla artykułów newsowych
Przykładowa sitemapa dla artykułów newsowych

Źródło: https://developers.google.com/search/docs/advanced/sitemaps/news-sitemap

Jak przesłać sitemap.xml w Google Search Console?

Mapy witryny nie tworzymy dla siebie czy dla użytkowników, ale dla robotów crawlujących. Zalecam opublikowanie mapy witryny i przesłanie jej w narzędziu Google Search Console, aby roboty Google do niej bezproblemowo dotarły. Prawdopodobnie korzystasz już z Google Search Console, która przecież jest podstawowym narzędziem analitycznym. Jeśli jednak jeszcze nie używasz tej usługi, skorzystaj z instrukcji znajdującej się w naszym słowniku dostępnej pod adresem: https://ks.pl/slownik/co-to-jest-google-search-console

Jeśli masz już założoną usługę Google Search Console dla Twojej witryny, możesz przystąpić do przesłania jej mapy.

Krok 1

Wejdź w zakładkę „Mapy witryn” znajdującą się w bocznym menu.

Google Search Console - Mapy witryn
Google Search Console - Mapy witryn

Krok 2

Podaj ścieżkę do Twojej sitemapy, najczęściej sitemap.xml lub sitemap-index.xml

Google Search Console - Dodanie ścieżki do mapy witryny
Google Search Console - Dodanie ścieżki do mapy witryny

Krok 3

Zweryfikuj stan sitemapy po jej przesłaniu. Po przesłaniu sitemapy wyświetlą się informacje o dacie przesłania, ostatnim odczycie oraz stanie i wykrytych adresach URL.

Przesłana mapa witryny w Google Search Console
Przesłana mapa witryny w Google Search Console

Uwaga: W przypadku wystąpienia statusu „Nie udało się pobrać” zamiast „Sukces”, prześlij mapę witryny raz jeszcze. Jeśli błąd będzie powielany, to sprawdź, czy plik jest dostępny pod wskazanym adresem.

Dlaczego sitemap.xml jest tak ważna z punktu widzenia pozycjonowania?

Powstanie map witryny w 2005 roku było poważnym krokiem ku lepszej indeksacji zasobów strony przez wyszukiwarki. Webmasterzy, którym zależało na jak najlepszych wynikach witryny w wynikach wyszukiwania, szybko przyjęli to nowe rozwiązanie. Przez lata wyszukiwarki i ich roboty crawlujące ewoluowały i coraz lepiej odnajdywały zasoby na naszych podstronach.

Sprawdzanie i optymalizacja mapy witryny stało się również podstawowym elementem podczas audytów SEO. Osobiście uważam, że roboty przy właściwej strukturze strony i z dobrym linkowaniem wewnętrznym nie będą miały problemu z indeksowaniem naszych podstron, mimo że w ostatnim czasie robią to zdecydowanie wolniej.

Stworzenie mapy witryny jest stosunkowo szybkim i prostym zajęciem, które ułatwi znalezienie stron, trudnodostępnych (np. tzw. strony osierocone). Nie przełoży się to na pozycję Twojej strony, ale może wpłynąć na szybsze odkrywanie stron przez roboty. Należy pamiętać o przesłaniu sitemapy w usłudze Google Search Console.

Podsumowanie

Mapa witryny to jeden z podstawowych elementów optymalizacji strony. Sitemapę możesz utworzyć, wykorzystując CMS i jego wbudowane funkcje lub korzystając z ogólnodostępnych narzędzi, wpisując w przeglądarce „sitemap generator”. Jej wygenerowanie i dodanie w GSC będzie miało wpływ na ułatwienie robotom dotarcia do wszystkich podstron, które chcemy zaindeksować i zamieścimy w mapie. Zamieszczenie sitemapy jest szczególnie ważne przy dużych serwisach. Jeśli nie wiesz, czy system CMS, z którego korzystasz ma możliwość generowania xml sitemap to zapraszam do zostawienia komentarza pod artykułem.