Co to jest hreflang?
Hreflang to atrybut, którym strona wskazuje swoje odpowiedniki w innych językach albo dla innych krajów. Dzięki niemu Niemiec szukający Twojej oferty powinien zobaczyć w wynikach wersję niemiecką zamiast polskiej, choć obie mówią o tym samym. Hreflang nie służy do podnoszenia pozycji. Pomaga Google wybrać właściwy adres spośród kilku, które już ma.
Wpis podaje kod języka, opcjonalnie kod kraju, i pełny adres odpowiednika. Tak może wyglądać fragment w sekcji head polskiej strony usługi, która ma wersję angielską i niemiecką:
- <link rel="alternate" hreflang="pl" href="https://example.com/pl/uslugi/" />
- <link rel="alternate" hreflang="en" href="https://example.com/en/services/" />
- <link rel="alternate" hreflang="de" href="https://example.com/de/leistungen/" />
- <link rel="alternate" hreflang="x-default" href="https://example.com/" />
Ten sam zestaw wpisów powinien się znaleźć na każdej z tych stron. Ostatni wiersz, x-default, wskazuje stronę dla osób, których język nie pasuje do żadnej wersji, najczęściej stronę wyboru języka. Google przyjmuje te informacje na trzy sposoby: w kodzie strony, w nagłówku odpowiedzi serwera (przydatne np. dla plików PDF) albo w mapie witryny. Według dokumentacji są równoważne i nie trzeba stosować wszystkich naraz.
Kiedy hreflang jest potrzebny?
Wtedy, gdy masz co najmniej dwie wersje tej samej treści dla różnych języków albo krajów. Google opisuje trzy takie sytuacje: pełne tłumaczenie serwisu, wersje w jednym języku różniące się szczegółami dla poszczególnych krajów oraz strony, na których przetłumaczony jest tylko szablon, a treść główna zostaje w jednym języku.
- serwis tylko po polsku, klienci z Polski
- Hreflang: niepotrzebny
- Uwagi: nie ma wersji, między którymi trzeba wybierać
- serwis po polsku, angielsku i niemiecku
- Hreflang: potrzebny
- Uwagi: odpowiednik każdej podstrony wskazany we wszystkich wersjach
- sklep po niemiecku dla Niemiec, Austrii i Szwajcarii z różnymi cenami i dostawą
- Hreflang: potrzebny, z kodami krajów
- Uwagi: bez niego Google może uznać wersje za kopie i pokazywać jedną we wszystkich krajach
- kilka stron po angielsku dla klientów zagranicznych, bez polskich odpowiedników
- Hreflang: niepotrzebny dla tych stron
- Uwagi: hreflang łączy odpowiedniki; strona bez pary nie ma czego wskazać
- osobne domeny krajowe (.pl, .de, .cz) z tą samą ofertą
- Hreflang: potrzebny
- Uwagi: odpowiedniki mogą być w różnych domenach, adresy muszą być pełne
Struktura adresów może być dowolna: osobne domeny krajowe, subdomeny albo katalogi w rodzaju /de/. Google odradza za to rozpoznawanie języka po parametrze w adresie oraz automatyczne przekierowania według adresu IP czy ustawień przeglądarki. Robot odwiedza strony zwykle z USA, więc przy takim przekierowaniu może nie zobaczyć pozostałych wersji. Lepiej pokazać odwiedzającemu widoczny przełącznik języka. Jak planujemy wejście na kolejne rynki, opisujemy przy pozycjonowaniu zagranicznym.
Jakie błędy w hreflang zdarzają się najczęściej?
Najczęściej brakuje odwołań zwrotnych. Jeśli strona polska wskazuje angielską, angielska musi wskazać polską. Dokumentacja Google ostrzega, że bez tego wpisy mogą zostać zignorowane albo źle odczytane. Pozostałe błędy, które widać przy przeglądzie wdrożeń:
- kod kraju zamiast kodu języka. Język czeski to „cs”, a nie „cz”, ukraiński to „uk”, a szwedzki „sv”. Sam kod kraju, bez języka, Google odrzuca
- zły kod kraju. Wielka Brytania to „en-GB”; zarezerwowane kody w rodzaju „UK” czy „EU” nie działają
- brak odwołania do samej siebie. Każda wersja wymienia wszystkie odpowiedniki, łącznie ze sobą
- adresy, które nie działają jako cel. Wpis prowadzi do strony z przekierowaniem, z błędem 404 albo wyłączonej z indeksowania
- adresy względne. Wpis musi zawierać pełny adres z https
- odpowiednik „na siłę”. Gdy podstrona nie ma tłumaczenia, wpis kieruje na stronę główną innej wersji językowej, choć ta nie jest jej odpowiednikiem
Błędy w hreflang nie dają kary ani spadku całego serwisu. Skutek jest cichszy: w Niemczech pojawia się polska strona, klient jej nie rozumie i wraca do wyników.
Jak hreflang łączy się z canonical?
Każda wersja językowa powinna wskazywać jako kanoniczną samą siebie albo stronę w tym samym języku, a nie wersję w innym języku. Tak radzi Google w dokumentacji o adresach kanonicznych. Typowy błąd wygląda tak: wtyczka tłumaczeń kopiuje znacznik canonical z polskiej strony, więc wersja angielska mówi Google „właściwa jest polska”, a hreflang jednocześnie twierdzi, że to osobny odpowiednik. Taka sprzeczność może skończyć się tym, że wersja angielska w ogóle nie trafi do wyników.
Trudniejszy przypadek to wersje w jednym języku dla różnych krajów, prawie identyczne. Google może wtedy potraktować je jako kopie i wybrać jedną jako kanoniczną. Dokumentacja radzi świadomie wybrać wersję preferowaną i połączyć wszystkie znacznikami canonical i hreflang, żeby w wynikach danego kraju pojawiał się właściwy adres. Pomaga też, gdy wersje naprawdę się różnią: ceną w lokalnej walucie, warunkami dostawy, danymi kontaktowymi. Więcej o tym, jak Google wybiera stronę kanoniczną, przeczytasz w artykule o indeksowaniu strony.
Jak sprawdzić hreflang na stronie?
Najszybciej crawlerem, czyli programem, który przechodzi cały serwis jak robot wyszukiwarki i zestawia wpisy hreflang ze wszystkich stron. Takie narzędzia, także audyt serwisu w Ahrefs, wyłapują brak odwołań zwrotnych, złe kody i wpisy prowadzące do stron z błędem. Ręcznie da się sprawdzić kilka adresów:
- w kodzie strony każdej wersji: czy zestaw wpisów jest taki sam i obejmuje stronę, na której jesteś
- czy każdy wskazany adres otwiera się bez przekierowania i wskazuje jako kanoniczny sam siebie
- w Search Console, w narzędziu do sprawdzania adresów URL: który adres Google uznał za kanoniczny dla wersji zagranicznej
- w raporcie Skuteczność z filtrem kraju: czy wyświetlenia w Niemczech zbiera strona niemiecka, czy polska
Ostatni punkt mówi najwięcej, bo pokazuje efekt wdrożenia, nie tylko kod. Jeśli w danym kraju wyświetla się wersja w niewłaściwym języku, hreflang nie działa, niezależnie od tego, co twierdzi wtyczka.
Co zlecić przy wdrożeniu hreflang?
Zleć wdrożenie generowane automatycznie z jednego źródła: tabeli odpowiedników albo powiązań stron w systemie zarządzania treścią. Ręcznie wpisywane znaczniki rozjeżdżają się przy pierwszej nowej podstronie. Przed startem prac warto mieć ustalone:
- listę wersji z kodami języka i ewentualnie kraju, uzgodnioną z działem sprzedaży, a nie wymyśloną przez programistę
- mapę odpowiedników dla każdej podstrony i decyzję, co robić ze stronami bez tłumaczenia: zostawić je bez wpisu, zamiast kierować na stronę główną innej wersji
- stronę x-default, jeśli serwis ma stronę wyboru języka albo wersję uniwersalną
- sprawdzenie crawlerem po wdrożeniu i po każdym dodaniu nowego języka albo przebudowie menu
Wdrożenie hreflang to dobry moment, żeby przejrzeć cały serwis pod kątem kolejnego rynku: tłumaczenia tytułów i opisów, adresy w lokalnym języku, dane firmy dla danego kraju. Jeśli serwis ma wiele wersji i chcesz wiedzieć, co w nich działa źle, zacznij od audytu SEO.