Hreflang - jak wskazać Google wersje językowe strony?

Jarosław Bazylewicz
10 min czytania

Czym jest hreflang i kiedy go potrzebujesz?

hreflang informuje Google, że kilka adresów URL to językowe lub regionalne wersje tej samej strony. Pomaga wyszukiwarce wybrać właściwy adres dla użytkownika, ale nie tłumaczy treści, nie przekierowuje odbiorcy i nie naprawia źle zaprojektowanej architektury rynków.

To wskazówka, a nie polecenie gwarantujące wyświetlenie konkretnego URL-a.

Jeśli prowadzisz sklep w kilku językach albo kierujesz tę samą ofertę do klientów w różnych krajach, hreflang jest jednym z podstawowych elementów technicznego SEO. Jego najważniejszym zadaniem jest ograniczenie sytuacji, w których użytkownik z Niemiec trafia z Google na polską kartę produktu albo klient z Wielkiej Brytanii widzi wersję przygotowaną dla Stanów Zjednoczonych.

Ważne: poprawnie przetłumaczone wersje nie stają się duplikatami tylko dlatego, że opisują ten sam produkt. Google traktuje zlokalizowane strony jako duplikaty dopiero wtedy, gdy ich główna treść pozostaje nieprzetłumaczona. hreflang służy przede wszystkim dopasowaniu wersji, a nie ratowaniu pełnych tłumaczeń przed karą za duplikację.

Kiedy wdrożenie ma sens?

Sytuacja Czy użyć hreflang? Przykład
ten sam produkt ma pełne wersje w różnych językachtakpl, de, en
strony są w tym samym języku, ale różnią się ofertą regionalnątaken-US, en-GB
rynki działają na osobnych domenach lub subdomenachtak, URL-e nie muszą należeć do jednej domenyexample.pl, example.de
jedyną zmianą jest waluta wyświetlana dynamicznie pod tym samym URL-emzwykle niejeden adres, ceny zależne od ustawienia użytkownika
serwis ma tylko jedną wersję językową i regionalnąniewyłącznie wersja polska

Google nie używa hreflang ani atrybutu HTML lang do rozpoznawania języka strony — określa go własnymi algorytmami na podstawie widocznej treści. Dlatego sam kod nie zastąpi kompletnego tłumaczenia i lokalizacji oferty.

Co musi działać przed dodaniem hreflang?

Każda wersja powinna mieć własny, stabilny URL, który Google może pobrać i zaindeksować. Użytkownik powinien też móc przełączać język lub kraj zwykłym linkiem. Nie opieraj całej architektury na automatycznym przekierowaniu według IP lub języka przeglądarki — robot może wtedy nie zobaczyć wszystkich wariantów, a użytkownikowi trudniej będzie świadomie zmienić rynek.

Przed generowaniem adnotacji sprawdź:

  • czy odpowiadające sobie strony naprawdę realizują ten sam cel, na przykład karta tego samego produktu wskazuje kartę tego produktu, a nie stronę główną;
  • czy wszystkie wersje są dostępne pod pełnymi adresami HTTPS;
  • czy nie zwracają 404, nie prowadzą przez zbędne przekierowania i nie są blokowane przez robots.txt lub noindex;
  • czy każda wersja ma właściwy canonical;
  • czy język głównej treści zgadza się z deklarowanym kodem.

W naszym podejściu mapa odpowiedników jest ważniejsza niż sam sposób wygenerowania tagów. Jeśli CMS nie potrafi wiarygodnie ustalić, że polski produkt odpowiada dokładnie niemieckiemu produktowi, automatyzacja szybko stworzy poprawny składniowo, ale biznesowo błędny klaster.

Trzy sposoby wdrożenia hreflang

Google obsługuje trzy równoważne metody: tagi HTML, nagłówek odpowiedzi HTTP oraz sitemapę XML. Można używać ich równolegle, ale nie daje to dodatkowej korzyści w wynikach wyszukiwania i zwiększa ryzyko, że implementacje zaczną sobie przeczyć. Wybierz jedno źródło prawdy, które zespół potrafi utrzymać.

1. Znaczniki HTML w sekcji head

To najczęstsza metoda dla stron HTML. Identyczny zestaw linków umieszczasz w prawidłowej sekcji <head> każdej wersji — także na stronie polskiej, niemieckiej i angielskiej.

