Według oficjalnych informacji Google, indeks ich wyszukiwarki ma rozmiar ponad 100 000 000 GB i składają się na niego setki miliardów stron internetowych. Tak ogromna ilość danych oraz stale generowana pula nowego contentu jest nie lada wyzwaniem w procesie szybkiego i sprawnego indeksowania, czego efektem są występujące co jakiś czas kilkudniowe przestoje w uwzględnianiu nowych dokumentów w wyszukiwarce Google. Sama obecność nowych treści w indeksie jest absolutną podstawą w procesie pozycjonowania, dlatego niezbędne jest podjęcie wszelkich kroków, które to usprawnią.
Dużym ułatwieniem dla crawlerów – szczególnie w przypadku dużych serwisów – jest tzw. mapa strony, która jest tematem tego wpisu i która pomimo małego stopnia skomplikowania jest często spychana na margines w procesie optymalizacji serwisów.
Czym jest mapa strony i kiedy warto ją dodać?
Mapa strony jest prostym plikiem tekstowym wykorzystującym język znaczników XML (Extensible Markup Language) do zgromadzenia w jednym miejscu wszystkich istotnych podstron serwisu. Plik powinien zostać umieszczony w głównym katalogu serwisu (np. https://www.domena.pl/sitemap.xml), a jego najprostsza, przykładowa forma składająca się z 3 podstron przedstawia się następująco:
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://www.domena.com/podstrona1.html</loc>
</url>
<url>
<loc>https://www.domena.com/podstrona2.html</loc>
</url>
<url>
<loc>https://www.domena.com/podstrona3.html</loc>
</url>
</urlset>
Dzięki posiadaniu i regularnym aktualizowaniu mapy strony, ułatwiamy robotom wyszukiwarek zapoznanie się z zawartością naszego serwisu oraz umożliwiamy szybsze odnalezienie i zaindeksowanie nowych podstron.
Mapa serwisu jest szczególnie istotna w następujących sytuacjach:
- złożona struktura serwisu i bardzo duża liczba podstron – wówczas szybkie dotarcie do każdej z nich i odnotowanie obecności nowych adresów poprzez standardowe linkowanie wewnętrzne może być utrudnione i trwać bardzo długo,
- problemy z linkowaniem wewnętrznym – jeśli w serwisie istnieją istotne problemy z odsyłaniem do części podstron (np. spotykanym rozwiązaniem jest umieszczanie linków w ramach punktów na mapie, które w wielu sytuacjach nie są widoczne dla robotów), to Google może mieć problem z zauważeniem danej podstrony,
- słaby profil linków zewnętrznych – jeśli posiadany serwis jest nowy i/lub mało popularny, a Google nie odwiedza go zbyt często, to szanse sprawnego indeksowania są niestety bardzo małe.
Wg wytycznych Google, dobrze zbudowane serwisy z poprawnym linkowaniem wewnętrznym, które nie przekraczają 500 podstron nie muszą za wszelką cenę tworzyć pliku z mapą – roboty indeksujące powinny sobie poradzić z analizą contentu. Biorąc jednak pod uwagę stosunkowo prosty sposób na wygenerowanie mapy oraz wizję sprawniejszego indeksowania, warto każdorazowo podjąć próbę jej utworzenia.
Jak powinna być zbudowana mapa strony?
Poza wspomnianą potrzebą utworzenia mapy z wykorzystaniem XML, warto również wspomnieć o innych podstawowych wytycznych, których należy przestrzegać przy tworzeniu i korzystaniu z mapy strony:
- mapa powinna zostać umieszczona w głównym katalogu serwisu,
- w pliku powinny znaleźć się wyłącznie działające i indeksowalne adresy zwracające nagłówek 200, które z założenia mają zostać zaindeksowane przez wyszukiwarkę – w szczególności należy wykluczyć podstrony wywołujące przekierowania lub zwracające błąd 404, a także adresy, które wskazują poprzez link kanoniczny inną podstronę,
- maksymalnym rozmiarem pojedynczej, nieskompresowanej mapy strony jest 50 MB lub 50 000 adresów URL – w przypadku dużych serwisów przekraczających te wartości niezbędne będzie utworzenie dodatkowych map,
- często spotykanymi atrybutami w mapach strony są <priority> oraz <changefreq>, jednak obecnie Google je ignoruje i nie ma potrzeby umieszczania ich jako rozwinięcia informacji o danym adresie URL,
- z kolei atrybut <lastmod> (data ostatniej modyfikacji) jest analizowany przez Google, jednak wszelkie przekłamania w jego zawartości sprawią, że będzie ignorowany przez roboty,
- po poprawnym wygenerowaniu mapy warto przesłać ją poprzez konto Google Search Console oraz umieścić odniesienie do niej w pliku robots.txt w postaci dyrektywy „Sitemap: https://www.domena.pl/sitemap.xml„.
Mapy dają jednak większe możliwości opisywania danych, co przedstawione zostanie w kolejnych punktach. Szczegółowa dokumentacja budowy map strony znajduje się na stronie projektu Sitemaps.org.
Indeks map serwisu
W przypadku potrzeby utworzenia kilku map serwisu rekomendowane jest przygotowanie tzw. indeksu map, w którym znajdą się odniesienia do poszczególnych plików. Indeks przyjmuje bardzo podobną budowę do standardowej mapy, jednak zamiast podstron listuje pliki, co widać na poniższym przykładzie:
<?xml version="1.0" encoding="UTF-8"?>
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<sitemap>
<loc>https://www.domena.com/sitemap1.xml</loc>
</sitemap>
<sitemap>
<loc>https://www.domena.com/sitemap2.xml</loc>
</sitemap>
<sitemap>
<loc>https://www.domena.com/sitemap3.xml</loc>
</sitemap>
</sitemapindex>
Poza czysto techniczną potrzebą rozdzielenia adresów na kilka plików map związaną z przekroczeniem limitów, często spotykaną praktyką jest również podział mający na celu odseparowanie różnych typów adresów, co zwiększa przejrzystość map i ułatwia ich późniejszą analizę. Przykładowym podziałem mogą być odrębne mapy zawierające:
- główne kategorie i podkategorie,
- produkty,
- wpisy blogowe/poradnikowe,
- użytkowników,
- pliki graficzne/video,
- aktualności.
Podział adresów ze względu na typy treści można odnaleźć m.in. w automatycznie generowanych mapach utworzonych przez popularny plugin Yoast SEO w WordPressie.
Różne wersje językowe
Jeśli w ramach tej samej domeny istnieją różne wersje językowe istniejących podstron, to dobrą praktyką jest wskazanie adresów podstron wraz ze szczegółami dotyczącymi języka/regionu, z jakim powinny zostać powiązane. Poza klasyczną metodą polegającą na umieszczeniu w sekcji <head> odpowiedniego elementu <link>, istotne jest również klarowne przedstawienie wersji językowych w mapie strony. Poniżej znajduje się przykładowa mapa wraz z rozbiciem na wersje językowe:
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
xmlns:xhtml="http://www.w3.org/1999/xhtml">
<url>
<loc>http://www.domena.com/podstrona.html</loc>
<xhtml:link
rel="alternate"
hreflang="en"
href="http://www.domena.com/en/podstrona.html"/>
<xhtml:link
rel="alternate"
hreflang="de"
href="http://www.domena.com/de/podstrona.html"/>
<xhtml:link
rel="alternate"
hreflang="fr"
href="http://www.domena.com/fr/podstrona.html"/>
<xhtml:link
rel="alternate"
hreflang="pl"
href="http://www.domena.com/podstrona.html"/>
</url>
</urlset>
Warto podkreślić, że każdy z adresów powinien uwzględniać również odniesienie do samego siebie jako jedna z dostępnych wersji językowych. Dodatkowo, możliwe jest również precyzyjne wskazywanie regionu oraz języka odbiorcy – np. umieszczenie w polu hreflang wartości „de-ch” oznacza, że treść skierowana została do osób znajdujących się w Szwajcarii, które operują językiem niemieckim.
Więcej informacji na temat określania języka podstron w kontekście robotów Google można znaleźć w oficjalnym Centrum Pomocy.
Wiadomości Google
Szybkość indeksowania treści w przypadku serwisów newsowych może mieć szczególnie duże znaczenie – niejednokrotnie zdarza się, że wyświetlane artykuły były opublikowane w przeciągu ostatniej godziny, a Google zdążył już uwzględnić je w indeksie wyszukiwarki:
Jednym ze sposobów na szybszą indeksację newsów jest możliwość utworzenia odrębnej mapy przeznaczonej tylko do treści tego typu. Poniżej standardowo prezentuję przykładową mapę zawierającą wiadomości, w której odnaleźć można dodatkowe pola:
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
xmlns:news="http://www.google.com/schemas/sitemap-news/0.9">
<url>
<loc>https://www.domena.com/seo/adres-artykulu-12345.html</loc>
<news:news>
<news:publication>
<news:name>SEO News Portal</news:name>
<news:language>pl</news:language>
</news:publication>
<news:publication_date>2020-09-18</news:publication_date>
<news:title>Czy branża SEO umiera?</news:title>
</news:news>
</url>
</urlset>
Poza uzupełnieniem powyższych pól, których nazwy nie budzą raczej żadnych wątpliwości co do przeznaczenia, należy pamiętać o kilku ważnych zasadach:
- nowe adresy powinny być na bieżąco dodawane do mapy bezpośrednio po publikacji,
- plik mapy w przypadku Wiadomości Google może zawierać maksymalnie 1000 adresów URL – jeśli w serwisie publikowanych jest więcej artykułów niezbędne jest utworzenie większej liczby map i uwzględnienie ich we wspólnym indeksie (analogicznie jak w przypadku dzielenia standardowych typów podstron),
- Google sugeruje, że po 2 dniach adresy mogą już zostać usunięte z mapy przeznaczonej do przechowywania newsów w ramach Wiadomości Google,
- w tagu <name> informującym o nazwie wydawcy musi pojawić się dokładnie taka sama nazwa jak ta określona na stronie news.google.com.
Warto również podkreślić, że wg Google samo posiadanie mapy dedykowanej newsom w żaden sposób nie faworyzuje treści serwisu w rankingu – jest to jedynie sposób na lepsze indeksowanie. Więcej informacji o mapach dla Wiadomości Google znajdziesz tutaj.
Pliki graficzne i video
W przypadku poprawnie skonstruowanego serwisu, pliki graficzne z reguły nie wymagają dodatkowej obecności w mapie strony, choć w niektórych przypadkach może zajść taka uzasadniona potrzeba (np. nieoptymalne ładowanie grafik poprzez JavaScript). Nieco inna sytuacja ma miejsce w przypadku filmów, których nie da się skutecznie opisać poprzez standardową optymalizację, więc aby roboty Google mogły lepiej zrozumieć zawartość danego nagrania warto uzupełnić plik mapy o możliwie jak najwięcej informacji. Zarówno w przypadku plików graficznych, jak również nagrań video, można utworzyć odrębne mapy przeznaczone na te typy treści lub zintegrować je w istniejących jako rozszerzenie informacji o wybranych podstronach.
Poniżej przedstawiam prosty przykład mapy, w której dla pojedynczego adresu URL wskazano lokalizację znajdującego się na nim zdjęcia wraz z opcjonalnymi polami ze szczegółami:
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
xmlns:image="http://www.google.com/schemas/sitemap-image/1.1">
<url>
<loc>https://www.domena.com/galeria.html</loc>
<image:image>
<image:loc>https://www.domena.com/img/jezioro.jpg</image:loc>
<image:geo_location>Smolniki, Polska</image:geo_location>
<image:license>https://creativecommons.org/licenses/by-sa/2.0/</image:license>
<image:title>Jezioro Jaczno</image:title>
<image:caption>Jezioro Jaczno widziane z punktu widokowego</image:caption>
</image:image>
</url>
</urlset>
Zdecydowanie bardziej skomplikowany układ przyjmuje mapa zawierająca odwołania do plików video, która obejmuje aż 8 wymaganych pól oraz 14 zalecanych lub opcjonalnych – poniżej przykład takiej mapy:
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
xmlns:video="http://www.google.com/schemas/sitemap-video/1.1">
<url>
<loc>https://www.domena.com/poradnik/jak-wgrac-mape-strony.html</loc>
<video:video>
<video:thumbnail_loc>https://www.domena.com/img/mini.jpg</video:thumbnail_loc>
<video:title>Jak wgrać mapę strony do serwisu?</video:title>
<video:description>Poznaj 3 sposoby na wgranie mapy na serwer</video:description>
<video:content_loc>https://www.domena.com/video/mapa.mp4</video:content_loc>
<video:player_loc>https://www.domena.com/player.html</video:player_loc>
<video:duration>777</video:duration>
</video:video>
</url>
</urlset>
Szczegółowe informacje dotyczące implementacji mapy oraz wszystkich dostępnych pól znajdziesz w pomocy Google Search Console pod tym adresem.
Jak za darmo wygenerować mapę strony XML?
W Internecie istnieje wiele generatorów map, które umożliwiają automatyczne utworzenie plików bez żadnych technicznych umiejętności (przeważnie za darmo można uwzględnić pewną ograniczoną pulę adresów). Jednym z najpopularniejszych jest znany od wielu lat serwis xml-sitemaps.com, na którym po wpisaniu adresu strony i zatwierdzeniu po chwili możemy cieszyć się gotową mapą:
Narzędzie umożliwia darmowe wygenerowanie map do 500 adresów URL, co powinno w zupełności wystarczyć dla małych i średnich serwisów. Narzędzie umożliwia również płatne wygenerowanie mapy nawet do 1,5 mln podstron, jednak przy tak dużych serwisach zdecydowanie lepszym rozwiązaniem jest inwestycja w zautomatyzowany mechanizm generowania map.
Alternatywą dającą większy wpływ na to, co trafi do mapy, jest często wspominane przeze mnie narzędzie Screaming Frog, które z założenia służy do crawlowania całych serwisów i analizy wielu czynników SEO. Problemem tego rozwiązania ponownie mogą okazać się koszty – w wersji darmowej możliwe jest przeskanowanie serwisu do 500 adresów URL. Po wpisaniu adresu i zakończeniu skanu, wystarczy wybrać z menu Sitemaps >> XML Sitemap i zaznaczyć interesujące nas opcje (m.in. istnieje możliwość uwzględniania plików PDF, obrazków, wersji językowych i wielu innych):
Mając już wygenerowany plik, niezbędne jest umieszczenie go na serwerze w głównym katalogu serwisu – cała operacja sprowadza się jedynie do zalogowania na serwer FTP i wgrania pliku.
Jak wygenerować mapę w WordPressie?
Jeśli posiadany serwis działa w oparciu o platformę WordPress, to od wersji 5.5 (opublikowanej w sierpniu 2020) mapa strony stała się natywnym elementem CMSa i powinna być w każdym zaktualizowanym serwisie. Więcej informacji na ten temat dostępnych jest na oficjalnej stronie WordPressa.
Jeśli z jakiegoś powodu serwis nie może być jednak zaktualizowany do tej wersji (lub wyższej), to wygenerowanie mapy nadal sprowadza się jedynie do instalacji popularnego pluginu Yoast SEO, który dodajemy poprzez zalogowanie do panelu i wybór opcji Wtyczki >> Dodaj nową, a następnie wyszukanie Yoast SEO i jego instalację:
Mapa powinna być dostępna w momencie uruchomienia pluginu. W wielu przypadkach niezbędne jest również zadbanie o to, by nie znalazły się w niej elementy, które nie są przez nas wykorzystywane, ale są oferowane w ramach kupionego szablonu. Aby tego typu podstrony zostały wyłączone z indeksowania oraz z pliku mapy, w ustawieniach Yoast SEO należy zaznaczyć poniższą opcję:
Jak zweryfikować poprawność mapy?
Ostatnim etapem jest dodanie utworzonej mapy strony do konta Google Search Console – po zalogowaniu na swoje konto i wybraniu opcji Indeks >> Mapy witryn, należy podać adres pliku i zatwierdzić:
Po przesłaniu dostępne będą statystyki i ew. błędy, które należy wyeliminować:
Dodatkowym pomysłem na przeskanowanie mapy w poszukiwaniu ew. błędów jest wykorzystanie Screaming Froga poprzez zmianę trybu pracy poprzez menu Mode >> List oraz wybór poniższej opcji:
Dzięki temu z łatwością można namierzyć wszelkie błędy 404, przekierowania, nieindeksowalne adresy i wiele innych potencjalnych problemów z mapami stron.
Podsumowanie
Mapy strony są często zaniedbywanym elementem, a audytowane serwisy bardzo rzadko posiadają w 100% poprawnie wygenerowany zestaw adresów URL – dotyczy to głównie dużych serwisów. Biorąc jednak pod uwagę stosunkowo proste wytyczne generowania map oraz mnogość bezpłatnych rozwiązań umożliwiających niemal natychmiastowe utworzenie niezbędnych plików, warto zadbać o kolejny element optymalizacyjny w naszym serwisie i zwiększyć szanse na szybkie indeksowanie w Google 🙂