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ć.
<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-plzamiastpl-PL). - Adresy względne zamiast bezwzględnych – wartość
hrefw 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.