Shoper: dlaczego /sitemap.xml zwraca 404 i gdzie naprawdę jest Twoja mapa strony

Wpisujesz adres swojego sklepu z końcówką /sitemap.xml, spodziewasz się listy adresów, a dostajesz stronę „404 — nie znaleziono". Pierwsza myśl: coś się zepsuło albo sklep nie ma mapy. Otóż ma. Shoper po prostu trzyma ją pod adresem, którego nikt nie zgaduje — i dopóki nie wskażesz go wyszukiwarkom jawnie, Twój sklep pracuje bez mapy strony.

Objaw: 404 tam, gdzie każdy się mapy spodziewa

Konwencja /sitemap.xml jest na tyle powszechna, że traktuje się ją jak standard. WooCommerce ją ma, PrestaShop ma, IdoSell serwuje /sitemap.xml.gz. Na Shoperze pod tym adresem nie ma nic — serwer zwraca kod 404 i pełną stronę błędu sklepu.

Sprawdziłem to na dwóch niezależnych sklepach na tej platformie, prowadzonych przez różne firmy i skonfigurowanych niezależnie od siebie. Oba zwracają pod /sitemap.xml to samo:

GET /sitemap.xmlHTTP 404, Content-Type: text/html, ~150 kB strony błędu.

To nie jest awaria konkretnego sklepu ani skutek czyjejś złej konfiguracji. Tak działa platforma. Problem w tym, że nic o tym nie informuje — panel nie pokazuje ostrzeżenia, a osoba przejmująca sklep po kimś innym sprawdza adres, widzi 404 i wyciąga wniosek, że sitemapy nie ma wcale.

Gdzie Shoper naprawdę trzyma sitemapę

Mapa jest generowana przez moduł integracji i leży pod ścieżką konsoli:

https://twojsklep.pl/console/integration/execute/name/GoogleSitemap

Pod tym adresem dostajesz poprawny <sitemapindex> z odnośnikami do map składowych (produkty, kategorie, aktualności). Zgodnie z protokołem sitemap.org, z prawidłową deklaracją przestrzeni nazw. Wszystko jest w porządku — tylko adres jest inny, niż wszyscy zakładają.

Ta sama ścieżka obsługuje też inne integracje. Feed do Google Merchant Center siedzi analogicznie pod /console/integration/execute/name/GoogleProductSearch. Warto o tym wiedzieć, bo jeśli szukasz w sklepie „gdzie jest feed", odpowiedź jest w tym samym miejscu co mapa.

Pułapka drugiego stopnia: nagłówek pliku

Kiedy już znajdziesz właściwy adres, czeka drobiazg, który potrafi zmylić narzędzia. Shoper serwuje sitemapę z nagłówkiem:

Content-Type: application/force-download

Nie application/xml, nie text/xml — tylko typ, który mówi przeglądarce „pobierz to jako plik". W praktyce oznacza to, że po wejściu na ten adres przeglądarka zaproponuje zapisanie pliku zamiast go wyświetlić. Łatwo wtedy uznać, że coś jest nie tak.

Google radzi sobie z tym bez problemu — czyta zawartość, nie nagłówek. Ale część zewnętrznych walidatorów i crawlerów SEO potrafi taką mapę zignorować albo zgłosić jako błąd. Jeśli Twoje narzędzie audytowe twierdzi, że sklep nie ma sitemapy, a Search Console pokazuje ją poprawnie — to zwykle właśnie ten przypadek, a nie realny problem.

Co wpisać w robots.txt

Najważniejsza konsekwencja jest taka: skoro adres jest niestandardowy, wyszukiwarka nie odkryje mapy sama. Trzeba jej ten adres podać. Miejsce numer jeden to robots.txt:

Sitemap: https://twojsklep.pl/console/integration/execute/name/GoogleSitemap

Pełny adres bezwzględny, z protokołem i domeną — dyrektywa Sitemap nie akceptuje ścieżek względnych. Jeśli w Twoim robots.txt stoi dziś Sitemap: /sitemap.xml albo https://twojsklep.pl/sitemap.xml, to wskazujesz robotom adres zwracający 404.

Warto to sprawdzić nawet w sklepie, który działa od lat. Wpis w robots.txt bywa przepisywany z szablonu innej platformy albo zostaje po migracji i nikt do niego nie wraca.

Co zgłosić w Search Console

W Search Console, w sekcji Mapy witryny, wklej ten sam adres konsoli. Nie /sitemap.xml — ten zostanie odrzucony, bo zwraca 404.

Po zgłoszeniu sprawdź w raporcie, ile adresów Google odczytał z mapy i porównaj to z liczbą produktów w sklepie. Rozjazd między tymi liczbami jest jednym z najszybszych sygnałów, że coś jest nie tak z indeksacją — i dużo konkretniejszym niż ogólne „sklep słabo się pozycjonuje".

