Sprawdzono w czerwcu 2026, dotyczy PrestaShop 1.7, 8 oraz domyślnego motywu opartego na Hummingbird w wersji 9.x; wszystkie te wersje generują podstawowy blok hreflang, który należy zweryfikować, a nie zakładać, że działa poprawnie.

Najdroższą część masz już za sobą: Twój sklep mówi po niemiecku do niemieckich klientów, po francusku do francuskich, po polsku do polskich. Ta tańsza część. Czyli poinformowanie Google, która wersja jest przeznaczona dla kogo, to właśnie element, który wielu sprzedawców korzystających z PrestaShop robi źle, po cichu niwecząc pracę włożoną w tłumaczenia. Bez poprawnych sygnałów hreflang Google musi zgadywać, a zgaduje kiepsko: pokazuje stronę angielską użytkownikowi szukającemu po niemiecku albo uznaje pięć wersji językowych za pięć niemal identycznych stron walczących o to samo słowo kluczowe, po czym jedną pozycjonuje, a resztę spycha w dół. Hreflang to ten mały element instalacji technicznej, który zamienia „przetłumaczyliśmy sklep” w „właściwy klient trafia na właściwy język”. Ten poradnik pokazuje, jak zrobić to dobrze konkretnie w PrestaShop. Co platforma już generuje, gdzie ma braki i jak to sprawdzić, zamiast ufać, że „po prostu działa”.

To część większego cyklu poświęcona wyłącznie hreflang. Jeśli jesteś jeszcze na wcześniejszym etapie, wybierasz języki, planujesz strukturę adresów URL albo decydujesz, czy używać jednego sklepu czy kilku, zacznij od poradnika konfiguracji sklepu wielojęzycznego i wróć tutaj, gdy wersje językowe będą już istnieć.

Co hreflang naprawdę mówi Google (i czego nie mówi)

Globus ze znacznikami regionów połączonymi świecącymi liniami z osobnymi kartami stron internetowych, obrazujący, jak hreflang kieruje każdą wersję językową do właściwych odbiorców
Hreflang przypisuje każdemu regionowi i językowi właściwą wersję strony, dzięki czemu Google serwuje poprawną.

Adnotacja hreflang to pojedyncza linia w sekcji head strony:

<link rel="alternate" hreflang="de" href="https://yourstore.com/de/produkt">

Mówi jedną rzecz: „istnieje niemieckojęzyczny odpowiednik tej strony i znajduje się tutaj”. Powtórz to dla każdego języka, a dasz Google mapę adresów URL będących wzajemnymi tłumaczeniami. Google używa tej mapy do dwóch zadań. Po pierwsze, do dopasowania języka, użytkownik z francuskojęzycznej Kanady otrzymuje Twoją stronę fr, a nie en, nawet jeśli angielska wersja ma lepszą pozycję w ujęciu ogólnym. Po drugie, i to sprzedawcy często lekceważą, do kontroli kanibalizacji: hreflang mówi Google, że te strony są wariantami, a nie konkurentami, więc nie rozbijają między sobą sygnałów rankingowych. Właśnie dlatego problem SEO i problem tłumaczeń są w praktyce tym samym problemem.

Warto uczciwie postawić granicę, bo właśnie tam zaczynają się fałszywe oczekiwania. Hreflang jest wskazówką, a nie dyrektywą, Google wielokrotnie mówiło to wprost. Nie wymusza pozycji w wynikach, nie zastępuje dobrych tłumaczeń i nie uratuje stron, które Google uzna za niskiej jakości. Nie działa też bezpośrednio na klientów; nikt nie widzi tagu hreflang w przeglądarce. To wyłącznie sygnał dla robota indeksującego. Odpowiedź na pytanie „co mi to daje?” jest więc wąska, ale realna: poprawny hreflang chroni wypracowane już pozycje przed błędnym odczytaniem treści jako duplikatów i ogranicza wejścia w niewłaściwym języku, które przepalają zarówno budżet reklamowy, jak i ruch SEO.

Co PrestaShop robi już sam, i gdzie są luki