head-hreflang.html
1
2
3
4
5

<link rel="alternate" hreflang="pl" href="https://example.com/produkt/" />
<link rel="alternate" hreflang="de" href="https://example.com/de/produkt/" />
<link rel="alternate" hreflang="en" href="https://example.com/en/product/" />
<link rel="alternate" hreflang="x-default" href="https://example.com/wybierz-kraj/" />

Ta metoda jest czytelna i łatwa do sprawdzenia w źródle strony. Przy dużym katalogu trzeba jednak pilnować, aby CMS generował ten sam aktualny zestaw na każdym URL-u klastra.

2. Nagłówek HTTP

Nagłówek Link jest szczególnie przydatny dla plików innych niż HTML, na przykład dokumentów PDF. Każda wersja zasobu powinna zwracać ten sam zestaw obejmujący również ją samą.

http-header.txt
1
2
3

Link: <https://example.com/plik.pdf>; rel="alternate"; hreflang="pl",
      <https://example.com/de/datei.pdf>; rel="alternate"; hreflang="de"

3. Mapa witryny XML (sitemap)

Sitemap bywa najwygodniejsza przy setkach lub tysiącach stron w wielu wariantach. Każdy URL otrzymuje osobny element <url>, a wewnątrz niego trzeba powtórzyć pełny zestaw alternatyw wraz z self-reference. Pamiętaj także o przestrzeni nazw xmlns:xhtml.

sitemap-hreflang.xml
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22

<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
        xmlns:xhtml="http://www.w3.org/1999/xhtml">
  <url>
    <loc>https://example.com/produkt/</loc>
    <xhtml:link rel="alternate" hreflang="pl" href="https://example.com/produkt/" />
    <xhtml:link rel="alternate" hreflang="de" href="https://example.com/de/produkt/" />
    <xhtml:link rel="alternate" hreflang="x-default" href="https://example.com/wybierz-kraj/" />
  </url>
  <url>
    <loc>https://example.com/de/produkt/</loc>
    <xhtml:link rel="alternate" hreflang="pl" href="https://example.com/produkt/" />
    <xhtml:link rel="alternate" hreflang="de" href="https://example.com/de/produkt/" />
    <xhtml:link rel="alternate" hreflang="x-default" href="https://example.com/wybierz-kraj/" />
  </url>
  <url>
    <loc>https://example.com/wybierz-kraj/</loc>
    <xhtml:link rel="alternate" hreflang="pl" href="https://example.com/produkt/" />
    <xhtml:link rel="alternate" hreflang="de" href="https://example.com/de/produkt/" />
    <xhtml:link rel="alternate" hreflang="x-default" href="https://example.com/wybierz-kraj/" />
  </url>
</urlset>

Więcej o strukturze i diagnostyce map piszemy w przewodniku po sitemap XML.

Self-reference, reciprocity i x-default

Poprawny klaster to nie lista luźnych tagów, ale spójna relacja między stronami.

Warunek Jak powinien działać? Typowy błąd
self-referencekażda strona wymienia także własny URL i kodpolska strona wskazuje tylko de i en
reciprocityjeśli strona A wskazuje B, strona B wskazuje Anowy rynek dodano tylko w jednym szablonie
kompletnośćkażda wersja zawiera ten sam zestaw obsługiwanych odpowiednikówjedna wersja nadal pokazuje nieaktualny klaster
pełny URLhref zawiera protokół i hostużyto /de/produkt/ zamiast pełnego adresu
canonicalhreflang prowadzi do właściwych kanonicznych wersjiwszystkie języki mają canonical do wersji polskiej
dostępnośćURL jest bezpośrednio dostępny i indeksowalnytag prowadzi do 404, przekierowania lub strony z noindex

Jeśli polska strona wskazuje wersję niemiecką, niemiecka powinna wskazywać z powrotem polską. Brak wzajemności nie musi unieważnić wszystkich pozostałych relacji w rozbudowanym klastrze, ale Google może zignorować niepotwierdzoną parę. Właśnie dlatego przy kilkunastu rynkach nie warto ręcznie składać tagów w każdym szablonie.

Jak zapisać kod języka i regionu?

