SEO PrestaShop

Jak działa SEO w PrestaShop — przyjazne adresy URL z obowiązkowymi identyfikatorami, konfigurowalne przekierowania kanoniczne, ograniczona natywna mapa witryny i generator robots.txt, brak natywnego hreflang oraz schematu, a także ekosystem modułów uzupełniających te braki.

Opublikowano po raz pierwszy: 26 cze 2026 · Ostatnia aktualizacja: 3 sie 2026 · Zaawansowane

PrestaShop to platforma e-commerce o otwartym kodzie źródłowym, oparta na PHP i MySQL, którą hostujesz samodzielnie. Zapewnia dużą kontrolę, ale wymaga więcej konfiguracji niż rozwiązania hostowane. Natywnie oferuje metatagi dla poszczególnych obiektów, przyjazne adresy URL wymagające mod_rewrite, konfigurowalne przekierowanie 301 do adresu kanonicznego, jeden nagłówek H1 na stronę, opcje przekierowania wyłączonych produktów i generator robots.txt. Problemem są ustawienia domyślne: numeryczne tokeny {id} są obowiązkowe w trasach URL i można je usunąć tylko modułem lub nadpisaniem tras; natywna mapa witryny nie odświeża się automatycznie i słabo obsługuje wersje językowe oraz obrazy, a natywnego hreflang ani pełnego schematu nie ma. PrestaShop nie kanonikalizuje automatycznie adresów filtrów, sortowania i nawigacji fasetowej. Większość luk uzupełniają moduły zewnętrzne, a wydajność cięższych domyślnych motywów wspiera wbudowana funkcja CCC — łączenie, kompresja i pamięć podręczna.

TL;DR — PrestaShop to samodzielnie hostowana platforma e-commerce o otwartym kodzie, dlatego dodatkowe obowiązki związane z hostingiem dają w zamian szeroką kontrolę. Jej natywne zalety to metadane poszczególnych obiektów, przyjazne adresy URL (wymagające mod_rewrite), konfigurowalne przekierowanie 301/302 do adresu kanonicznego, kanonikalizacja kombinacji produktów do adresu produktu nadrzędnego, jeden nagłówek H1 na stronę, konfigurowalne przekierowania wyłączonych produktów oraz generator robots.txt. Najbardziej kłopotliwe ustawienia domyślne są następujące: token {id} jest obowiązkowy w trasach URL (można go usunąć wyłącznie modułem lub nadpisaniem trasy), natywna mapa witryny nie odświeża się automatycznie i słabo radzi sobie z wielojęzycznością oraz obrazami z CDN, a działanie wielojęzyczności, danych strukturalnych i filtrowanych adresów URL trzeba zweryfikować dla zainstalowanej wersji, motywu i modułów. W cięższych motywach domyślnych wydajność poprawia wbudowane CCC (Concatenate, Compress, Cache — łączenie, kompresowanie i buforowanie).

Dowód potwierdzający to twierdzenie PrestaShop provides configurable friendly URLs, canonical redirects, and route patterns in its traffic and SEO settings. Zakres: PrestaShop 8 administration; modules and version differences can change behavior. Poziom ufności: wysoki · Zweryfikowano: PrestaShop 8: SEO and URLs Dowód potwierdzający to twierdzenie Google treats canonical declarations as signals and recommends consistent canonicalization for duplicate URLs. Zakres: Google canonicalization behavior applied to ecommerce URL variants. Poziom ufności: wysoki · Zweryfikowano: Google Search Central: Canonicalization

Punkt wyjścia: szeroka kontrola, więcej konfiguracji

Większość materiałów o SEO w PrestaShop jest albo ogólną listą kontrolną, albo reklamą płatnego modułu. Użyteczne ujęcie jest takie: PrestaShop daje większą bezpośrednią kontrolę niż dowolna hostowana platforma SaaS — otwarty kod, dostęp do serwera i edytowalne szablony tras — lecz mniej elementów dostarcza w gotowej postaci, dlatego luki są konkretne i przewidywalne. Podział wszystkiego na dwa zbiory sprawia, że platforma przestaje być zagadką.

