Mapa witryny XML w PrestaShop (sitemap) to plik z listą adresów produktów, kategorii i stron CMS, który podpowiada Google, co jest w sklepie i kiedy się zmieniło. Krótko: wygeneruj ją modułem gsitemap albo dedykowanym modułem, dopisz do robots.txt, zgłoś raz w Google Search Console i ustaw codzienne odświeżanie przez CRON. Poniżej znajdziesz, co powinno się w niej znaleźć, jak ogarnąć wiele języków i sklepów oraz jakich błędów unikać.
- Czym jest sitemap i czy sklep PrestaShop jej potrzebuje?
- Co powinna zawierać mapa witryny XML w PrestaShop?
- Jak wygenerować sitemap w PrestaShop modułem gsitemap?
- Moduł gsitemap czy dedykowany moduł do mapy witryny?
- Jak obsłużyć wiele języków i multistore?
- Jak zgłosić mapę witryny w Google Search Console?
- Jak ustawić automatyczne odświeżanie mapy przez CRON?
- Najczęstsze błędy w mapie witryny PrestaShop
- Najczęściej zadawane pytania
Czym jest sitemap i czy sklep PrestaShop jej potrzebuje?
Mapa witryny to zwykły plik XML w formacie opisanym na sitemaps.org. Każdy wpis zawiera adres strony (loc) i opcjonalnie datę ostatniej zmiany (lastmod). Google czyta go jako wskazówkę: które adresy uznajesz za ważne i które warto odwiedzić ponownie.
Mała strona z dobrym linkowaniem wewnętrznym poradzi sobie bez mapy. Sklep to inna sprawa:
- ma setki lub tysiące produktów, często dostępnych dopiero na trzeciej czy czwartej stronie kategorii,
- codziennie zmienia ceny, stany i opisy,
- dodaje nowe produkty, które nie mają jeszcze żadnych linków z zewnątrz,
- często działa w kilku językach.
W takiej sytuacji mapa przyspiesza odkrywanie nowych produktów i pomaga Google zauważyć zmiany. Pamiętaj jednak, że mapa nie gwarantuje indeksowania. To zaproszenie, a nie polecenie: słabe lub zduplikowane strony nadal mogą zostać pominięte.
Co powinna zawierać mapa witryny XML w PrestaShop?
Zasada jest prosta: w mapie umieszczasz tylko adresy, które chcesz widzieć w wynikach Google. Każdy z nich powinien zwracać kod 200, nie przekierowywać i nie mieć znacznika noindex, a do tego być adresem kanonicznym.
| Typ strony | W mapie? | Uwagi |
|---|---|---|
| Produkty aktywne | tak | najważniejsza część mapy, z datą lastmod i zdjęciami |
| Kategorie | tak | bez adresów z filtrami i sortowaniem |
| Strony CMS | tak | regulamin i polityka prywatności nie szkodzą, ale nie są priorytetem |
| Producenci i dostawcy | zależnie od sklepu | tylko jeśli te strony mają treść, a nie samą listę produktów |
| Koszyk, logowanie, konto, zamówienie | nie | te strony są i tak zablokowane w robots.txt |
| Wyniki wyszukiwania, filtry, paginacja z parametrami | nie | tworzą tysiące niemal identycznych adresów |
| Produkty wyłączone lub usunięte | nie | zwracają 404 albo przekierowanie |
Kilka szczegółów technicznych, które warto znać:
- Jeden plik może mieć najwyżej 50 000 adresów i 50 MB (bez kompresji). Większe sklepy dzielą mapę na kilka plików i łączą je plikiem indeksu (sitemap index), który zgłaszasz w Google.
- Google ignoruje pola
priorityichangefreq. Nie trać czasu na ich dopracowywanie. - Pole
lastmodma znaczenie, ale tylko gdy jest wiarygodne. Jeśli każdy adres zawsze ma dzisiejszą datę, Google przestaje jej ufać. - Zdjęcia produktów można dodać jako mapę obrazów (
image:image), co pomaga w Grafice Google. Od 2022 roku Google bierze pod uwagę tylko sam adres obrazka; podpisy i tytuły w mapie są ignorowane, więc teksty alternatywne ustawiaj na stronie produktu.
Mapa powinna zawierać te same adresy, które widzi klient. Jeśli zmieniasz format linków, na przykład usuwasz z nich identyfikatory, wygeneruj mapę od nowa zaraz po zmianie. Jak to zrobić bez utraty pozycji, opisujemy w poradniku o adresach URL bez ID.
Jak wygenerować sitemap w PrestaShop modułem gsitemap?
PrestaShop ma darmowy moduł Google sitemap (nazwa techniczna gsitemap). Zależnie od wersji sklepu bywa już w katalogu modułów albo trzeba go pobrać z oficjalnego repozytorium PrestaShop na GitHubie.
- Wejdź w Moduły → Menedżer modułów, wyszukaj
gsitemapi kliknij Instaluj, a potem Konfiguruj. - Wybierz, jak często aktualizujesz sklep. To wartość
changefreq, którą Google i tak pomija, więc nie ma tu złej odpowiedzi. - Odznacz strony, których nie chcesz w mapie (np. kontakt, nowości, promocje, jeśli nie są dla ciebie ważne w wyszukiwarce).
- Kliknij Generuj plik mapy strony. Przy dużym katalogu potrwa to kilka minut, a moduł generuje pliki partiami.
- Na górze strony konfiguracji pojawi się adres głównego pliku, np.
https://twojsklep.pl/1_index_sitemap.xml. Ten adres zgłosisz w Google.
Moduł zapisuje pliki w głównym katalogu sklepu, więc PHP musi mieć tam prawo zapisu. Nazwy plików zawierają numer sklepu i kod języka, np. 1_pl_0_sitemap.xml. Do mapy trafiają aktywne produkty widoczne w katalogu, aktywne kategorie, strony CMS dopuszczone do indeksowania oraz zdjęcia produktów.
Moduł gsitemap czy dedykowany moduł do mapy witryny?
Dla małego sklepu w jednym języku gsitemap zwykle wystarczy. Ograniczenia zaczynają przeszkadzać, gdy katalog rośnie albo sklep obsługuje kilka rynków:
| Potrzeba | gsitemap | Dedykowany moduł |
|---|---|---|
| Produkty, kategorie, CMS, zdjęcia | tak | tak |
| Osobne mapy dla języków | tak, w nazwach plików | tak, z podziałem na typy treści |
| Osobne mapy dla sklepów multistore | tak, osobne uruchomienie dla każdego sklepu | tak |
| Podział na typy treści (produkty, kategorie, CMS) | nie, wszystko w jednym ciągu plików | zależnie od modułu |
| Duże katalogi (dziesiątki tysięcy produktów) | generuje partiami przez przekierowania, bywa wolny | zależnie od modułu |
Osobne mapy dla produktów, kategorii i stron CMS to nie kosmetyka. W Search Console możesz wtedy sprawdzić, jaki odsetek samych produktów jest zaindeksowany, i szybko zauważyć, gdy problem dotyczy jednej grupy stron.
Jeśli gsitemap nie wystarcza przy Twoim katalogu, wybieraj moduł do map uważnie: sprawdź, czy dzieli mapy według typu treści, działa z CRON i radzi sobie z liczbą produktów, którą masz.
Jak obsłużyć wiele języków i multistore?
Wiele języków w jednym sklepie. Każda wersja językowa ma własne adresy (np. /pl/, /en/), więc każda powinna mieć własne wpisy w mapie. Oba podejścia, gsitemap i moduły dedykowane, tworzą osobne pliki na język i łączą je w jednym pliku indeksu. Powiązania między wersjami językowymi (hreflang) motywy Classic i Hummingbird umieszczają w nagłówku strony, więc nie musisz ich powtarzać w mapie. Sprawdź jednak, czy twój motyw nie usunął tego bloku.
Multistore. Każdy sklep ma własny plik indeksu (1_index_sitemap.xml, 2_index_sitemap.xml itd.). Jeśli sklepy działają na różnych domenach, każda domena to osobna usługa w Google Search Console i w każdej zgłaszasz mapę tylko swojego sklepu, pod własną domeną. Przełącz kontekst na konkretny sklep (selektor sklepów u góry panelu) przed generowaniem mapy w gsitemap, bo moduł działa na bieżącym sklepie.
Uwaga: mapa jednego sklepu nie powinna zawierać adresów z domeny innego sklepu. Google przyjmie plik tylko wtedy, gdy adresy w nim należą do usługi, w której go zgłaszasz (wyjątkiem jest wskazanie mapy w
robots.txtdanej domeny).
Jak zgłosić mapę witryny w Google Search Console?
- Dodaj sklep w Google Search Console jako usługę typu domena (obejmuje wszystkie protokoły i subdomeny) albo prefiks URL i potwierdź własność.
- Przejdź do Indeksowanie → Mapy witryn.
- Wpisz adres pliku indeksu, np.
1_index_sitemap.xml, i kliknij Prześlij. - Po chwili zobaczysz status i liczbę wykrytych stron. Jeśli Google zgłasza, że nie może pobrać pliku, otwórz adres w przeglądarce w trybie prywatnym i sprawdź, czy zwraca XML, a nie stronę błędu lub przekierowanie.
- W raporcie Indeksowanie stron wybierz filtr konkretnej mapy, żeby zobaczyć, które adresy z mapy nie są zaindeksowane i dlaczego.
Mapę zgłaszasz raz. Google sam wraca do niej regularnie, a zmienione pliki odczytuje przy kolejnych wizytach. Dodatkowo dopisz mapę do robots.txt: w Preferencje → Ruch w sekcji Generowanie pliku robots kliknij Generuj plik robots.txt. W PrestaShop 8 i 9 sklep doda wtedy linię Sitemap: z adresem pliku indeksu, o ile mapa już istnieje. Dzięki temu inne wyszukiwarki, w tym Bing, też ją znajdą; w Bing Webmaster Tools możesz ją zgłosić także ręcznie.
Co z „pingowaniem” Google? W 2023 roku Google wyłączył adres do powiadamiania o nowej mapie (tzw. ping). Jeśli moduł albo poradnik każe „wysłać ping do Google”, pomiń ten krok, bo nic nie daje. Liczą się dziś trzy rzeczy: aktualny plik, wiarygodne daty lastmod i mapa zgłoszona w Search Console lub w robots.txt.
Jak ustawić automatyczne odświeżanie mapy przez CRON?
Mapa wygenerowana raz i zostawiona sama sobie po kilku tygodniach zawiera usunięte produkty i nie zawiera nowych. Dlatego odświeżanie warto zautomatyzować.
Moduł gsitemap pokazuje w konfiguracji gotowy adres zadania CRON z tokenem. Wygląda mniej więcej tak: https://twojsklep.pl/module/gsitemap/cron?token=…. W panelu hostingu dodaj zadanie, które wywoła ten adres raz na dobę, najlepiej w nocy:
0 3 * * * curl -sL "https://twojsklep.pl/module/gsitemap/cron?token=TWOJ_TOKEN&id_shop=1" > /dev/null
- Parametr
-Ljest ważny: moduł generuje duże mapy partiami i przechodzi między nimi przez przekierowania. - W multistore dodaj osobne zadanie dla każdego sklepu z odpowiednim
id_shop. - Godzinę dobierz tak, żeby nie nakładała się z importem produktów ani kopią zapasową.
- Sprawdź po pierwszym uruchomieniu, czy data ostatniej aktualizacji w konfiguracji modułu się zmieniła.
Raz na dobę wystarcza większości sklepów. Częściej ma sens tylko wtedy, gdy codziennie dodajesz dużo nowych produktów.
Najczęstsze błędy w mapie witryny PrestaShop
- Mapa ze starymi adresami. Po zmianie formatu linków (np. po usunięciu ID z adresów) mapa nadal wskazuje stare adresy z przekierowaniami. Wygeneruj ją od nowa od razu po zmianie.
- Adresy z filtrami i parametrami. Tysiące wariantów kategorii rozmywają mapę i marnują czas robota Google.
- Mapa zablokowana w
robots.txtalbo plik niedostępny przez ochronę hasłem lub tryb konserwacji. - Mapa na wersji testowej. Kopia sklepu zgłoszona w Search Console albo dostępna publicznie potrafi zdublować treść produkcyjną.
- Brak odświeżania. Mapa sprzed pół roku to mapa z błędami 404.
- Oczekiwanie, że mapa sama „wypozycjonuje” sklep. Mapa pomaga Google znaleźć strony, ale o tym, jak wyglądają w wynikach, decydują treść i dane strukturalne. Ceny i gwiazdki w Google opisujemy w poradniku o danych strukturalnych w PrestaShop.
Jeśli chcesz, żeby ktoś skonfigurował mapy, CRON i Search Console za ciebie, możemy to zrobić w ramach prac programistycznych.
Najczęściej zadawane pytania
Gdzie znajdę mapę witryny mojego sklepu PrestaShop?
Przy module gsitemap plik indeksu leży w głównym katalogu sklepu i nazywa się 1_index_sitemap.xml (cyfra to numer sklepu). Dokładny adres pokazuje konfiguracja modułu. Inne moduły mogą zapisywać mapy pod inną nazwą, więc sprawdź ich ustawienia.
Jak często generować mapę witryny?
Większości sklepów wystarcza raz na dobę przez CRON. Ważniejsze od częstotliwości jest to, żeby daty lastmod zmieniały się tylko wtedy, gdy produkt naprawdę się zmienił.
Czy po każdej zmianie muszę ponownie zgłaszać mapę w Search Console?
Nie. Mapę zgłaszasz raz, a Google wraca do niej sam. Ponowne przesłanie ma sens tylko przy zmianie adresu pliku, np. po zmianie modułu.
Dlaczego Google pokazuje mniej zaindeksowanych stron niż jest w mapie?
Mapa to tylko wskazówka. Google pomija strony zduplikowane, bardzo podobne lub o małej wartości, a także adresy z przekierowaniem lub noindex. Przyczyny dla konkretnych adresów znajdziesz w raporcie Indeksowanie stron z filtrem twojej mapy.
Masz sklep w kilku językach lub multistore? Napisz do nas, a doradzimy, jak ustawić mapy witryny.