Oto rzecz, w której stara rada „PrestaShop nie ma hreflang, zainstaluj moduł” się myli: współczesny PrestaShop już generuje tagi hreflang. Domyślne motywy (classic w 1.7/8 oraz domyślny motyw oparty na Hummingbird w 9.x) zawierają blok hreflang w sekcji head strony, który przechodzi po aktywnych językach i wypisuje linię rel="alternate" dla każdego z nich, budowaną na podstawie Link::getLanguageLink(). Standardowa instalacja wielojęzyczna w pojedynczym sklepie zwykle ma więc działający hreflang od razu. Zanim cokolwiek kupisz, wyświetl źródło strony produktu i wyszukaj „hreflang”, być może już go masz.

Rdzeń nie radzi sobie jednak w pełni niezawodnie ze wszystkim, co dzieje się na obrzeżach, a to właśnie tam naprawdę żyją sklepy międzynarodowe:

  • Często brakuje x-default. Pętla rdzenia generuje po jednym tagu na język, ale często pomija wpis hreflang="x-default", który mówi Google, co pokazać, gdy żaden z Twoich języków nie pasuje do użytkownika szukającego w Google (na przykład klient z Holandii w sklepie EN/DE/FR). Bez tego Google wybiera za Ciebie.
  • Targetowanie wielu rynków w tym samym języku nie jest rozwiązane za Ciebie. Język w PrestaShop ma pola locale i kodu języka, więc wartość regionalna nie jest niemożliwa, ale rdzeń nie zbuduje automatycznie złożonych klastrów na poziomie rynków, których potrzebujesz, gdy sprzedajesz po niemiecku zarówno do Austrii, jak i do Niemiec albo po angielsku do Wielkiej Brytanii i USA. Rozróżnienie de-AT od de-DE w tych alternatywnych wersjach musisz skonfigurować i zweryfikować samodzielnie; standardowa pętla hreflang tego za Ciebie nie odgadnie. Sprawdzaj rzeczywiste wartości hreflang generowane z locale/kodu każdego języka, zamiast zakładać, że wskazują rynek, o który Ci chodziło.
  • Multistore rozdziela zestaw. Jeśli prowadzisz osobne sklepy dla poszczególnych krajów (zobacz PrestaShop Multistore), każdy sklep zna tylko własne języki. Doprowadzenie do tego, aby store-de.com i store-fr.com wzajemnie odwoływały się do siebie w jednym klastrze hreflang, to dokładnie przypadek, którego rdzeń za Ciebie nie składa.
  • Motywy niestandardowe i potomne potrafią go usunąć. Motywy, które nadpisują head.tpl albo usuwają hook, mogą po cichu wyciąć blok hreflang. Zaskakująco wiele przypadków „brakującego hreflang” to po prostu motyw, który przestał drukować właściwy fragment.

Prawdziwe pytanie w PrestaShop rzadko brzmi więc „czy mam hreflang?”. Brzmi raczej: „czy zestaw jest kompletny, wzajemny i wskazuje kanoniczne adresy URL?”, a to jest zadanie weryfikacyjne, nie zakupowe.

Najpierw uporządkuj strukturę adresów URL

Hreflang wskazuje na adresy URL, więc może być tylko tak czysty, jak leżąca pod nim wielojęzyczna struktura adresów. PrestaShop daje Ci wybór, który ustawiasz w Parametry sklepu → Ruch & SEO → SEO & URL (a dla opcji domeny per język również w ustawieniach Ustaw adres URL sklepu / adresów URL multistore). Trzy realistyczne warianty i ich znaczenie dla hreflang:

StrukturaPrzykładZnaczenie dla hreflangNajlepsze, gdy…
Podfolder (ISO w ścieżce)store.com/de/, store.com/fr/Najczystsze rozwiązanie. Jedna domena, jeden certyfikat SSL, linki językowe rdzenia rozwiązują się naturalnie.Większość sklepów. Rozsądny domyślny wybór dla jednego sklepu wielojęzycznego.
Subdomenade.store.com, fr.store.comDziała, ale każdy wariant alternatywny musi używać pełnego hosta subdomeny, łatwo o błąd konfiguracji.Potrzebujesz rozdzielenia infrastruktury, ale nie osobnych podmiotów prawnych.
Domena krajowa (ccTLD)store.de, store.frNajsilniejszy sygnał geograficzny, najtrudniejszy hreflang, warianty alternatywne wskazują różne domeny, zwykle przez multistore.Prowadzisz poważne działania per kraj, z lokalnym zaufaniem i potrzebami płatniczymi.