Język zapisujesz zgodnie z ISO 639-1, a opcjonalny region zgodnie z ISO 3166-1 Alpha-2:

  • pl — język polski niezależnie od kraju,
  • de — język niemiecki niezależnie od kraju,
  • en-GB — angielski dla Wielkiej Brytanii,
  • pt-BR — portugalski dla Brazylii.

Nie używaj pol, deutsch, en_US ani samego kodu regionu. Jeżeli masz en-US i en-GB, warto rozważyć również ogólną wersję en dla pozostałych użytkowników anglojęzycznych.

Do czego służy x-default?

x-default wskazuje stronę dla użytkowników, do których nie pasuje żadna z określonych wersji. Najczęściej jest to selektor kraju lub języka, ewentualnie rozsądna wersja domyślna. Nie jest obowiązkowy, ale przy wielu rynkach porządkuje zachowanie domyślne i usuwa konieczność zgadywania, który wariant ma pełnić tę rolę.

Hreflang i canonical rozwiązują inne problemy

hreflang łączy wersje przeznaczone dla różnych odbiorców. Canonical wskazuje preferowany URL w grupie stron duplikujących lub bardzo podobnie realizujących ten sam cel. Nie należy więc ustawiać na wszystkich tłumaczeniach canonicala do wersji polskiej, a później próbować „odwrócić” tego tagami hreflang.

Dla pełnych tłumaczeń standardem jest self-canonical na każdej wersji oraz spójny klaster hreflang. Jeśli kilka regionalnych URL-i ma główną treść w tym samym języku i jest ona praktycznie identyczna, decyzję o canonicalizacji trzeba podjąć świadomie oraz skoordynować z mapowaniem językowo-regionalnym. Szersze zasady opisujemy w artykule o canonicalu.

Sprawdź hreflang w HTML lub sitemap XML

Wklej źródło strony, fragment sitemap albo otwórz lokalny plik. Inspektor sprawdzi kody języka i regionu, duplikaty, x-default, pełne URL-e i — po podaniu adresu analizowanej strony — tag samoreferencyjny. Nie pobiera wskazanych URL-i, dlatego nie potwierdza ich kodów odpowiedzi ani linków zwrotnych na stronach spoza wklejonego zestawu.

Analiza lokalna w przeglądarce

Sprawdź hreflang w HTML lub sitemap

Wklej kod strony, fragment sitemap XML albo otwórz lokalny plik. Analiza nie wysyła kodu na serwer.

Służy wyłącznie do rozwiązania względnych adresów oraz sprawdzenia tagu samoreferencyjnego. Narzędzie nie pobiera tego URL-a.

Jak diagnozować hreflang bez starego raportu GSC?

Google Search Console nie udostępnia już dawnego raportu „Wersje w różnych językach”. Search Console nadal pomaga sprawdzić indeksowalność, canonical wybrany przez Google i wyniki poszczególnych URL-i, ale nie zastępuje crawla całego klastra.

W audycie sprawdzamy kolejno:

  1. Źródło adnotacji: HTML, nagłówek HTTP czy sitemap — oraz czy przypadkiem nie istnieją równoległe, rozjechane implementacje.
  2. Składnię: pełne URL-e, poprawne kody języka i regionu, duplikaty oraz x-default.
  3. Self-reference i linki zwrotne: relacje trzeba analizować między URL-ami, a nie tylko na jednej stronie.
  4. Status i indeksowalność: bezpośredni kod 200, brak noindex, możliwość crawlowania i właściwy canonical.
  5. Zgodność semantyczną: odpowiedniki muszą przedstawiać tę samą ofertę lub treść dla innego języka albo regionu.
  6. Rzeczywisty wynik: w Search Console porównujemy zaindeksowany URL, canonical oraz strony i kraje pojawiające się w raporcie skuteczności.

Do crawla i kontroli wzajemności można wykorzystać Screaming Frog, Sitebulb albo Ahrefs Site Audit. Nasz inspektor jest szybszy przy pojedynczym HTML-u lub fragmencie sitemap, ale celowo nie pobiera wszystkich wskazanych stron. Żaden walidator nie stwierdzi też za zespół, czy niemiecki URL naprawdę jest odpowiednikiem konkretnego polskiego produktu.

Wdrażasz sklep na rynki zagraniczne?