Najpierw uwaga o wersjach: w połowie 2026 roku PrestaShop utrzymuje dwie aktywne główne gałęzie jednocześnie — 9.x (9.1.4 w czerwcu 2026 roku) oraz gałąź 8,2.x LTS, która nadal otrzymuje równoległe aktualizacje (8,2,7, także w czerwcu 2026 roku). Opisane poniżej ustawienia SEO są takie same w wersjach v8 i v9 — zostało to sprawdzone bezpośrednio w dokumentacji SEO i adresów URL PrestaShop v9 — ale moduł zbudowany i przetestowany dla jednej gałęzi nie musi działać w drugiej. Przed instalacją sprawdź deklarowaną zgodność modułu i najpierw potwierdź wersję rdzenia własnego sklepu, bo do tego numeru odnoszą się informacje dostawców o zgodności.

Działa poprawnie domyślnie: osobne meta tytuły i opisy dla obiektów, przyjazne adresy URL, znaczniki kanoniczne z konfigurowalnym przekierowaniem, kanonikalizacja kombinacji produktów do nadrzędnego adresu URL, jeden nagłówek H1 na stronę, okruszki, opcje przekierowań wyłączonych produktów, generator robots.txt i natywny moduł mapy witryny.

Do wykonania po Twojej stronie (głównie modułami): adresy URL bez identyfikatorów, hreflang dla wielu języków i wielu sklepów, kompletne schematy Product, Breadcrumb, Organization i FAQ, canonical/noindex dla nawigacji fasetowej, automatycznie odświeżana wielojęzyczna mapa obrazów oraz Core Web Vitals w motywie domyślnym.

Struktura adresów URL

Ustawienia adresów URL znajdują się w sekcji Parametry sklepu → Ruch → SEO i URL. Włączenie Przyjaznych adresów URL zmienia product.php?id_product=27 w opisowy slug, na przykład /2-music-players/27-ipod-nano-green. Funkcja wymaga Apache mod_rewrite (lub odpowiednika w Nginx), a opcjonalnie pozwala zachować znaki diakrytyczne w adresach URL.

Kluczowe jest zrozumienie domyślnego schematu tras. Trasa produktu w PrestaShop to {category:/}{id}{-:id_product_attribute}-{rewrite}{-:ean13}.html, a pozostałe typy korzystają z podobnego wzorca:

Typ stronyDomyślna trasa
Produkty{category:/}{id}{-:id_product_attribute}-{rewrite}{-:ean13}.html
Kategorie{id}-{rewrite}
Strony CMScontent/{id}-{rewrite}
Dostawcysupplier/{id}-{rewrite}
Markibrand/{id}-{rewrite}

Token {id} jest obowiązkowy. Występuje w każdej domyślnej trasie, ponieważ PrestaShop wyszukuje obiekt w bazie danych według tego identyfikatora — slug ({rewrite}) jest ozdobny. To najczęściej błędnie rozumiany aspekt adresów URL w PrestaShop: numeru nie można usunąć w ustawieniach. Poprawne usunięcie wymaga modułu zewnętrznego (FME Pretty URL, SunnyToo, MyPresta), który usuwa identyfikator i utrzymuje przekierowania 301, albo ostrożnego nadpisania szablonu trasy, które przy błędzie może zakłócić działanie rdzenia. Empirical Edge pisze, że PrestaShop “generates URLs that contain unwanted numbers and special characters” (tłumaczenie) „generuje adresy URL zawierające niepożądane liczby i znaki specjalne”. To trafna obserwacja, lecz identyfikatory pełnią rzeczywistą funkcję — są kluczem wyszukiwania, a nie błędem.

Warto znać jeszcze dwa szczegóły tras: token {category:/} domyślnie wstawia kategorię produktu do jego adresu URL (co może powodować duplikację, jeśli produkt należy do wielu kategorii), a {-:ean13} może dołączyć kod EAN do adresu. Od wersji v1.7.5.1 można też włączyć opcję „Wyświetl atrybuty w meta tytule produktu”, aby automatycznie budować tytuły takie jak „Nazwa produktu Kolor Rozmiar”.

Znaczniki kanoniczne

PrestaShop automatycznie generuje znaczniki kanoniczne i udostępnia w sekcji Ruch → SEO i URL ustawienie przekierowania do adresu kanonicznego z trzema opcjami: bez przekierowania, 301 (stałe) lub 302 (tymczasowe). W każdej stabilnej konfiguracji produkcyjnej używaj 301, aby scalić warianty zduplikowanych adresów URL, które PrestaShop często generuje.

Natywne działanie jest szczególnie dobre w jednym miejscu: kombinacjach produktów. Dla adresów wariantów (kolor, rozmiar — część trasy {-:id_product_attribute}) canonical wskazuje nadrzędny adres URL produktu, a nieprawidłowy identyfikator atrybutu w adresie wywołuje przekierowanie do tego nadrzędnego adresu kanonicznego. Dzięki temu permutacje rozmiarów i kolorów nie tworzą domyślnie setek indeksowalnych duplikatów.