Jedna pułapka specyficzna dla PrestaShop znajduje się w konfiguracji języka (Międzynarodowy → Lokalizacja → Języki), gdzie liczą się dwa osobne pola. Prefiks ścieżki URL jest budowany z dwuliterowego kodu ISO, więc język dodany z niechlujnym kodem ISO daje niechlujną ścieżkę. Wartość hreflang pochodzi natomiast z locale / kodu języka, dlatego problem z niewłaściwym tagiem językowym i problem z niewłaściwym prefiksem adresu URL naprawia się w różnych miejscach. Sprawdź kod ISO, jeśli źle wyglądają ścieżki, i sprawdź locale/kod języka, jeśli źle wyglądają generowane wartości hreflang, napraw je w języku, a nie przez ręczną edycję tagu. Waluty, podatki i szersza konfiguracja sprzedaży w UE, która działa obok tego, są omówione w poradniku sprzedaży w Europie z PrestaShop; ten wpis trzyma się tematu hreflang.

Cztery błędy, które po cichu unieważniają hreflang

Hreflang psuje się bez hałasu. W sklepie nie pojawia się błąd, strona się nie wysypuje, Google po prostu ignoruje adnotację i wraca do zgadywania. Te cztery przypadki odpowiadają za niemal wszystkie realne awarie:

  • Brak tagów zwrotnych (zestawy niewzajemne). Jeśli Twoja strona EN wskazuje stronę DE jako niemiecki wariant alternatywny, strona DE musi wskazywać z powrotem stronę EN. Hreflang to uścisk dłoni; jednostronne machnięcie zostaje odrzucone. To najczęstsza awaria i szczególnie mocno uderza w konfiguracje multistore, gdzie każdy sklep naturalnie zna tylko połowę tego uścisku.
  • Błędne kody języków. Wartość musi być prawdziwym kodem języka ISO 639-1, opcjonalnie z krajem ISO 3166-1. en-GB jest poprawne; en-UK nie jest (krajem jest GB). cs oznacza czeski, nie cz. PrestaShop bez problemu pozwoli wpisać zły kod ISO w konfiguracji języka, a potem przeniesie go prosto do tagu.
  • Wskazywanie niekanonicznych adresów URL. Jeśli kanoniczny adres to https://store.com/de/, ale hreflang wskazuje http://store.com/de (bez SSL, z innym ukośnikiem końcowym albo z parametrem ?), Google widzi inny adres URL i odrzuca adnotację. W PrestaShop najczęściej wynika to z mieszanej konfiguracji http/https albo z tego, że kanoniczny adres przyjaznego URL nie zgadza się z tym, co buduje pętla hreflang.
  • Częściowe pokrycie. Hreflang na produktach, ale bez kategorii, stron CMS albo strony głównej, zostawia Google z niejasnym obrazem całych sekcji witryny. Musi obejmować każdy typ strony i każdy język, inaczej sama niespójność staje się sygnałem, że coś jest nie tak.

Gdy hreflang z rdzenia nie wystarcza: droga modułowa

Jeśli zweryfikowałeś konfigurację i znalazłeś realne luki, brak x-default, motyw niestandardowy, który usunął tagi, targetowanie na poziomie kraju, którego rdzeń nie umie wyrazić, albo klaster multistore wymagający wzajemnych odwołań między domenami, wtedy moduł SEO zaczyna mieć sens. Jego zadanie jest wąskie: wygenerować kompletny, wzajemny i kanoniczny zestaw hreflang na każdym typie strony, razem z x-default, bez ręcznego edytowania szablonów.

Nasz pakiet SEO Revolution suite obsługuje hreflang jako część warstwy SEO międzynarodowego: generuje zestaw wariantów alternatywnych dla produktów, kategorii, stron CMS i strony głównej na podstawie aktywnych języków PrestaShop, dodaje wpis x-default, który rdzeń często pomija, i kieruje każdy tag na kanoniczny adres URL, dzięki czemu powyższe rozjazdy http/https oraz parametrów nie wślizgują się do sklepu. Co konkretnie zyskujesz? Przestajesz ręcznie audytować tagi w head w sklepie, który stale dodaje nowe strony, a aktualizacja motywu nie może po cichu usunąć hreflang, bo tagi pochodzą z modułu, a nie z szablonu, który możesz nadpisać. Konfigurujesz to z back office, bez operacji na head.tpl, bez faktury od dewelopera za jednoliniowy tag, który musi być poprawny na tysiącach adresów URL. Tu też warto zachować uczciwą granicę: moduł generujący perfekcyjny hreflang nie wypozycjonuje sklepu sam z siebie; usuwa techniczny powód, dla którego Google mogłoby błędnie ocenić lub błędnie podać strony, które już przetłumaczyłeś.

