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ę.

Opublikowano po raz pierwszy: 25 cze 2026 · Ostatnia aktualizacja: 3 sie 2026 · Advanced
Języki
1 sygnał dowodowy na tej stronie

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 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-UK jest błędne, poprawne jest en-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

Hreflang sits between one piece of content and the right version showing up for each market's search. Źródło: /international-seo/hreflang/

© Patrick Stox LLC · CC BY 4.0 ·

A hreflang cluster is a bidirectional graph — one missing return link breaks just that pair. Źródło: /international-seo/hreflang/

© 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 guidelines

Cytat ź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:link pod każdym <url> z przestrzenią nazw xmlns: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.
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 versions

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, http kontra https, www kontra 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 301 lub 404.
  • Rozjechanie kodów. jp zamiast ja dla japońskiego, kody trzyznakowe tam, gdzie wymagane są dwuznakowe, en-UK zamiast en-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-us i en-gb niemal 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

Over 67% of domains using hreflang have at least one issue — missing x-default is the top offender. Źródło: Data: Ahrefs

Gdy przeprowadziłem największe dotąd badanie hreflang w Ahrefs374 756 domen, niemal 10 razy więcej niż w jakimkolwiek wcześniejszym badaniuponad 67% domen używających hreflang miało co najmniej jeden problem. Rozkład wyglądał tak:

Problem% domen
Brak x-default56,3%
Brak tagów samoodnoszących18,0%
Odwołania do uszkodzonych/przekierowanych stron16,9%
Brak tagów wzajemnych15,3%
Wskazywanie na niekanoniczne URL-e8,0%
Nieprawidłowe kody języka/kraju4,6%
Niespójne atrybuty języka3,2%
Wiele stron dla tego samego języka2,5%
Ta sama strona dla wielu języków2,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:

  1. Wklej do narzędzia URL jednej strony, URL sitemap albo listę URL-i stron.
  2. Kliknij Validate cluster.
  3. 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).

Add an expert note

Pin an expert quote

New person? Create their unclaimed profile at /admin/experts/ → Pin a quote first.