Natywny canonical nie obejmuje natomiast parametrów filtrów, parametrów sortowania ani paginowanych stron kategorii. PrestaShop nie skieruje automatycznie ?order=price_asc ani fasetowego adresu ?color=red&size=M do czystego adresu kategorii. Jak ujmuje to PrestaHero, “implementing canonical tags is one of the most important practices… as these HTML tags inform search engines of the ‘master’ version of a page when duplicate or similar content exists” (tłumaczenie) „wdrożenie znaczników kanonicznych jest jedną z najważniejszych praktyk, ponieważ informują wyszukiwarki o głównej wersji strony, gdy istnieją treści zduplikowane lub podobne”. Na stronach filtrowanych musisz wdrożyć je samodzielnie — modułem canonical albo zmianami motywu lub kodu.

Zduplikowana treść — właściwa praca

Źródła duplikacji w PrestaShop są przewidywalne. FME Modules podsumowuje stawkę: “duplicate URL issues confuse search engine crawlers, waste crawl budget, and split link equity, which collectively damage SEO performance” (tłumaczenie) „problemy ze zduplikowanymi adresami URL dezorientują roboty wyszukiwarek, marnują budżet indeksowania i dzielą moc linków, co łącznie szkodzi wynikom SEO”. Najczęstsi winowajcy to:

  • Nawigacja fasetowa — adresy filtrów w rodzaju ?color=red&size=M, z treścią identyczną lub niemal identyczną i bez natywnego canonical.
  • Sortowanie — ?order=price_asc dołączane do adresów kategorii.
  • Paginacja — /page-2, /page-3 w kategoriach i wyszukiwaniu.
  • Adresy tylko z ID i adresy ze slugiem — oba mogą działać bez wymuszonego przekierowania.
  • www i bez www / HTTP i HTTPS — wymagają prawidłowej konfiguracji przekierowań.
  • Wersje do druku oraz (w starszych wersjach) adresy z identyfikatorem sesji.

Naprawa jest wielowarstwowa, a nie oparta na jednym przełączniku:

  1. Ustaw przekierowanie canonical na 301 w sekcji Ruch → SEO i URL.
  2. Dostosuj robots.txt, aby zablokować parametry filtrów i sortowania (szczegóły poniżej).
  3. Dla nawigacji fasetowej dodaj moduł canonical — mechanizm natywny obsługuje produkty i kombinacje, ale nie strony filtrowane.
  4. Traktuj paginację świadomie. PrestaShop pomija już blok tytułu kategorii na stronach dalszych niż pierwsza, aby ograniczyć duplikację. Google porzucił obsługę rel=next/prev w 2019 roku, więc współczesne podejście polega na pozostawieniu każdej strony paginacji z własnym kanonicznym adresem i możliwością indeksowania — nie na kierowaniu stron 2+ do strony 1, chyba że treść naprawdę jest identyczna. Nie ustawiaj odruchowo noindex dla paginacji; służy ono wariantom filtrów i sortowania.

Uwaga dla audytorów H1: błąd tworzący podwójne nagłówki H1 na stronach kategorii naprawiono w wersji v1.7.5. W starszych instalacjach należy go sprawdzić.

Mapa witryny

PrestaShop oferuje natywny moduł Google Sitemap (z katalogu modułów), który obejmuje produkty, kategorie, producentów, strony CMS i strony tworzone przez moduły. Po wygenerowaniu mapy dodaj jej adres do robots.txt i prześlij go w Google Search Console.

Ograniczenia modułu natywnego są dobrze udokumentowane i mają znaczenie w dużej skali: nie odświeża się automatycznie po dodaniu produktów (mapę trzeba wygenerować ręcznie lub zadaniem cron), słabo obsługuje wiele języków (mapy dla poszczególnych języków wymagają modułu zewnętrznego), a indeksowanie obrazów hostowanych w CDN jest niespójne. FME Modules opisuje to wprost: “may not auto-refresh when adding products, multilingual support is weak, and CDN-hosted image indexing is inconsistent” (tłumaczenie) „może nie odświeżać się automatycznie po dodaniu produktów, obsługa wielu języków jest słaba, a indeksowanie obrazów hostowanych w CDN — niespójne”. W sklepie wielojęzycznym lub z dużym, szybko zmieniającym się katalogiem moduł zewnętrzny (FME, Sweet Sitemap) zapewni automatyczne odświeżanie, osobne mapy językowe, mapy obrazów oraz kontrolę priorytetów i częstotliwości.