To samo zrób w Bing Webmaster Tools. Bing bywa lekceważony, ale to on zasila odpowiedzi Copilota, a od 2024 roku ruch z asystentów AI przestał być marginesem.

Konsekwencja uboczna: IndexNow na Shoperze

Jest jeszcze jeden skutek tego, jak Shoper obsługuje pliki w katalogu głównym. IndexNow — darmowy protokół natychmiastowego zgłaszania zmian, obsługiwany przez Bing, Yandex i Seznam — wymaga umieszczenia pliku z kluczem w rootcie domeny, pod adresem twojsklep.pl/{klucz}.txt.

Na hostingu, gdzie masz FTP, to kwestia jednego wgrania pliku. Na Shoperze, w planach, na których pracowałem, nie znalazłem sposobu, żeby położyć własny plik w katalogu głównym — a bez niego weryfikacja klucza nie przejdzie. Jeśli Twój plan daje taką możliwość, sprawdź to u siebie; jeśli nie, zostaje obejście.

Obejściem jest Bing Webmaster Tools i funkcja przesyłania adresów URL — limit rzędu 100 adresów dziennie na domenę, bez żadnego pliku w rootcie. Dla sklepu, który aktualizuje opisy partiami, to w zupełności wystarcza, żeby nie czekać na naturalny crawl.

Checklista — pięć minut na sprawdzenie

  1. Wejdź na twojsklep.pl/sitemap.xml. Jeśli widzisz 404 — to normalne, nie panikuj.
  2. Wejdź na twojsklep.pl/console/integration/execute/name/GoogleSitemap. Powinien pobrać się plik XML. Otwórz go w edytorze i sprawdź, czy zawiera <sitemapindex>.
  3. Otwórz twojsklep.pl/robots.txt i sprawdź, na jaki adres wskazuje dyrektywa Sitemap:. Jeśli na /sitemap.xml — popraw na adres konsoli.
  4. W Search Console porównaj liczbę adresów odczytanych z mapy z liczbą aktywnych produktów.
  5. Zgłoś tę samą mapę w Bing Webmaster Tools.

To najtańsza możliwa poprawka SEO w sklepie na Shoperze: nie wymaga programisty, nie rusza szablonu i nie zmienia ani jednej treści. A bez niej wyszukiwarki odkrywają nowe produkty wyłącznie przez linkowanie wewnętrzne — czyli wolniej i mniej kompletnie.

Najczęstsze pytania

Czy 404 pod /sitemap.xml szkodzi pozycjonowaniu?

Sam w sobie nie. Adres, którego nigdy nie było, nie ma czego stracić — to nie jest zerwany link ani usunięta strona. Szkodzi co innego: jeśli w robots.txt albo w Search Console wskazujesz właśnie ten adres, wyszukiwarka nie dostaje mapy w ogóle i musi odkrywać sklep wyłącznie przez linki wewnętrzne.

Czy mogę zrobić przekierowanie z /sitemap.xml na adres konsoli?

W panelu Shopera jest moduł przekierowań, więc technicznie da się to ustawić. Nie jest to jednak konieczne — dyrektywa Sitemap w robots.txt i zgłoszenie w Search Console załatwiają sprawę w całości. Przekierowanie ma sens głównie wtedy, gdy zewnętrzne narzędzia audytowe uparcie pytają o standardowy adres.

Sitemapa pobiera się jako plik zamiast otwierać w przeglądarce — czy to błąd?

Nie. To skutek nagłówka Content-Type: application/force-download, którym Shoper serwuje ten zasób. Zawartość jest poprawnym XML-em i Google czyta ją bez problemu. Żeby zajrzeć do środka, zapisz plik i otwórz w edytorze tekstu albo pobierz go poleceniem curl.

Jak często Shoper odświeża mapę?

Mapa generowana jest dynamicznie w momencie żądania, więc odzwierciedla aktualny stan katalogu. Nie ma pliku, który mógłby się „zestarzeć”. Co innego tempo, w jakim wyszukiwarka po tę mapę wraca — na to wpływa ogólna częstotliwość crawlowania domeny, a nie ustawienia sklepu.

Czy da się dodać do sitemapy własne adresy, na przykład landing page?

Moduł generuje mapę z zasobów sklepu: produktów, kategorii i aktualności. Stron spoza tej struktury tam nie umieścisz. Jeśli masz landing pod tą samą domeną, ale poza sklepem, zgłoś go osobno — w Search Console przez „Sprawdzenie adresu URL” albo drugą, ręcznie utrzymywaną mapą.

Sprawdzę, czy Twój sklep na Shoperze w ogóle ma zgłoszoną mapę

W bezpłatnym audycie pokażę, ile adresów Google faktycznie widzi w Twoim sklepie i gdzie się gubi.

Zamów bezpłatny audyt SEO sklepu Shoper →