Czym jest hreflang?

Hreflang (pełny zapis: rel="alternate" hreflang="x") to atrybut, który informuje wyszukiwarki, że dana strona ma odpowiedniki w innych językach lub dla innych regionów, i wskazuje, pod jakimi adresami URL te odpowiedniki się znajdują. Dzięki temu Google (lub inna wyszukiwarka) może pokazać użytkownikowi z Polski wersję pl-PL strony, a użytkownikowi z Niemiec – wersję de-DE tej samej treści, zamiast oryginału w przypadkowym języku.

Bez hreflang wyszukiwarka traktuje wersje językowe jako osobne, niepowiązane strony – co potrafi prowadzić do sytuacji, w której Polak dostaje w wynikach link do angielskiej wersji sklepu, a wersje w kilku językach konkurują ze sobą o te same frazy zamiast się uzupełniać.

Podstawowy zapis hreflang w HTML
<link rel="alternate" hreflang="pl-PL" href="https://twojadomena.pl/pl/" />
<link rel="alternate" hreflang="de-DE" href="https://twojadomena.pl/de/" />
<link rel="alternate" hreflang="x-default" href="https://twojadomena.pl/" />

Jak zbudowany jest kod języka?

Wartość atrybutu hreflang składa się z kodu języka wg normy ISO 639-1 (np. pl, de, en), opcjonalnie połączonego z kodem regionu wg normy ISO 3166-1 Alpha-2 (np. PL, DE, US), rozdzielonych myślnikiem: pl-PL, en-US, en-GB. Sam kod języka bez regionu (pl, en) też jest poprawny i oznacza "ta wersja jest dla wszystkich użytkowników mówiących tym językiem, niezależnie od kraju".

x-default

Specjalna wartość wskazująca stronę domyślną – tę, którą wyszukiwarka pokaże użytkownikom, dla których żadna z podanych wersji językowych nie pasuje. Zwykle prowadzi do strony głównej z wyborem języka albo do wersji ogólnoświatowej.

Częsty błąd: en-UK zamiast en-GB

Kod kraju dla Wielkiej Brytanii w normie ISO 3166-1 to GB, nie UK. Zapis en-UK jest nieprawidłowy i Google go ignoruje – poprawnie jest en-GB.

Trzy sposoby wdrożenia hreflang

1. Znaczniki w sekcji <head>

Najpopularniejsza metoda – każda strona w sekcji <head> zawiera komplet linków do wszystkich swoich wersji językowych, łącznie z odnośnikiem do samej siebie.

2. Nagłówek HTTP

Przydatne dla plików, które nie mają sekcji <head> – np. PDF-ów dostępnych w kilku językach:

Link: <https://twojadomena.pl/en/raport.pdf>; rel="alternate"; hreflang="en",
      <https://twojadomena.pl/pl/raport.pdf>; rel="alternate"; hreflang="pl"

3. Sitemap.xml

Przy dużej liczbie stron i języków wygodniej jest zadeklarować hreflang w mapie strony niż powielać je w kodzie HTML każdej podstrony:

<url>
    <loc>https://twojadomena.pl/pl/produkt/</loc>
    <xhtml:link rel="alternate" hreflang="pl-PL" href="https://twojadomena.pl/pl/produkt/" />
    <xhtml:link rel="alternate" hreflang="de-DE" href="https://twojadomena.pl/de/produkt/" />
</url>

Self-referencing i odnośniki zwrotne

Dwie zasady, bez których Google po prostu zignoruje całą deklarację hreflang:

  • Self-referencing – każda strona musi zawierać odnośnik hreflang do samej siebie, nie tylko do swoich odpowiedników w innych językach.
  • Odnośniki zwrotne (return links) – jeśli strona A wskazuje przez hreflang na stronę B, strona B musi wskazywać z powrotem na stronę A. Brak takiego powiązania w obie strony to najczęstsza przyczyna, dla której Google ignoruje adnotacje hreflang w całym zestawie.

Najczęstsze błędy przy wdrażaniu hreflang

  • Brak odnośników zwrotnych – opisany wyżej, najczęstszy powód ignorowania hreflang przez Google.
  • Nieprawidłowe kody języka lub kraju – literówki albo pomylenie kodu języka z kodem kraju (np. wpisanie PL-pl zamiast pl-PL).
  • Adresy względne zamiast bezwzględnych – wartość href w hreflang powinna zawierać pełny URL z protokołem, nie ścieżkę względną.
  • Umieszczenie poza sekcją <head> – hreflang w <body> strony jest ignorowany.
  • Konflikt z tagiem canonical – każda wersja językowa powinna mieć własny, self-referencing canonical. Ustawienie canonical wszystkich wersji na jedną (np. domyślną) stronę wysyła sprzeczny sygnał i w praktyce unieważnia sens hreflang.
  • Brak wersji x-default – niewymagane formalnie, ale bez niej użytkownicy spoza zdefiniowanych języków trafiają na przypadkową wersję zamiast na stronę powitalną z wyborem języka.

Jak sprawdzić błędy hreflang

Google zlikwidowało dedykowany raport "Kierowanie międzynarodowe" w Search Console we wrześniu 2022 roku – narzędzie miało zbyt mało użytkowników, by uzasadnić jego utrzymanie. Wsparcie dla hreflang w wyszukiwarce się jednak nie zmieniło, a błędy dotyczące hreflang trafiają dziś do ogólnego raportu Ulepszenia (Enhancements) w Search Console. W praktyce do audytu hreflang najwygodniej używać zewnętrznych narzędzi – crawlerów typu Screaming Frog czy Ahrefs Site Audit – które wprost pokazują brakujące odnośniki zwrotne i błędne kody.

Masz stronę w kilku językach i podejrzewasz błędy w hreflang? Bezpłatna wycena