Robots.txt

Wygeneruj plik w sekcji Parametry sklepu → Ruch → SEO i URL → „Wygeneruj plik robots.txt”. PrestaShop zapisuje wersję bazową podczas instalacji, ale trzeba ją dostosować. Zalecane blokady obejmują:

  • /cart, /checkout, /search
  • parametry filtrów i sortowania: ?order=, ?sort=, ?q= oraz parametry własnych faset
  • ścieżki administracyjne i narzędziowe modułów (np. /module/)

Pozostaw /img/ dostępne dla robotów, aby obrazy produktów mogły być indeksowane, i dodaj odwołanie do mapy (Sitemap: https://example.com/sitemap.xml).

Jedno ostrzeżenie jest ważniejsze od wszystkich pozostałych: błędny robots.txt może usunąć cały sklep z wyników. PrestaHero ujmuje to dosadnie: “a misconfigured robots.txt can destroy SEO, as you don’t want to accidentally block /category or /product pages, which could remove your whole store from Google’s index” (tłumaczenie) „źle skonfigurowany robots.txt może zniszczyć SEO; nie chcesz przypadkiem zablokować stron /category lub /product, bo mogłoby to usunąć cały sklep z indeksu Google”. Zablokowanie niewłaściwej ścieżki oznacza deindeksację na własne życzenie.

Schema i dane strukturalne

To rzeczywista luka. PrestaShop zawiera domyślnie tylko minimalne dane strukturalne; kompletne schema są zadaniem dla modułu. Zwykle potrzebujesz pełnego Product (nazwa, obraz, cena, dostępność, recenzje, dostawa i zwroty), BreadcrumbList, Organization, WebSite i FAQPage, które zapewnia moduł rich snippets. Przykładowo Schema Pro od PrestaPremium deklaruje, że “automatically generates 9 Schema.org types across your entire store: Product, ProductGroup (variants with size, color, material), Organization, WebSite, BreadcrumbList, FAQPage, CollectionPage, shipping details and return policy” (tłumaczenie) „automatycznie generuje dziewięć typów Schema.org w całym sklepie: Product, ProductGroup (warianty rozmiaru, koloru i materiału), Organization, WebSite, BreadcrumbList, FAQPage, CollectionPage, dane dostawy i zasady zwrotów”. Dane strukturalne produktu Google obsługują właśnie te pola, więc warto dodać znaczniki — nie należy jednak oczekiwać ich od rdzenia.

Wydajność i Core Web Vitals

Domyślne motywy PrestaShop — szczególnie starszy Classic — często mają trudności z Core Web Vitals: CSS i JavaScript blokują renderowanie, obrazy nie są zoptymalizowane (w starszych wersjach domyślnie brak WebP), starsze motywy nie mają leniwego ładowania, a ciężki JavaScript modułów ładuje się synchronicznie. Obowiązują standardowe cele: LCP < 2,5 s, INP < 200ms (INP zastąpił FID w marcu 2024 roku), CLS < 0,1.

Wbudowanym mechanizmem PrestaShop jest CCC (Concatenate, Compress, Cache) w sekcji Parametry zaawansowane → Wydajność — łączy i kompresuje CSS oraz JavaScript, aby ograniczyć liczbę żądań i rozmiar zasobów. Przetestuj go przed włączeniem na produkcji, bo może zakłócić działanie niektórych modułów. Ponadto konwertuj obrazy do WebP, włącz leniwe ładowanie, użyj CDN, wybierz motyw nastawiony na wydajność (Hummingbird), odraczaj niekrytyczny JavaScript i dodaj buforowanie na serwerze (Redis/Memcached). Trafne jest ujęcie Knowband, że Core Web Vitals “affects crawl efficiency, paid traffic quality, mobile conversion, checkout trust, and the first impression of every product page” (tłumaczenie) „wpływa na sprawność indeksowania, jakość płatnego ruchu, konwersję mobilną, zaufanie do procesu zakupu i pierwsze wrażenie na każdej stronie produktu”. Mierz wyniki w PageSpeed Insights i danych CrUX w Search Console.

Hreflang dla sklepów wielojęzycznych

PrestaShop obsługuje wiele języków (na tej samej domenie z prefiksem /fr/ lub /en/, albo na oddzielnych domenach) oraz wiele sklepów współdzielących katalog — ale nie generuje natywnie znaczników hreflang. Wymaga to modułu: SunnyToo, DataFireFly, MyPresta albo Canonical & Hreflang od FME. MyPresta jasno opisuje skutek: “without hreflang tags, Google does not know…” (tłumaczenie) „bez tych znaczników Google nie potrafi dobrać właściwego wariantu strony do języka lub regionu użytkownika; może więc zaindeksować błędną wersję, powielić treść między sklepami językowymi albo wyświetlić odbiorcy stronę w obcym języku”.

Przy wdrożeniu obejmij wszystkie typy stron (produkt, kategoria, CMS, producent, dostawca), zawsze dodawaj x-default, obsłuż parowanie między domenami w wielu sklepach i zachowaj spójną kanonikalizację. Pamiętaj też o ogólnej zasadzie hreflang: częściowe, niesparowane wdrożenie nic nie daje — Google potrzebuje znaczników zwrotnych, aby rozpoznać zestaw.

Porównanie platform

PrestaShop zajmuje miejsce między hostowanymi platformami SaaS a zapewniającym pełną kontrolę Magento. Tak poszczególne platformy wypadają pod względem mechanizmów SEO:

FunkcjaPrestaShopShopifyWooCommerceMagentoBigCommerce
Przyjazne adresy URLTak (przełącznik)Tak (wymuszony prefiks)Przez wtyczkęTakTak
ID w adresach URLTak, domyślnieNiePrzez YoastKonfigurowalneNie
Znaczniki canonicalTak (częściowo)TakPrzez YoastTakTak
Natywne schemaWymagany modułCzęściowoPrzez Yoast/RankMathCzęściowoCzęściowo
HreflangWymagany modułWymagana aplikacjaPrzez WPML/YoastTakOgraniczony
Natywna mapa witrynyModuł (ograniczony)AutomatycznaPrzez YoastTakAutomatyczna
Edytor robots.txtPanel administracyjny (generowanie)Brak natywnegoPrzez wtyczkęEdytowalnyEdytowalny
Obsługa nawigacji fasetowejWymagany modułOgraniczonaPrzez wtyczkęOpcja konfiguracjiOpcja konfiguracji
Otwarty kod / dostęp do serweraTakNieTakTakNie

Uczciwe podsumowanie, w dużej części oparte na porównaniu Kinsta: względem Shopify PrestaShop daje większą bezpośrednią kontrolę (otwarty kod, dostęp do serwera, konfigurowalne trasy), podczas gdy Shopify zajmuje się wydajnością i bezpieczeństwem, ale wymusza nieusuwalny prefiks w rodzaju /products/. W porównaniu z WooCommerce Kinsta ocenia, że “WooCommerce would beat PrestaShop, as it inherits all of WordPress’s SEO capabilities, especially when it comes to blogging” (tłumaczenie) „WooCommerce pokonałby PrestaShop, ponieważ dziedziczy wszystkie możliwości SEO WordPressa, szczególnie w blogowaniu”. Jednocześnie zauważa, że “out of the box, PrestaShop offers more options than WooCommerce for ecommerce SEO, with the product editor enabling you to add custom meta titles and descriptions for each product” (tłumaczenie) „bez dodatków PrestaShop oferuje więcej opcji SEO e-commerce niż WooCommerce, a edytor produktów pozwala dodać własne meta tytuły i opisy każdego produktu”. W porównaniu z Magento platforma ta “offers the most control for complex stores with full URL customization, native structured data, advanced sitemap configuration, and deep meta tag management” (tłumaczenie) „zapewnia największą kontrolę złożonym sklepom dzięki pełnej personalizacji URL, natywnym danym strukturalnym, zaawansowanej konfiguracji map witryny i rozbudowanemu zarządzaniu metadanymi” (LueurExterne) — kosztem znacznie większej złożoności i wydatków. Wobec BigCommerce PrestaShop ma słabsze ustawienia domyślne (BigCommerce oferuje automatyczną mapę, wbudowane schema i adresy bez ID), ale znacznie większe możliwości otwartej modyfikacji. Każda z tych platform może osiągać dobre pozycje; ceną kontroli w PrestaShop jest praca konfiguracyjna.

Dodaj notatkę eksperta

Przypnij cytat eksperta

Nowa osoba? Najpierw utwórz jej nieprzejęty profil na /admin/experts/ → Przypnij cytat eksperta .