Pomożemy zaplanować architekturę wielojęzycznego SEO, zbudować mapę odpowiedników i wdrożyć hreflang bez konfliktów z canonicalem.

Shopify Markets a hreflang

Shopify Markets automatycznie generuje tagi hreflang na podstawie konfiguracji rynków, domen i języków. W standardowym motywie Liquid trafiają one do <head> przez content_for_header; Shopify utrzymuje również canonicale i międzynarodową sitemapę. To duże ułatwienie, o ile konfiguracja rynków odpowiada faktycznej architekturze sklepu.

Markets może korzystać z podfolderów, subdomen lub osobnych domen. Automatyczne tagi powstają tylko wtedy, gdy rynek ma odrębny adres. Platforma dodaje też x-default wskazujący domenę główną. Aktualne zachowanie opisuje dokumentacja międzynarodowego SEO Shopify.

Na co zwrócić uwagę:

  • jeśli Langify, Weglot, inna aplikacja albo zmodyfikowany motyw również generuje tagi, możesz otrzymać dwa sprzeczne zestawy;
  • po usunięciu rynku sprawdź, czy stare URL-e nie pozostały w adnotacjach i sitemapie;
  • przy kilku osobnych sklepach Shopify na różnych domenach automatyzacja jednego Markets może nie znać odpowiedników w pozostałych sklepach;
  • nie hardkoduj uchwytów produktów i kolekcji, ponieważ mogą różnić się między językami;
  • po każdej zmianie domen, języków i aplikacji ponów crawl, zamiast zakładać, że automatyzacja nadal składa poprawny klaster.

W praktyce najczęściej nie naprawiamy Shopify przez dopisanie kolejnej pętli hreflang w Liquid. Najpierw ustalamy, który mechanizm ma być jedynym źródłem adnotacji, i wyłączamy pozostałe.

Najczęściej zadawane pytania

Czy hreflang wpływa bezpośrednio na pozycje w wynikach wyszukiwania?

Nie jest klasycznym czynnikiem podnoszącym pozycję. Pomaga Google wybrać właściwą wersję językową lub regionalną dla użytkownika. Może więc poprawić dopasowanie strony wejścia, ale nie zastąpi jakości treści, linków, indeksowalności ani lokalizacji oferty.

Czy muszę wdrożyć hreflang, jeśli mam tylko jedną wersję językową sklepu?

Nie. Hreflang ma sens wtedy, gdy istnieją co najmniej dwie wersje językowe lub regionalne odpowiadających sobie treści. Przy jednej wersji nie ma alternatywnego URL-a, który należałoby wskazać.

Jak sprawdzić, czy hreflang działa poprawnie?

Sprawdź składnię i self-reference w inspektorze na tej stronie, a następnie wykonaj crawl wszystkich wariantów w Screaming Frog, Sitebulb albo Ahrefs Site Audit, aby potwierdzić linki zwrotne, statusy i canonicale. Search Console nie ma już osobnego raportu błędów hreflang; wykorzystaj ją do kontroli indeksowania i wybranego canonicala.

Czy mogę użyć hreflang do rozróżnienia wersji z różnymi walutami, ale w tym samym języku?

Tak, jeśli osobne URL-e rzeczywiście reprezentują różne rynki, na przykład de-DE i de-AT, z odmienną dostępnością, dostawą lub warunkami sprzedaży. Jeśli zmienia się tylko przelicznik waluty pod tym samym adresem, hreflang zwykle nie jest właściwym mechanizmem.

Czy można wdrożyć hreflang jednocześnie w HTML i sitemapie?

Można, ale Google nie daje za to dodatkowej korzyści. Dwie lub trzy równoległe implementacje trudniej utrzymać i łatwiej doprowadzić do sprzecznych zestawów. Najbezpieczniej wybrać jedno źródło prawdy.

Czy x-default jest obowiązkowy?

Nie. Jest jednak zalecany jako wariant domyślny dla użytkowników, których język lub region nie pasuje do żadnego wariantu. Szczególnie dobrze sprawdza się dla strony wyboru kraju albo języka.

Gotowy na strategiczne partnerstwo w marketingu cyfrowym?

Porozmawiajmy o Twoich wyzwaniach i celach. Opracujemy dopasowaną strategię i plan działania, które przyniosą mierzalne rezultaty dla Twojego e-commerce lub instytucji.