Hreflang to adnotacja, która mówi Google, że kilka adresów URL to wersje językowe tej samej treści. Na tej podstawie wyszukiwarka decyduje, który adres pokazać użytkownikowi z danego języka albo kraju. Znasz to? Klient z Niemiec wpisuje nazwę Twojej firmy i ląduje na polskiej stronie zamiast na niemieckiej. Zwykle oznacza to, że tych oznaczeń brakuje albo coś w nich jest źle. Niżej opisuję, jak działa hreflang, trzy sposoby jego dodania, do czego służy x-default, jak sprawdzić wdrożenie i jakie błędy zdarzają się najczęściej.
Spis treści
Czym jest hreflang i co naprawdę robi w Google?
Hreflang pokazuje Google zlokalizowane odpowiedniki strony, żeby w wynikach wyszukiwania pojawił się adres w języku użytkownika. I tyle. Nie służy do wykrywania języka (to częsty mit). Według dokumentacji Google o wersjach zlokalizowanych wyszukiwarka nie korzysta do tego ani z hreflang, ani z atrybutu HTML lang, tylko z własnych algorytmów. Oznaczenie po prostu kieruje właściwą wersję do właściwego odbiorcy. Kiedy go potrzebujesz? Gdy języki albo regiony mają osobne adresy URL, np. /de/ i /en/, albo oddzielne domeny.
Jak dodać hreflang: znaczniki w head, nagłówki HTTP czy mapa witryny?
Google przyjmuje trzy metody: znaczniki link w sekcji head, nagłówek HTTP Link albo mapę witryny XML. Wybierz jedną, tę, która pasuje do Twojej strony. Mieszanie nic nie daje. Znaczniki muszą siedzieć w poprawnie zbudowanej sekcji head, więc jeśli masz wątpliwości, wklej wyrenderowany kod strony do walidatora HTML. Nie łącz też hreflang z innymi atrybutami, np. media, w jednym znaczniku link. A nagłówek HTTP? Przydaje się przy plikach PDF i innych dokumentach, które nie są HTML. Każda wersja zwraca w nim dokładnie ten sam zestaw.
<link rel="alternate" hreflang="pl" href="https://example.com/pl/" />
<link rel="alternate" hreflang="en" href="https://example.com/en/" />
<link rel="alternate" hreflang="de" href="https://example.com/de/" />Zasady poprawnego zestawu wersji językowych strony w Google
Każda wersja strony wymienia pełnymi adresami URL wszystkie warianty, łącznie z samą sobą. Brzmi banalnie, a właśnie tu sypie się najwięcej wdrożeń. W praktyce polecam taką kolejność:
- Spisz wszystkie warianty danej podstrony.
- Przypisz dwuliterowe kody języka według normy ISO, a jeśli trzeba, dodaj region, np. de-AT dla Austrii.
- Użyj pełnych, kanonicznych adresów z protokołem.
- Dodaj odnośnik strony do samej siebie.
- Zadbaj o wzajemność: ten sam zestaw musi być na każdej wersji.
- Dodaj x-default dla pozostałych użytkowników.
Osobna historia to podobna treść w tym samym języku pod różnymi adresami, np. example.de/ i example.com/de/. Tu poradnik Google o witrynach wieloregionalnych zaleca wybrać wersję preferowaną i połączyć rel=canonical z hreflang. Efekt? Użytkownik dostaje adres pasujący do swojego języka lub regionu.
Do czego służy x-default hreflang?
Wartość x-default wskazuje stronę zapasową dla użytkowników, których języka nie obsługujesz. Najbardziej przydaje się przy stronie wyboru języka albo przy stronie głównej, która sama przekierowuje odwiedzających. Wdrożenie jest proste: obok pozostałych dodajesz jeszcze jeden znacznik link z hreflang=”x-default”. Ma on wskazywać adres, na który powinien trafić ktoś mówiący w języku spoza Twojej listy. Przykład z praktyki: strona główna web-systems.pl ma oznaczenia pl, en, de oraz x-default, a generuje je WPML.
Hreflang w WordPressie: co robi wtyczka, a co musisz sprawdzić
Wtyczki wielojęzyczne, takie jak WPML, generują hreflang automatycznie. Ale tylko dla stron z połączonymi tłumaczeniami. Jeśli ktoś utworzył niemiecką wersję jako osobną stronę, bez powiązania z polską, wtyczka nie uzna ich za odpowiedniki. I taka podstrona zostaje bez adnotacji, a Ty nawet o tym nie wiesz. Dlatego po dodaniu treści zajrzyj w kod kilku najważniejszych adresów, to pięć minut roboty. Jeśli dopiero wybierasz narzędzie, porównaj dostępne wtyczki do tłumaczeń WordPressa. Przy nowym serwisie strukturę językową najlepiej zaplanować już wtedy, gdy zamawiasz tworzenie stron internetowych dla firm. Później przerabia się ją dużo trudniej.
Najczęstsze błędy hreflang i jak je wyłapać
Większość problemów bierze się z braku wzajemności, złych kodów języka i adresów, które przekierowują albo mają inny canonical. Lista grzechów wygląda mniej więcej tak:
- brak linku zwrotnego z jednej z wersji,
- kod kraju zamiast języka, np. uk dla Wielkiej Brytanii zamiast en-GB,
- hreflang wskazujący adres z przekierowaniem lub z noindex,
- canonical wskazujący inną wersję językową,
- znaczniki poza sekcją head, np. wstrzyknięte do body,
- adresy względne zamiast pełnych.
Do kontroli w zupełności wystarczą podgląd źródła wyrenderowanej strony i walidator HTML. Przy dużej liczbie podstron pomagają zewnętrzne narzędzia do debugowania hreflang. Tylko uwaga: Google zaznacza, że ich nie utrzymuje ani nie sprawdza. W rozbudowanym serwisie moim zdaniem lepiej zlecić audyt SEO strony wielojęzycznej, niż klikać to ręcznie tygodniami.
Od czego zacząć? Od listy wariantów strony głównej i najważniejszych podstron. Potem sprawdź w kodzie, czy każda z nich wymienia wszystkie wersje i x-default. Dobrze wdrożony hreflang robi jedną prostą rzecz: klient z Niemiec widzi w Google stronę niemiecką, a klient z Polski polską. Jeśli wolisz oddać to w ręce specjalistów, rozważ profesjonalne pozycjonowanie stron.
Najczęstsze pytania
Czy hreflang poprawia pozycje strony w Google?
Nie, hreflang nie służy do poprawiania pozycji. Pomaga Google pokazać użytkownikowi właściwą wersję językową tej samej treści. Dzięki temu odwiedzający od razu trafia na stronę w swoim języku.
Czy muszę używać x-default?
X-default nie jest obowiązkowy. Ale jeśli masz stronę wyboru języka albo stronę główną z automatycznym przekierowaniem, to go dodaj. Użytkownicy, których języka nie obsługujesz, trafią wtedy na stronę zapasową.
Czy wystarczy atrybut lang w znaczniku html?
Nie wystarczy. Google nie używa atrybutu lang ani do wskazywania wersji językowych, ani do rozpoznawania języka strony. Żeby połączyć odpowiedniki, potrzebujesz hreflang w sekcji head, w nagłówku HTTP albo w mapie witryny.








