Hreflang
Czym jest hreflang, trzy sposoby jego wdrożenia, zasady wzajemności i samoodnoszenia, prawidłowe kody języka i regionu oraz audyt klastrów na dużą skalę.
Języki
1 sygnał dowodowy na tej stronie
- Powiązane działające narzędziehreflang Generator + Linter
Hreflang wskazuje wyszukiwarkom właściwą wersję językową lub regionalną strony. Każda strona musi wymieniać siebie i wszystkie alternatywy oraz zawierać wzajemne linki zwrotne. Wybierz jedną metodę wdrożenia, zachowaj prawidłowe kody języka i regionu, a klaster audytuj jako graf.
TL;DR — Hreflang mówi wyszukiwarkom, która wersja strony jest przeznaczona dla danego języka lub regionu — dzięki temu osoba hiszpańskojęzyczna otrzymuje stronę hiszpańską, a francuskojęzyczna francuską. Na każdej stronie dodajesz niewielką adnotację z listą wszystkich wersji językowych. Problem polega na tym, że każda strona musi wskazywać z powrotem na każdą pozostałą, inaczej Google może zignorować dotyczące ich adnotacje.
Czym jest hreflang
Jeśli publikujesz tę samą stronę w więcej niż jednym języku — albo w tym samym języku dla różnych krajów — hreflang mówi Google, która wersja jest która. To adnotacja z listą alternatywnych wersji strony oraz językiem (i opcjonalnie regionem), do którego każda z nich jest kierowana. Gdy ktoś wyszukuje, Google może podstawić wersję pasującą do jego języka i lokalizacji — to sygnał pomagający Google wybrać właściwy zlokalizowany URL, a nie gwarancja indeksowania, pozycji, ruchu, wyświetlenia danego URL-a ani cytowania w odpowiedziach AI.
Evidence for this claim Google accepts hreflang in HTML, HTTP headers, or XML sitemaps and says the methods are equivalent from its perspective. Scope: Google Search hreflang implementation methods. Confidence: high · Verified: Google: Localized versionsWygląda to tak w sekcji <head> kodu HTML strony:
<link rel="alternate" hreflang="en-us" href="https://example.com/en-us/" />
<link rel="alternate" hreflang="es" href="https://example.com/es/" />
<link rel="alternate" hreflang="x-default" href="https://example.com/" />Każda linia mówi: „istnieje alternatywna wersja tej strony, jest przeznaczona dla tego języka/regionu i znajduje się pod tym URL-em”.
Cytat źródłowy: “there’s an alternate version of this page, it’s for this language/region, and it lives at this URL.”
Trzy sposoby dodania hreflang
Wygeneruj prawidłowe tagi za pomocą narzędzia hreflang Generator + Linter:
- W macierzy lokalizacji i URL-i dodaj jeden wiersz dla każdej wersji językowej strony (kod lokalizacji + URL) — wynik aktualizuje się na bieżąco podczas pisania.
- Wybierz potrzebny format w kartach wyników — tagi head, sitemap XML, nagłówki Link albo fragmenty kodu dla frameworków.
- Sprawdź panel lintera pod kątem ostrzeżeń o nieprawidłowym kodzie lub brakującym linku zwrotnym, a następnie skopiuj albo pobierz wynik.
Musisz wybrać tylko jeden z tych sposobów:
- Tagi HTML
<head>— najczęstsza metoda, pokazana powyżej. Dobra dla mniejszych witryn. - Nagłówki HTTP
Link— te same informacje wysyłane w odpowiedzi serwera zamiast w HTML-u. To jedyna opcja dla plików innych niż HTML, takich jak PDF-y. - Sitemap XML — alternatywy umieszczasz w sitemapie zamiast na każdej stronie. Najlepsze rozwiązanie dla dużych witryn, ponieważ nie trzeba dotykać kodu HTML każdej strony.
Kody muszą być prawidłowe
Wartość to kod języka, opcjonalnie poprzedzony myślnikiem i kodem regionu:
- Język korzysta z ISO 639-1 —
enoznacza angielski,eshiszpański,deniemiecki, ajajapoński. - Region (opcjonalny) korzysta z ISO 3166-1 alpha-2 —
en-us,en-gb,es-mx.
Dwie rzeczy są stale źle rozumiane: Wielka Brytania to gb, więc angielski brytyjski to en-GB, a nie en-UK (uk jest zarezerwowane i w rzeczywistości oznacza ukraiński). Możesz kierować język samodzielnie (es = wszyscy hiszpańskojęzyczni na świecie), ale nie możesz kierować samym regionem — najpierw zawsze musi wystąpić język.
Udokumentowany przez Google kontrakt hreflang jest węższy niż przestrzeń kodów, na którą ogólnie pozwala platforma webowa: Google rozpoznaje język i opcjonalny region oraz mówi, że zarezerwowane kody, takie jak EU, UN i UK, nie mają wpływu jako cele regionalne. Szerszy standard tagów językowych HTML/BCP 47, na którym opiera się hreflang, obsługuje także podtagi skryptów (zh-Hant dla chińskiego tradycyjnego, sr-Latn dla serbskiego zapisywanego alfabetem łacińskim) — warto o tym wiedzieć w kontekście atrybutów lang, ale w samym hreflang trzymaj się udokumentowanego przez Google wzorca język plus region.
Dwie zasady, dzięki którym to działa
- Każda strona musi wskazywać z powrotem. Jeśli strona angielska linkuje do hiszpańskiej, hiszpańska musi linkować z powrotem do angielskiej. Gdy brakuje tego linku zwrotnego, Google może zignorować dotknięte adnotacje albo zinterpretować je nieprawidłowo.
- Każda strona powinna wskazywać na siebie. Każda wersja wymienia samą siebie w swoim zestawie tagów hreflang (tag „samoodnoszący”). Google nazywa to opcjonalną, ale dobrą praktyką, a jest to najbezpieczniejszy domyślny wybór.
Cytat źródłowy: “self-referential”
Kiedy naprawdę potrzebujesz hreflang?
Potrzebujesz go, gdy masz rzeczywiście różne wersje strony dla różnych języków lub regionów:
- Prawdziwe tłumaczenia (strona angielska i hiszpańska).
- Ten sam język dla istotnie różnych rynków (strona w angielskim amerykańskim i strona w angielskim brytyjskim z innymi cenami, pisownią lub informacjami o wysyłce).
Nie potrzebujesz go w witrynie jednojęzycznej i nie należy dodawać go do cienkich ani automatycznie tłumaczonych stron tylko po to, żeby go mieć. Hreflang nie podnosi pozycji — pomaga jedynie wyświetlić właściwą wersję właściwej osobie.
Chcesz poznać wersję wdrażania na dużą skalę, przypadki brzegowe canonicalizacji, sposób działania Binga i audyt uszkodzonego klastra? Przejdź do karty Advanced.
Błędy hreflang, które niszczą klastry
Publikowanie jednostronnych adnotacji
Dlaczego to zawodzi: alternatywa, która nie linkuje z powrotem, tworzy brakujący tag zwrotny, więc para może zostać zignorowana. Co zrobić: wygeneruj kompletny, wzajemny zestaw dla każdego elementu, w tym odwołanie do samego siebie.
Wskazywanie hreflang na przekierowane lub niekanoniczne URL-e
Dlaczego to zawodzi: adnotacja wskazuje URL, który nie jest końcową wersją możliwą do indeksowania, tworząc sprzeczne sygnały. Co zrobić: kieruj na bezpośrednie kanoniczne URL-e zwracające 200 i utrzymuj canonical każdej strony wskazujący na nią samą, chyba że konsolidacja jest zamierzona.
Używanie kodu kraju bez języka
Dlaczego to zawodzi: region jest opcjonalny, ale język jest wymagany. Co zrobić: użyj prawidłowego kodu języka, takiego jak en, opcjonalnie z prawidłowym regionem, takim jak en-GB.
Łączenie metod wdrożenia bez jednego źródła prawdy
Dlaczego to zawodzi: HTML, nagłówki i sitemap mogą rozjechać się w sprzeczne klastry. Co zrobić: wybierz metodę, którą Twój stos potrafi niezawodnie generować, albo wyprowadź wszystkie metody z tej samej mapy lokalizacji.
Sprawdź się: Hreflang
TL;DR — Hreflang to wzajemny sygnał klastra: każda strona wymienia siebie i wszystkie alternatywy, a brak tagu zwrotnego unieważnia parę. Wybierz jedną metodę — sekcję head HTML, nagłówki HTTP
Link(PDF-y) albo sitemap XML (najlepsza na dużą skalę). Kody to język ISO 639-1 plus region ISO 3166-1 alpha-2;en-UKjest błędne, poprawne jesten-GB. To wskazówka, nie dyrektywa (Mueller) — błędny hreflang jest ignorowany, a nie karany, a Google może go nadpisać z powodów konsolidacji tego samego języka lub indeksowania. Hreflang często się psuje: w moim badaniu Ahrefs obejmującym 374 756 domen ponad 67% miało co najmniej jeden problem. Bing traktuje go jako znacznie słabszy sygnał niżcontent-language. Audytuj klastry wizualnie, a nie w arkuszach kalkulacyjnych.
Hreflang to klaster, nie tag
© Patrick Stox LLC · CC BY 4.0 ·
© Patrick Stox LLC · CC BY 4.0 ·
Model mentalny, który rozwiązuje większość nieporozumień związanych z hreflang: to nie tag przypisany do strony, lecz graf dwukierunkowy. Własny wymóg Google jest jednoznaczny — “Each language version must list itself as well as all other language versions,” oraz “if two pages don’t both point to each other, the tags will be ignored.” Jeśli więc strona X wskazuje na Y, ale Y nie wskazuje z powrotem na X, ta krawędź zostaje po cichu odrzucona. Jeden brakujący tag zwrotny może spowodować zignorowanie lub nieprawidłową interpretację dotkniętych adnotacji — Google mówi jednak, że nadal może przetwarzać pary, które są prawidłowo wzajemne, więc jedna uszkodzona relacja nie musi wyłączyć każdej adnotacji w większym klastrze.
Evidence for this claim Each hreflang set should include the page itself, use fully qualified URLs, and include return links; without reciprocity, the affected annotations may be ignored or misinterpreted. Scope: Google Search hreflang guidelines; the documentation does not say one missing return link invalidates every annotation in a cluster. Confidence: high · Verified: Google: Localized versions guidelinesCytat źródłowy: “Each language version must list itself as well as all other language versions,”
Cytat źródłowy: “if two pages don’t both point to each other, the tags will be ignored.”
Z tego wynikają dwa warunki niepodlegające negocjacji:
- Wzajemność. Każde odwołanie musi zostać odwzajemnione. Właśnie tu wdrożenia psują się na dużą skalę — gdy jeden szablon, jedno pole CMS-u albo strony jednego regionu wypadają z synchronizacji, znikają linki zwrotne.
- Odwołanie do samej strony. Każda strona wymienia samą siebie. Mueller nazywa to „opcjonalną, ale dobrą praktyką”; w praktyce zestaw samoodnoszący jest najczystszym sposobem utrzymania spójnych klastrów, a jego brak jest zgłaszany jako problem.
Cytat źródłowy: “optional—but good practice”
Wymagane są także bezwzględne, w pełni kwalifikowane URL-e — https://example.com/foo, nigdy //example.com/foo ani /foo.
Trzy metody — i kompromisy
Google traktuje tagi HTML, nagłówki HTTP i sitemap XML jako równoważne — wdrożenie więcej niż jednej metody nie daje korzyści w wyszukiwaniu. Wybierz jedną metodę dla witryny, zależnie od tego, co Twój stos potrafi niezawodnie utrzymywać; łączenie metod sprzyja konfliktom.
- Tagi HTML
<head>. Najprostsze i najbardziej widoczne. Wadą jest to, że w witrynie z dziesiątkami lokalizacji każda strona zawiera duży blok tagów<link>, co zwiększa ciężar znaczników, a każdy tag w<body>(z powodu nieprawidłowego HTML-a lub wstrzyknięcia JS) jest nieprawidłowy — hreflang liczy się tylko w<head>strony tak, jak Google ją renderuje i parsuje. - Nagłówki HTTP
Link. Jedyna opcja dla zasobów innych niż HTML, takich jak PDF-y. Są wysyłane w odpowiedzi, więc nie powiększają dokumentu. - Sitemap XML. Właściwy wybór na dużą skalę. Adnotacje znajdują się centralnie (elementy
xhtml:linkpod każdym<url>z przestrzenią nazwxmlns:xhtml="http://www.w3.org/1999/xhtml"), dzięki czemu cały klaster można wygenerować ponownie z bazy danych bez ponownego wdrażania stron. Nie ma metody „szybszej” — HTML i sitemap są rozwiązywane podczas crawlowania — ale sitemap znacznie łatwiej kontrolować, ponieważ cały graf można zwalidować w jednym pliku zamiast crawlowania każdej strony.
Cytat źródłowy: “faster”
Wzajemne linkowanie na dużą skalę — gdzie się psuje
W witrynie z 5 lokalizacjami jest to macierz odniesień 5×5 dla każdego zestawu stron, generowana ponownie za każdym razem, gdy dodasz lub usuniesz lokalizację, naprawisz slug albo przeniesiesz URL. Tryby awarii są przewidywalne:
- Niespójne formaty URL-i. Końcowy ukośnik lub jego brak,
httpkontrahttps,wwwkontra apex albo wielkie i małe litery w ścieżkach — każda rozbieżność między URL-em w hreflang a URL-em faktycznie indeksowanym przez Google psuje dopasowanie linku zwrotnego. - Wskazywanie na przekierowane lub uszkodzone URL-e. URL lokalizacji się zmienia, zostaje dodane przekierowanie, ale hreflang nadal wskazuje stary URL. Klaster odwołuje się wtedy do
301lub404. - Rozjechanie kodów.
jpzamiastjadla japońskiego, kody trzyznakowe tam, gdzie wymagane są dwuznakowe,en-UKzamiasten-GB. Nieprawidłowe kody są ignorowane.
Przykład wdrożenia: tag zwrotny wskazuje wczorajszy URL
Załóżmy, że strona produktu w Wielkiej Brytanii została przeniesiona z /gb/shoes/ do /uk/shoes/. Strona amerykańska nie została wygenerowana ponownie, więc nadal publikuje:
<link rel="alternate" hreflang="en-US" href="https://shop.example/us/shoes/" />
<link rel="alternate" hreflang="en-GB" href="https://shop.example/gb/shoes/" />Stary URL brytyjski przekierowuje do /uk/shoes/, a nowa strona brytyjska linkuje z powrotem do strony amerykańskiej ze swojego końcowego kanonicznego URL-a. Tworzy to dwa odrębne problemy: adnotacja amerykańska kieruje na przekierowanie, a końcowy URL brytyjski nie jest tym samym URL-em, który zadeklarowała strona amerykańska. Napraw generator, aby obie strony publikowały kompletny zestaw końcowych URL-i możliwych do indeksowania:
<link rel="alternate" hreflang="en-US" href="https://shop.example/us/shoes/" />
<link rel="alternate" hreflang="en-GB" href="https://shop.example/uk/shoes/" />Po wdrożeniu zweryfikuj oba kierunki; sprawdzenie tylko tagu źródłowego strony amerykańskiej nie wykryłoby awarii tagu zwrotnego. To ilustracyjny klaster .example.
Wniosek z moich wystąpień konferencyjnych pozostaje aktualny: automatyzuj generowanie hreflang z jednego źródła prawdy. Ręcznie utrzymywany hreflang na dużą skalę gwarantuje gnicie tagów zwrotnych.
Konflikty canonicalizacji
Hreflang zależy od tego, co jest zindeksowane, a nie od tego, co zostało skanonikalizowane — ale te dwa elementy na siebie oddziałują i błąd niszczy klastry:
- Canonicale samoodnoszące są bezpieślnym domyślnym wyborem. Każda wersja językowa powinna mieć canonical wskazujący na nią samą. Jeśli strona hiszpańska ma canonical wskazujący na angielską, mówisz Google, że hiszpański URL nie jest tym do zindeksowania — a hreflang wskazujący na niekanoniczny URL jest jednym z częstszych błędów.
- Przypadek brzegowy tego samego języka w wielu krajach. Gdy masz na przykład strony
en-usien-gbniemal identyczne, Google może je skonsolidować i zindeksować jedną — ale nadal może podmienić wyświetlany URL w SERP-ie na właściwą wersję krajową za pomocą linków hreflang. URL „usunięty przez canonicalizację” może więc nadal pojawić się właściwemu użytkownikowi. To funkcja, nie błąd, ale zaskakuje osoby audytujące pokrycie indeksu. - noindex i robots.txt. Strona zablokowana przed indeksowaniem nie może uczestniczyć w klastrze — jej hreflang nie może zostać użyty, a wskazywanie na URL bez indeksowania lub zablokowany psuje link zwrotny. Nie blokuj ani nie oznaczaj jako noindex wariantów językowych, które chcesz serwować.
Cytat źródłowy: “canonicalized-away”
To wskazówka, nie dyrektywa
To sposób ujęcia, który trzeba zapamiętać. W maju 2025 r. na Bluesky John Mueller odpowiedział na przypadek stron fr-be pojawiających się w wynikach fr mimo prawidłowego hreflang: “hreflang doesn’t guarantee indexing, so it can also just be that not all variations are indexed,” oraz “I suspect this is a ‘same language’ case where our systems just try to simplify things for sites.” Google zastrzega sobie możliwość nadpisania hreflang z powodu konsolidacji tego samego języka, luk w indeksowaniu albo własnych wyborów canonicali.
Cytat źródłowy: “hreflang doesn’t guarantee indexing, so it can also just be that not all variations are indexed,”
Cytat źródłowy: “I suspect this is a ‘same language’ case where our systems just try to simplify things for sites.”
Wytyczne Google dotyczące canonicalizacji są drugą stroną tego zagadnienia: zalecają wybranie canonicala w tym samym języku co strona (albo najlepszego dostępnego zamiennika) i mówią, że Google preferuje URL-e należące do kompletnego, wzajemnego klastra hreflang zamiast podobnych URL-i znajdujących się poza nim. To preferencja, a nie obietnica — prawidłowo zbudowany klaster zwiększa szanse wybrania właściwego URL-a, ale nie gwarantuje indeksowania ani tego, który URL zostanie wyświetlony.
Praktyczna konsekwencja: błędny hreflang jest ignorowany, a nie karany. Jeśli klaster jest uszkodzony, Google wraca do własnego wykrywania języka i regionu. Kosztem jest utracona okazja (niektórym użytkownikom pokazuje się zły URL), a nie spadek pozycji. „Mój hreflang jest błędny” rzadko oznacza sytuację awaryjną — ale równie rzadko oznacza, że tag robi coś pożytecznego.
Cytat źródłowy: “my hreflang is wrong”
Bing i inne wyszukiwarki korzystają z innego stosu
Hreflang jest sygnałem Google (i Yandexa). Stos sygnałów Binga jest zupełnie inny. Fabrice Canel, Principal Program Manager w Microsoft Bing, powiedział wprost, że “hreflang is indeed a far weaker signal than content-language at Bing.” Bing opiera się na nagłówku HTTP lub metatagu content-language, atrybucie <html lang="">, linkach przychodzących, geografii odwiedzających i lokalizacji serwera/ccTLD, a Canel odradzał w większości przypadków „duplikowanie URL-i tylko po to, by oznaczyć je tagami tych rynków językowych”. Baidu w ogóle nie obsługuje hreflang (opiera się na lokalizacji hostingu, chińskiej rejestracji domeny, licencji ICP i języku treści). Solidna konfiguracja międzynarodowa łączy więc hreflang dla Google z prawidłowym content-language i html lang dla pozostałych wyszukiwarek.
Cytat źródłowy: “hreflang is indeed a far weaker signal than content-language at Bing.”
Cytat źródłowy: “duplicating URLs just to have them tagged with these language-markets”
Historia współczynnika błędów
Gdy przeprowadziłem największe dotąd badanie hreflang w Ahrefs — 374 756 domen, niemal 10 razy więcej niż w jakimkolwiek wcześniejszym badaniu — ponad 67% domen używających hreflang miało co najmniej jeden problem. Rozkład wyglądał tak:
| Problem | % domen |
|---|---|
| Brak x-default | 56,3% |
| Brak tagów samoodnoszących | 18,0% |
| Odwołania do uszkodzonych/przekierowanych stron | 16,9% |
| Brak tagów wzajemnych | 15,3% |
| Wskazywanie na niekanoniczne URL-e | 8,0% |
| Nieprawidłowe kody języka/kraju | 4,6% |
| Niespójne atrybuty języka | 3,2% |
| Wiele stron dla tego samego języka | 2,5% |
| Ta sama strona dla wielu języków | 2,5% |
Podsumowanie mojego badania nadal obowiązuje: hreflang jest złożony i trudny do prawidłowego wdrożenia, a zepsuć go można na wiele różnych sposobów.
Audyt na dużą skalę — wizualizuj klaster, nie czytaj arkusza
Zobacz własny klaster za pomocą returntag:
- Wklej do narzędzia URL jednej strony, URL sitemap albo listę URL-i stron.
- Kliknij Validate cluster.
- Przeczytaj widok GRAPH — uszkodzone lub brakujące linki zwrotne wyróżniają się kolorem zależnym od ważności — albo przełącz się na MATRIX dla widoku wiersz po wierszu i wyeksportuj plik CSV z listą poprawek, jeśli chcesz przekazać go komuś innemu.
Powód, dla którego błędy hreflang się ukrywają, jest taki, że problem z tagiem zwrotnym to relacja między stronami, a relacje są niemal niemożliwe do odczytania w wierszach arkusza. Ahrefs Site Audit był pierwszym narzędziem, które pokazało klaster hreflang jako graf — otwórz szczegóły URL-a dowolnej strony, a karta Hreflangs narysuje cały klaster jako sieć, z uszkodzonymi stronami i brakującymi/nieprawidłowymi linkami wyróżnionymi na czerwono. Od razu zobaczysz, którego tagu zwrotnego brakuje albo który link dodano przez pomyłkę — i znacznie łatwiej pokazać to interesariuszowi niż plik CSV. Site Audit wykonuje także leżące u podstaw kontrole (nieprawidłowa adnotacja, brak samoodniesienia, więcej niż jedna strona na język, niezgodność hreflang/html lang, brak tagu wzajemnego, niekanoniczny cel, uszkodzony cel), które bezpośrednio odpowiadają liście błędów z badania.
Poza tym:
- Inspekcja URL-a w GSC potwierdza, jak pojedynczy URL został zcrawlowny i zindeksowany. Pamiętaj, że stary raport Targetowanie międzynarodowe został wycofany 22 września 2022 r. — Google powiedziało, że “had little value for the ecosystem.” Same tagi hreflang nadal działają; zniknął tylko raport.
- Ręczne testowanie SERP-ów z parametrami
&hl=(język hosta) i&gl=(geolokalizacja) w URL-u wyszukiwania Google pozwala podejrzeć wyniki dla danej lokalizacji.
Hreflang jest także elementem audytu technicznego SEO
Choć hreflang należy do obszaru międzynarodowego SEO, pojawia się niemal w każdym audycie technicznego SEO witryny wielojęzycznej lub wieloregionalnej — znajduje się obok canonicalizacji, indeksowania i dostępności dla crawlerów, a także jest jednym z elementów najczęściej psujących się po cichu. Jeśli przeprowadzasz audyt techniczny, a witryna ma więcej niż jedną lokalizację, klaster hreflang należy do checklisty.
Co dalej
Ten hub jest mapą podklastra hreflang. Pierwsze pogłębienie:
- x-default — wartość zapasowa dla użytkowników, których lokalizacja nie pasuje do żadnego jawnego tagu (selektor kraju lub globalna strona główna). Nie jest wymagana, ale w moim badaniu była zdecydowanie najczęstszym pominięciem (56,3% witryn). Osobny temat wyjaśnia, kiedy jej używać, kiedy ją pomijać i jak współdziała z resztą klastra.
Szerszą strategię, którą to wdrożenie realizuje, opisuje filar International SEO — hreflang jest warstwą techniczną strategii międzynarodowej; nie zastępuje prawdziwej lokalizacji (lokalnej intencji, lokalnej treści i lokalnego autorytetu).
Podsumowanie AI
Skrócona wersja karty Advanced:
- Hreflang to wzajemny sygnał klastra, a nie tag przypisany do strony — i tylko sygnał, którego Google może użyć do wyboru zlokalizowanego URL-a, nie gwarancja indeksowania, pozycji, ruchu, wyświetlenia URL-a ani cytowania przez AI. Każda strona wymienia siebie i wszystkie alternatywy; brak tagu zwrotnego unieważnia tę parę, choć Google nadal może przetwarzać prawidłowo wzajemne pary w innym miejscu klastra.
- Trzy metody, wybierz jedną: tagi HTML
<head>, nagłówki HTTPLink(jedyna opcja dla PDF-ów) albo sitemap XML (najlepsza na dużą skalę i najłatwiejsza do kontroli). Google traktuje wszystkie trzy jako równoważne — użycie więcej niż jednej nie daje korzyści w wyszukiwaniu, a żadna nie jest „szybsza” (obie są rozwiązywane podczas crawlowania). - Kody: język ISO 639-1 plus opcjonalny region ISO 3166-1 alpha-2.
en-GB, nieen-UK; zarezerwowane kody, takie jakEU/UN/UK, nie mają wpływu jako regiony. Możesz kierować sam język, ale nigdy sam region. Wymagane są bezwzględne URL-e. (Szerszy standard BCP 47, na którym opiera się hreflang, dopuszcza także podtagi skryptów, takie jakzh-Hant— udokumentowany przez Google kontrakt hreflang nie sięga tak daleko.) - Wskazówka, nie dyrektywa (Mueller, maj 2025): błędny hreflang jest ignorowany, a nie karany; Google może go nadpisać z powodów konsolidacji tego samego języka lub indeksowania.
- Canonicalizacja: canonicale samoodnoszące są bezpieślnym domyślnym wyborem; Google preferuje URL-e w kompletnym, wzajemnym klastrze zamiast podobnych URL-i poza nim, ale to preferencja, a nie obietnica. Kierowanie hreflang na niekanoniczny, przekierowany, uszkodzony URL albo URL bez indeksowania psuje klaster.
- Bing działa inaczej: hreflang to w Bingu “a far weaker signal than content-language” (Canel). Łącz hreflang (Google/Yandex) z
content-languageihtml langdla pozostałych. Baidu w ogóle tego nie obsługuje. - Psuje się stale: w moim badaniu Ahrefs 67%+ domen używających hreflang, spośród 374 756, miało problem; najczęstszy brak dotyczył x-default (56,3%).
- Audytuj wizualnie: karta Hreflangs w Ahrefs Site Audit jako pierwsza narysowała klaster jako graf z błędami zaznaczonymi na czerwono — znacznie lepiej niż arkusz. Raport GSC Targetowanie międzynarodowe wycofano 22 września 2022 r.
Cytat źródłowy: “faster”
Cytat źródłowy: “a far weaker signal than content-language at Bing”
Element kodu źródłowego: html lang
Oficjalna dokumentacja
Dokumentacja źródeł pierwotnych wyszukiwarek.
- Zlokalizowane wersje stron — podstawowa dokumentacja hreflang: trzy metody, wymóg wzajemności, prawidłowe kody i zasada bezwzględnych URL-i.
- Zarządzanie witrynami wieloregionalnymi i wielojęzycznymi — sygnały geotargetowania używane i nieużywane przez Google, warianty struktury URL-i oraz ostrzeżenie przed automatycznymi przekierowaniami.
- Poinformuj Google o zlokalizowanych wersjach (wpis o x-default z 2013 r.) — pierwotne wprowadzenie
x-default. - Wycofanie raportu Targetowanie międzynarodowe (wrzesień 2022 r.) — dlaczego raport usunięto i czego używać zamiast niego.
Bing / Microsoft
- Seria Bingbot: maksymalizacja efektywności crawlowania — kontekst tego, jak Bing postrzega witryny międzynarodowe i wielojęzyczne; Bing stawia
content-languagewyżej niż hreflang. - Bing Webmaster Tools — pomoc i instrukcje — wytyczne dla webmasterów Binga, w tym preferowanie sygnałów
content-languageihtml lang.
Cytaty ze źródła
Wypowiedzi Google i Binga z nazwiskami autorów.
Google — wzajemność to podstawowa zasada
- “Each language version must list itself as well as all other language versions.” — dokumentacja Google Search Central. Przejdź do cytatu
- “If two pages don’t both point to each other, the tags will be ignored.” — dokumentacja Google Search Central. Przejdź do cytatu
- “Alternate URLs must be fully-qualified, including the transport method (http/https).” — dokumentacja Google Search Central. Przejdź do cytatu
John Mueller, Google — wskazówki, nie dyrektywy
- “hreflang doesn’t guarantee indexing, so it can also just be that not all variations are indexed.” — John Mueller, Search Advocate, Google (Bluesky, maj 2025). Omówienie
- O tagach samoodnoszących: samoodnoszące hreflang są “optional—but good practice.” — John Mueller, Google. Źródło
Fabrice Canel, Microsoft Bing — słabszy sygnał w Bingu
- “hreflang is indeed a far weaker signal than content-language at Bing.” — Fabrice Canel, Principal Program Manager, Microsoft Bing. Omówienie
Cytat źródłowy: “hints not directives”
Checklista wdrożenia hreflang
Przed uruchomieniem
- Wybrano jedną metodę wdrożenia (head HTML / nagłówki HTTP / sitemap XML) i użyto jej konsekwentnie — bez łączenia metod.
- Każda strona wymienia siebie (tag samoodnoszący) i wszystkie alternatywy.
- Odwołania są wzajemne — jeśli A wskazuje na B, B wskazuje z powrotem na A.
- Kody języka są prawidłowe według ISO 639-1, a kody regionu według ISO 3166-1 alpha-2 (
en-GB, nieen-UK;ja, niejp). - URL-e są bezwzględne i w pełni kwalifikowane (
https://…) oraz odpowiadają formie faktycznie indeksowanej przez Google (końcowy ukośnik, www, protokół, wielkość liter). - Dodano
x-default, jeśli istnieje selektor kraju lub globalny fallback (opcjonalne, ale najczęściej pomijane — zobacz temat x-default). - Tagi hreflang są w
<head>(albo w nagłówku HTTP/sitemap), nigdy nie są wstrzykiwane do<body>przez JS ani uszkodzony HTML. - Każdy wariant ma canonical wskazujący na siebie — żaden canonical nie wskazuje innej wersji językowej.
- Żaden wariant nie ma noindex ani nie jest zablokowany w robots.txt.
- Dla Binga/Baidu: ustaw prawidłowe
content-languagei<html lang>— nie polegaj tam na hreflang.
Audyt po uruchomieniu
- Uruchomiono Ahrefs Site Audit i otwarto kartę Hreflangs — sprawdzono czerwone (uszkodzone) strony oraz brakujące/nieprawidłowe linki zwrotne w grafie klastra.
- Rozwiązano standardowe kontrole Site Audit: nieprawidłowa adnotacja, brak samoodniesienia, brak tagu wzajemnego, niekanoniczny cel, uszkodzony/przekierowany cel, więcej niż jedna strona na język, niezgodność hreflang/
html lang. - Wyrywkowo sprawdzono kilka URL-i za pomocą inspekcji URL-a w GSC (raport Targetowanie międzynarodowe wycofano we wrześniu 2022 r. — nie szukaj go).
- Ręcznie podejrzano wyniki lokalizacji za pomocą parametrów
&hl=i&gl=w URL-u wyszukiwania Google. - Przeprowadzono ponowny audyt po każdej zmianie URL-a, przekierowaniu lub dodaniu lokalizacji — wtedy tagi zwrotne zaczynają gnić.
Ściąga hreflang
Format kodu
hreflang="<language>" lub hreflang="<language>-<region>"
- Język — ISO 639-1, dwie litery (wymagany).
- Region — ISO 3166-1 alpha-2, dwie litery (opcjonalny, zawsze po języku).
- Sam język (
es) jest kierowany do osób mówiących tym językiem wszędzie; język plus region (es-MX) do osób mówiących tym językiem w danym kraju. - Nie możesz kierować samego regionu — najpierw zawsze występuje język.
x-defaultto wartość zapasowa dla niedopasowanych lokalizacji.
Częste kody (i te, z którymi ludzie mylą się najczęściej)
| Potrzeba | Poprawnie | Częsty błąd |
|---|---|---|
| Angielski (USA) | en-US | — |
| Angielski (Wielka Brytania) | en-GB | en-UK ❌ (uk = ukraiński) |
| Hiszpański (Meksyk) | es-MX | — |
| Japoński | ja | jp ❌ |
| Chiński (uproszczony, Chiny) | zh-CN | cn ❌ |
| Niemiecki | de | ger ❌ (trzy litery) |
| Wszyscy hiszpańskojęzyczni | es | es-ES (zawęża zbyt mocno) |
| Globalny fallback | x-default | pominięcie (robi to 56,3%) |
Zarezerwowane / unikaj: EU, UN, UK jako kody regionów — nie są prawidłowymi celami regionów ISO 3166-1 alpha-2.
Metoda wdrożenia — kiedy używać której
| Metoda | Gdzie się znajduje | Najlepsza dla | Uważaj na |
|---|---|---|---|
Tagi HTML <head> | <head> każdej strony | małe/średnie witryny | ciężar znaczników; tagi w <body> są nieprawidłowe |
Nagłówki HTTP Link | nagłówki odpowiedzi serwera | pliki inne niż HTML (PDF-y) | wymaga konfiguracji serwera/CDN-u |
| Sitemap XML | centralne wpisy xhtml:link | duże witryny, wiele lokalizacji | wymaga przestrzeni nazw xmlns:xhtml; zachowaj synchronizację |
Wybierz jedną metodę dla witryny. Żadna nie jest „szybsza” — wszystkie są rozwiązywane podczas crawlowania. Sitemap najłatwiej kontrolować, ponieważ cały klaster znajduje się w jednym pliku.
Cytat źródłowy: “faster”
Zasady — po jednej linii
- Wzajemność: A → B wymaga B → A, inaczej para jest ignorowana.
- Samoodnoszenie: każda strona wymienia siebie („opcjonalne, ale dobra praktyka”).
- Bezwzględne URL-e: w pełni kwalifikowane
https://…, zgodne z formą zindeksowaną. - Wskazówka, nie dyrektywa: błędny hreflang jest ignorowany, a nie karany.
Cytat źródłowy: “optional—but good practice”
Zasoby warte uwagi
Moje powiązane teksty
- Hreflang: prosty przewodnik dla początkujących — mój przewodnik Ahrefs: definicja, składnia, trzy metody, dziewięć częstych problemów i ich naprawa oraz audyt z wizualizacją klastra.
- Ponad 67% domen używających hreflang ma problemy — moje badanie hreflang obejmujące 374 756 domen, największe w historii, będące źródłem rozkładu współczynników błędów.
Moje wystąpienia
- Badanie hreflang i ciekawe problemy — Brighton SEO 2023 — prezentacja stojąca za badaniem, a także najbardziej szczegółowe dopasowanie Google (język+kraj → język → x-default) i najczęstsze błędy kodów.
- International SEO: Dziwne elementy techniczne — Pubcon Vegas 2019 — nieoczywiste szczegóły: hreflang zależy od tego, co jest zindeksowane (nie skanonikalizowane), HTML i sitemap są rozwiązywane tak samo, wstrzykiwanie do sekcji head psuje tagi, a automatyczne przekierowania zagrażają zarówno usunięciem z indeksu, jak i unijnym zasadom przeciw geoblokowaniu.
- Międzynarodowe SEO doprowadzi Cię do błędów — Pubcon Vegas 2017 — ekosystem chaosu wdrożeniowego: narzędzia podające błędne informacje, treść serwowana z innych URL-i niż zindeksowane oraz zduplikowane strony.
Od innych
- Google: Zlokalizowane wersje stron — podstawowa dokumentacja; warto przeczytać ją w całości przed wdrożeniem.
- Google: Zarządzanie witrynami wieloregionalnymi i wielojęzycznymi — sygnały geotargetowania używane przez Google (i jawnie ignorowane), warianty struktury URL-i oraz ostrzeżenie przed automatycznymi przekierowaniami.
- Google przypomina, że tagi hreflang są wskazówkami, nie dyrektywami — Search Engine Journal, maj 2025 r. — omówienie wyjaśnienia Johna Muellera na Bluesky dotyczącego nadpisywania konsolidacji tego samego języka.
- Bing mówi, że hreflang jest słabym sygnałem dla jego wyszukiwarki — SEO Round Table — wypowiedź Fabrice’a Canela, że
content-languagema w Bingu większą wagę niż hreflang. - Hreflang: ujawniona magiczna sztuczka — GSQI — cytaty Muellera wyjaśniające, jak Google może wyświetlić w SERP-ach skanonikalizowany URL za pomocą hreflang (przypadek brzegowy tego samego języka w wielu krajach).
- r/TechSEO — społeczność do debugowania uszkodzonych klastrów hreflang.
Dziennik zmian
Zaktualizowano 28 lip 2026.
Podsumowanie redakcyjne i zapisane szczegóły zmian.Szczegóły zmian
-
Szczegółowe uwagi dotyczące zmian są obecnie dostępne po angielsku.
Pełne porównanie jest niedostępne — dla tej wersji nie zarchiwizowano wcześniejszej migawki.
Zaktualizowano 18 lip 2026.
Podsumowanie redakcyjne i zapisane szczegóły zmian.Szczegóły zmian
-
Szczegółowe uwagi dotyczące zmian są obecnie dostępne po angielsku.
-
Szczegółowe uwagi dotyczące zmian są obecnie dostępne po angielsku.
-
Szczegółowe uwagi dotyczące zmian są obecnie dostępne po angielsku.
-
Szczegółowe uwagi dotyczące zmian są obecnie dostępne po angielsku.
-
Szczegółowe uwagi dotyczące zmian są obecnie dostępne po angielsku.
Pełne porównanie jest niedostępne — dla tej wersji nie zarchiwizowano wcześniejszej migawki.