Zweryfikuj, nie zakładaj

Hreflang jest wyjątkowo bezlitosny, bo implementacja w połowie błędna potrafi być gorsza niż jej brak: popsuty zestaw wzajemnych odwołań może sprawić, że Google przestanie ufać całemu klastrowi. Weryfikacja nie jest więc opcjonalnym dopieszczeniem, to właściwa praca. Trzy kontrole, w tej kolejności:

[SCREENSHOT: Widok źródła strony produktu w przeglądarce z liniami <link rel="alternate" hreflang="..."> wyróżnionymi w sekcji <head>, pokazujący po jednej na każdy język plus x-default]
  • Najpierw wyświetl źródło. Otwórz stronę produktu, wyszukaj w HTML „hreflang” i policz wyniki. Powinieneś zobaczyć po jednej linii rel="alternate" na każdy aktywny język oraz jedną x-default. Jeśli widzisz zero, motyw usunął blok. Jeśli widzisz języki, ale nie ma x-default, to Twoja pierwsza luka.
  • Sprawdź ręcznie wzajemność na jednym klastrze. Weź produkt, otwórz źródło każdej wersji językowej i potwierdź, że każda wersja zawiera ten sam pełny zestaw, także samą siebie. Jeśli strona DE nie wskazuje z powrotem EN, znalazłeś błąd tagu zwrotnego, zanim zrobi to Google.
  • Dopiero potem zaufaj temu, co widzi crawler. Google Search Console nie ma już starego raportu Kierowanie międzynarodowe, więc użyj crawlera audytującego hreflang (Screaming Frog, Sitebulb albo audyt witryny Ahrefs/Semrush), aby jednocześnie wykryć brakujące tagi zwrotne, nieprawidłowe kody i niekanoniczne cele w całej witrynie. Tylko tak praktycznie wyłapiesz problem częściowego pokrycia, bo jest rozproszony po tysiącach adresów URL.

Najczęściej zadawane pytania

Czy PrestaShop sam generuje hreflang, czy potrzebuję modułu?

Współczesny PrestaShop już go generuje. Domyślne motywy (classic w 1.7/8, domyślny motyw oparty na Hummingbird w 9.x) zawierają blok hreflang w sekcji head strony, który przechodzi po aktywnych językach i wypisuje linię rel="alternate" dla każdego z nich, budowaną na podstawie Link::getLanguageLink(). Standardowa wielojęzyczna instalacja pojedynczego sklepu zwykle ma więc działający hreflang od razu, zanim cokolwiek kupisz, wyświetl źródło i wyszukaj „hreflang”. Po moduł sięgasz wtedy, gdy znajdziesz realne luki: brak x-default, motyw niestandardowy, który usunął blok, targetowanie na poziomie kraju albo klaster multistore wymagający wzajemności między domenami.

Jak właściwie wygląda kompletny zestaw hreflang?

Każda wersja językowa strony powinna zawierać ten sam pełny zestaw, włącznie z samą sobą, oraz x-default. Dla produktu EN/DE/FR każda z tych trzech stron powinna mieć identyczny blok w swoim <head>:

<link rel="alternate" hreflang="en" href="https://store.com/en/product" />
<link rel="alternate" hreflang="de" href="https://store.com/de/produkt" />
<link rel="alternate" hreflang="fr" href="https://store.com/fr/produit" />
<link rel="alternate" hreflang="x-default" href="https://store.com/en/product" />

x-default mówi Google, co pokazać, gdy żaden z Twoich języków nie pasuje do użytkownika szukającego w Google (na przykład klient z Holandii w sklepie EN/DE/FR). Kieruj każdy tag na kanoniczny adres URL, ten sam protokół, ten sam ukośnik końcowy, bez przypadkowego parametru ?, inaczej Google odrzuci adnotację.

Jaki jest najczęstszy sposób, w jaki hreflang po cichu przestaje działać?

