hreflang krok po kroku — jak nie zepsuć wielojęzycznej strony

Kiedy polska firma uruchamia stronę w kilku językach albo dla kilku rynków, prędzej czy później natrafia na atrybut hreflang. To niepozorny fragment kodu, który mówi Google, że dana podstrona ma swoje odpowiedniki w innych językach lub krajach — i który z nich pokazać konkretnemu użytkownikowi. Dobrze wdrożony działa w tle i nikt o nim nie myśli. Źle wdrożony potrafi wysypać widoczność całej wielojęzycznej witryny.
W tym przewodniku tłumaczymy, czym hreflang właściwie jest, jak wygląda jego składnia, gdzie go umieścić i jakie błędy popełnia się najczęściej. Bez magii — to zestaw prostych, ale rygorystycznych zasad, które trzeba stosować konsekwentnie.
Po co w ogóle jest hreflang
Wyobraź sobie, że masz wersję oferty po polsku, po niemiecku i po angielsku. Bez dodatkowego sygnału Google może uznać je za duplikaty tej samej treści albo pokazać niemieckiemu użytkownikowi wersję angielską. Hreflang rozwiązuje ten problem: informuje wyszukiwarkę, że to nie duplikaty, lecz warianty językowe lub krajowe tej samej strony, i wskazuje, komu który wariant serwować. Efektem nie jest wyższa pozycja sama w sobie, tylko to, że w wynikach pojawia się właściwa wersja dla właściwego odbiorcy.
Składnia: język, opcjonalnie kraj
Wartość atrybutu hreflang to kod języka w standardzie ISO 639-1 (dwie litery), opcjonalnie uzupełniony myślnikiem i kodem kraju lub regionu w standardzie ISO 3166-1 alpha-2. Język zawsze na pierwszym miejscu, kraj po nim. Kilka przykładów: hreflang='de' oznacza treść po niemiecku bez rozróżnienia kraju; hreflang='de-AT' to niemiecki dla Austrii; hreflang='en-GB' to angielski dla Wielkiej Brytanii.
Uwaga na kody krajów: dla Wielkiej Brytanii poprawny jest GB, a nie UK — 'en-UK' jest błędne. Sam kod kraju bez języka też nie zadziała, bo wyszukiwarka czyta pierwszy człon jako język. Oprócz tego istnieje specjalna wartość hreflang='x-default'. To nie jest domyślny język, tylko wariant awaryjny: strona, którą Google pokaże, gdy żadna z zadeklarowanych wersji nie pasuje do użytkownika. Zwykle wskazuje się na stronę wyboru języka albo najbardziej uniwersalną wersję.
Gdzie umieścić hreflang
Są trzy dozwolone miejsca i wystarczy wybrać jedno — mieszanie metod prowadzi do konfliktów.
- W nagłówku HTML: znaczniki link rel='alternate' hreflang='...' href='...' w sekcji head każdej podstrony. Najpopularniejsza metoda dla stron HTML.
- W nagłówku odpowiedzi HTTP: przydatne dla plików nie-HTML, na przykład PDF, gdzie nie ma sekcji head.
- W mapie witryny (sitemap XML): każdy adres URL dostaje wpisy xhtml:link ze wszystkimi wariantami. Wygodne przy dużych serwisach, bo trzyma wszystko w jednym pliku.
Zasada wzajemności — najczęstszy błąd
To reguła, na której wykłada się najwięcej wdrożeń. Hreflang musi być wzajemny (tak zwane return links). Jeśli strona polska wskazuje na wersję niemiecką, to wersja niemiecka musi wskazywać z powrotem na polską. Jeżeli którykolwiek wariant nie odsyła do pozostałych, Google zignoruje całą tę deklarację jako niespójną. W praktyce oznacza to, że każda podstrona musi znać komplet swoich odpowiedników i wszystkie muszą się nawzajem wskazywać. Przy trzech językach to trzy wpisy na każdej stronie — i wszystkie muszą się zgadzać co do adresów.
Self-referencing, czyli odwołanie do siebie
Do kompletu wzajemności dochodzi zasada, że każda strona musi zawierać także wpis wskazujący na samą siebie z własnym kodem. Wersja niemiecka wymienia więc: siebie jako hreflang='de', plus polską i angielską. Brakujące odwołanie do siebie to jeden z najczęstszych komunikatów w audytach SEO. Do tego dochodzi kwestia adresów: w atrybucie href zawsze podawaj pełne, bezwzględne adresy z protokołem, nie skróty.
Hreflang kontra canonical
Częsta pułapka techniczna to konflikt z tagiem kanonicznym. Każdy wariant językowy powinien wskazywać kanonicznie na samego siebie — francuska strona ma canonical na francuski adres, nie na angielski. Jeśli wszystkie wersje kanonizują się do jednej (na przykład angielskiej), mówisz Google, że pozostałe w ogóle nie powinny się indeksować, i hreflang przestaje działać. Canonical i hreflang muszą grać do jednej bramki.
Podsumowanie
Hreflang nie jest skomplikowany koncepcyjnie, ale jest bezlitosny dla niekonsekwencji. Trzymaj się kilku zasad: poprawne kody (język przed krajem, GB nie UK), jedna metoda wdrożenia, pełna wzajemność, odwołanie do siebie, x-default jako wariant awaryjny i canonical spójny z wersją. Po wdrożeniu warto zweryfikować całość narzędziem do audytu hreflang, bo najdrobniejsza literówka w adresie potrafi unieważnić deklarację. Jeśli planujesz wielojęzyczną ekspansję i chcesz mieć pewność, że architektura językowa jest ułożona poprawnie od początku, to dobry moment, żeby przejść ją z kimś, kto robił to wcześniej.
Masz projekt na oku?
Zamień wiedzę w działanie. Napisz do nas — pomożemy zaprojektować stronę i zbudować jej widoczność w Google.
Bezpłatna wycena



