Przejdź do treści
Eurolingo
Ekspansja

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

9 lipca 2026·9 min czytania
Programista monitoruje wydajność i bezpieczeństwo strony na dwóch ekranach
Ekspansja
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

Przeczytaj również

Porozmawiajmy

Zbudujmy stronę, którą widać.

Opowiedz nam o swoim projekcie. Wrócimy z pomysłem i realną wyceną — bez zobowiązań.