Brak tagów zwrotnych. Hreflang to uścisk dłoni: jeśli Twoja strona EN wskazuje stronę DE jako niemiecki wariant alternatywny, strona DE musi wskazywać z powrotem stronę EN. Jednostronne machnięcie zostaje odrzucone. To awaria, która najmocniej uderza w konfiguracje multistore, bo każdy sklep naturalnie zna tylko połowę tego uścisku, doprowadzenie do tego, aby store-de.com i store-fr.com wzajemnie się odwoływały, jest dokładnie przypadkiem, którego rdzeń za Ciebie nie składa.

Moje wartości hreflang są błędne, poprawiać tag czy język?

Język, nigdy ręcznie tag. Prefiks ścieżki URL pochodzi z dwuliterowego kodu ISO języka, a wartość hreflang z jego locale / kodu języka (International → Localization → Languages). Dlatego problem z błędną ścieżką i problem z błędnym tagiem naprawia się w różnych polach. Używaj prawdziwego kodu ISO 639-1, opcjonalnie z krajem ISO 3166-1: en-GB jest poprawne, en-UK nie jest; cs oznacza czeski, nie cz.

Jak zweryfikować hreflang na tysiącach adresów URL?

Najpierw wyświetl źródło jednej strony, aby potwierdzić, że tagi istnieją i zawierają x-default, a następnie ręcznie sprawdź wzajemność na jednym klastrze produktu. Potem zaufaj crawlerowi. Google Search Console nie ma już starego raportu Kierowanie międzynarodowe, więc użyj Screaming Frog, Sitebulb albo audytu witryny Ahrefs/Semrush, aby wykryć brakujące tagi zwrotne, nieprawidłowe kody i niekanoniczne cele w całej witrynie. To jedyny praktyczny sposób na wyłapanie częściowego pokrycia, ponieważ jest ono rozproszone po całym katalogu.

Powiązane materiały

Zasada pod spodem jest ta sama, która przewija się przez resztę tego cyklu: sklep sprzedający za granicę składa się z małych, precyzyjnych sygnałów, właściwej waluty, właściwej flagi językowej, właściwej linii podatku i właściwego hreflang. Z których każdy jest tani sam w sobie, ale każdy może tracić wartość, gdy jest choć trochę błędny. Dopilnuj UX języka i waluty, aby odwiedzający zostawali w sklepie (selektor waluty i flagi językowe), ustawiaj ceny i naliczenia poprawnie dla każdego rynku (wielowalutowość i sprzedaż międzynarodowa) i pozwól hreflang dopilnować, aby wyszukiwarka wysyłała każdego klienta do wersji przygotowanej właśnie dla niego. W PrestaShop oznacza to świadomość, że rdzeń wykonuje już większość pracy, a Twój wysiłek warto skierować na x-default, wzajemność i zgodność z kanonicznym adresem URL, które decydują, czy ta praca naprawdę się liczy.

Udostępnij ten wpis:
David Miller

David Miller

Założyciel, mypresta.rocks

David Miller to specjalista PrestaShop z ponad dekadą praktycznego doświadczenia i założyciel mypresta.rocks, studia programistycznego z Tychów. Tworzy i utrzymuje katalog 152 modułów PrestaShop, w tym 21 pakietów „Revolution" obejmujących SEO, checkout, bezpieczeństwo, wydajność, marketing, wyszukiwanie, wsparcie i operacje magazynowe, które każdego dnia usprawniają realne sklepy, testowanych na PrestaShop 1.7.8, 8.x i 9.x. Sprawuje również opiekę nad sklepami produkcyjnymi generującymi miliony rocznego obrotu, dlatego jego pracę ocenia się po realnej sprzedaży, a nie po wersjach demo. Jego doświadczenie obejmuje pełen zakres e-commerce, wydajność, bezpieczeństwo, SEO i marketing, oraz wykracza poza PrestaShop, sięgając WooCommerce, Shopify i systemów tworzonych na zamówienie. Na blogu pisze o technicznej stronie PrestaShop: co platforma naprawdę robi pod maską, co psuje się na produkcji i które rozwiązania faktycznie się sprawdzają.

Komentarze

Brak komentarzy. Bądź pierwszy!
Spodobał Ci się ten artykuł?

Otrzymuj nasze najnowsze porady, przewodniki i aktualizacje modułów prosto na swoją skrzynkę.

Możesz zrezygnować w każdej chwili. W tym celu należy odnaleźć szczegóły w naszej informacji prawnej.

Ładowanie...
Do góry