Hreflang i strona wielojęzyczna od strony technicznej

Hreflang SEO to atrybut HTML, który mówi Google, która wersja językowa strony odpowiada danemu użytkownikowi. Dowiedz się, jak go poprawnie wdrożyć.

SEO techniczne
11 min

Hreflang SEO (krótka odpowiedź)

Hreflang to atrybut HTML, który informuje Google, w jakim języku i dla jakiego regionu przeznaczona jest dana wersja strony. Wdrażasz go jako znaczniki w kodzie HTML, w pliku sitemap XML lub w nagłówkach HTTP. Dzięki niemu Google wyświetla użytkownikowi poprawną wersję językową, zamiast serwować na przykład polską wersję komuś szukającemu z Niemiec.

Bez hreflang wielojęzyczna strona może trafiać do złych odbiorców, tracić widoczność na rynkach docelowych i wytwarzać pozorne zduplikowanie treści między wersjami językowymi. To temat typowo techniczny, ale konsekwencje jego zaniedbania są odczuwalne w liczbach: mniejszy ruch, niższy CTR, słabsze pozycje na rynkach zagranicznych.

W tym artykule wyjaśniamy, jak działa hreflang, jak go poprawnie zaimplementować, jakich błędów unikać i kiedy w ogóle go potrzebujesz. Piszemy z perspektywy technicznej, ale tak, żeby mógł to zrozumieć właściciel firmy bez zaplecza programistycznego.

Czym jest hreflang i jak działa

Atrybut hreflang pojawił się w 2011 roku jako odpowiedź Google na rosnącą liczbę wielojęzycznych serwisów. Jego zadaniem jest wskazanie robotowi Google relacji między różnymi wersjami językowymi tej samej strony. Jeśli masz stronę po polsku, angielsku i niemiecku, hreflang mówi Google, że to ta sama treść, a nie trzy osobne dokumenty z duplikatem.

Składnia podstawowego znacznika wygląda tak:

<link rel="alternate" hreflang="pl" href="https://twoja-strona.pl/pl/oferta/" />
<link rel="alternate" hreflang="en" href="https://twoja-strona.pl/en/offer/" />
<link rel="alternate" hreflang="de" href="https://twoja-strona.pl/de/angebot/" />
<link rel="alternate" hreflang="x-default" href="https://twoja-strona.pl/oferta/" />

Wartość atrybutu hreflang to kod języka zgodny z normą ISO 639-1, opcjonalnie rozszerzony o kod kraju ISO 3166-1 Alpha-2. Możesz użyć samego pl dla polskojęzycznych użytkowników bez wskazania kraju albo pl-PL dla polskiego w Polsce lub pl-CH dla polskiego w Szwajcarii, gdy te treści faktycznie się różnią.

Wartość x-default jest specjalna. Wskazuje wersję domyślną dla użytkowników, którzy nie pasują do żadnego z wymienionych języków ani regionów. Najczęściej kieruje do strony głównej w języku angielskim lub do strony z wyborem języka.

Kiedy hreflang jest potrzebny

Nie każda wielojęzyczna strona wymaga hreflang w pierwszej kolejności. Warto sprawdzić, czy Twoja sytuacja faktycznie go uzasadnia.

01

Kilka wersji językowych tej samej treści

Masz stronę po polsku i po angielsku z tymi samymi usługami opisanymi w obu językach. Bez hreflang Google może traktować je jako duplikaty.

02

Ten sam język, różne rynki regionalne

Sprzedajesz po polsku zarówno w Polsce, jak i Polonii w Niemczech albo USA. Treści są niemal identyczne, ale skierowane do różnych grup.

03

Różne ceny lub oferty dla różnych rynków

Twoja strona angielska ma inne ceny dla UK i dla USA. Hreflang z kodem kraju pozwala wskazać właściwą wersję dla każdego rynku.

04

Niska widoczność na rynkach zagranicznych

Masz ruch z zagranicy, ale odbiorcy lądują na stronie w złym języku i szybko ją opuszczają. To typowy objaw braku hreflang.

Hreflang nie jest potrzebny, gdy masz jedną stronę w jednym języku. Nie jest też potrzebny, jeśli różne wersje językowe są całkowicie osobnymi domenami bez żadnego technicznego powiązania, chociaż wtedy i tak warto go rozważyć ze względu na sygnały SEO.

Trzy metody wdrożenia hreflang

Hreflang możesz wdrożyć na trzy sposoby. Każdy ma inne zastosowanie, a wybór zależy od struktury technicznej serwisu.

Metoda 1: Znaczniki w sekcji HEAD

Najprostsza i najczęstsza metoda. Umieszczasz znaczniki <link rel="alternate" hreflang="..."> w sekcji <head> każdej strony. Kluczowa zasada: każda strona musi zawierać komplet znaczników dla wszystkich wersji językowych, łącznie z odnośnikiem do samej siebie.

<!-- Na stronie polskiej /pl/kontakt/ -->
<head>
  <link rel="alternate" hreflang="pl" href="https://example.com/pl/kontakt/" />
  <link rel="alternate" hreflang="en" href="https://example.com/en/contact/" />
  <link rel="alternate" hreflang="de" href="https://example.com/de/kontakt/" />
  <link rel="alternate" hreflang="x-default" href="https://example.com/en/contact/" />
</head>

Pominięcie którejkolwiek z wersji sprawia, że Google widzi niesymetryczny zestaw sygnałów i może zignorować całą grupę.

Metoda 2: Sitemap XML

Bardziej skalowalna dla dużych serwisów. Zamiast wstawiać znaczniki w kod każdej podstrony, dodajesz odpowiednie wpisy do pliku sitemap.xml. To rozwiązanie używa przestrzeni nazw xhtml:

<url>
  <loc>https://example.com/pl/oferta/</loc>
  <xhtml:link rel="alternate" hreflang="pl" href="https://example.com/pl/oferta/"/>
  <xhtml:link rel="alternate" hreflang="en" href="https://example.com/en/offer/"/>
  <xhtml:link rel="alternate" hreflang="de" href="https://example.com/de/angebot/"/>
  <xhtml:link rel="alternate" hreflang="x-default" href="https://example.com/en/offer/"/>
</url>

Ta metoda działa dobrze przy setkach lub tysiącach podstron, gdzie ręczne edytowanie kodu każdej strony byłoby niepraktyczne.

Metoda 3: Nagłówki HTTP

Dedykowana dla plików, które nie mają sekcji HTML, na przykład dokumentów PDF. Serwer zwraca nagłówek Link z odpowiednimi wartościami. Jest to rzadko stosowana metoda i ma sens tylko dla konkretnych typów zasobów.

Opcja A

Znaczniki w HEAD

  • Łatwe wdrożenie w CMS
  • Działa niezależnie od sitemapa
  • Trudniejsze do utrzymania przy dużej liczbie stron
  • Ryzyko pominięcia strony przy dodawaniu nowych

Opcja B

Sitemap XML

  • Skalowalne dla dużych serwisów
  • Jeden plik do zarządzania
  • Wymaga aktualizacji przy każdej nowej podstronie
  • Nie działa offline, wymaga poprawnego serwowania sitemapa

Struktura URL a hreflang

Przed wdrożeniem hreflang trzeba zdecydować, jak zorganizować adresy URL dla różnych wersji językowych. Google akceptuje kilka podejść, każde ma inne implikacje SEO.

StrukturaPrzykładUwagi
Oddzielna domena ccTLDexample.pl, example.deNajsilniejszy sygnał geograficzny, wysoki koszt utrzymania
Subdomena z kodem językapl.example.com, de.example.comWyraźny podział, ale nieco słabszy niż ccTLD
Podkatalog z kodem językaexample.com/pl/, example.com/de/Najczęstsze rozwiązanie, prosty w utrzymaniu
Parametr URLexample.com?lang=plNiepolecane przez Google, trudniejsze do obsługi przez roboty

Dla większości firm wybór podkatalogów jest optymalny. Cały autorytet domeny gromadzi się w jednym miejscu, a struktura URL jest czytelna zarówno dla Google, jak i dla użytkowników. Jeśli planujesz budować silną pozycję na konkretnym rynku krajowym, ccTLD daje wyraźniejszy sygnał geograficzny, ale wymaga osobnych zasobów na budowanie autorytetu każdej domeny z osobna. Więcej o technicznej stronie pozycjonowania przeczytasz w artykule czym jest local SEO.

Najczęstsze błędy w implementacji hreflang

Hreflang jest podatny na błędy, które mogą sprawić, że Google całkowicie zignoruje cały zestaw znaczników. Poniżej błędy, które pojawiają się najczęściej w praktyce.

Brak odnośnika do samej siebie. Każda wersja językowa musi wskazywać sama na siebie. Jeśli strona polska zawiera znaczniki dla wersji polskiej, angielskiej i niemieckiej, ale nie ma znacznika hreflang="pl" prowadzącego do samej siebie, Google może potraktować zestaw jako niekompletny.

Niesymetryczne znaczniki. Jeśli strona A wskazuje na stronę B przez hreflang, strona B musi wskazywać z powrotem na stronę A. Brak tej symetrii to najczęstszy błąd przy dużych serwisach. Google oficjalnie wymaga potwierdzenia z obu stron (Google Search Central).

Niepoprawne kody językowe lub regionalnych. Kod języka musi być zgodny z ISO 639-1, a kod kraju z ISO 3166-1 Alpha-2. EN zamiast en, PL-pl zamiast pl-PL albo użycie nazwy kraju zamiast kodu to błędy, przez które Google ignoruje znaczniki.

Adresy URL z błędami lub przekierowaniami. Jeśli URL podany w hreflang zwraca błąd 404, jest przekierowany lub nie jest dostępny dla Googlebota, znacznik nie działa. Weryfikuj adresy przed wdrożeniem i po każdej zmianie struktury URL.

Użycie hreflang na stronach z noindex. Strona oznaczona dyrektywą noindex nie powinna być częścią zestawu hreflang. Google może zignorować cały klaster, jeśli jedna ze stron jest wykluczona z indeksu.

Jak zweryfikować poprawność wdrożenia

Po wdrożeniu hreflang weryfikacja jest obowiązkowa. Błędna implementacja jest gorsza niż brak implementacji, bo wysyła do Google sprzeczne sygnały.

Przeciągnij01 / 00
  1. 01

    Google Search Console

    W raporcie Internacjonalizacja (zakładka Indeksowanie) znajdziesz listę błędów hreflang wykrytych przez Google: brak wskazania zwrotnego, niepoprawne kody, adresy URL z błędami.

  2. 02

    Hreflang Tags Testing Tool

    Narzędzia takie jak Aleyda Solis Hreflang Tags Generator lub Screaming Frog SEO Spider pozwalają przeskanować cały serwis i sprawdzić symetrię wszystkich wskazań.

  3. 03

    Ręczna weryfikacja w kodzie źródłowym

    Otwórz kilka stron z różnych wersji językowych i sprawdź źródło HTML. Powinny znajdować się tam kompletne zestawy znaczników ze wskazaniami do wszystkich wersji.

  4. 04

    Sprawdzenie w Google (site:)

    Wyszukaj 'site:example.com/pl/' i 'site:example.com/en/' i sprawdź, czy Google indeksuje oba zestawy URL. Brak indeksowania jednej wersji to sygnał problemu.

Czas potrzebny Google na przetworzenie zmian w hreflang zależy od częstotliwości crawlowania serwisu. Przy regularnie aktualizowanej stronie efekty widać zwykle po kilku tygodniach. Przy nowych serwisach może to zająć dłużej. Jak monitorować wyniki pozycjonowania, opisujemy w artykule ile czasu trwa pozycjonowanie strony.

Przetwarzanie zmian hreflang przez Google

Dane poglądowe. Czas indeksowania zależy od częstotliwości crawlowania serwisu.

Hreflang a pozycjonowanie wielojęzyczne

Hreflang sam w sobie nie jest czynnikiem rankingowym w sensie bezpośrednim. Nie sprawi, że strona skoczy na wyższe pozycje. Jego rola jest inna: zapobiega rozpraszaniu autorytetu i sygnałów SEO między wersje językowe oraz sprawia, że właściwa wersja trafia do właściwego użytkownika.

Dla pozycjonowania wielojęzycznego ma to konkretne przełożenie. Użytkownik, który trafia na stronę w swoim języku, spędza na niej więcej czasu, wyższy jest jego wskaźnik zaangażowania, mniejszy współczynnik odrzuceń. Google traktuje te sygnały behawioralne jako pośredni wskaźnik jakości strony. Strony z wyższym CTR i dłuższym czasem sesji mają tendencję do utrzymywania wyższych pozycji (Backlinko, Google CTR Stats).

27,6%

CTR pierwszego wyniku organicznego

Backlinko, Google CTR Stats

Ważnym elementem strategii wielojęzycznej jest też dobór słów kluczowych osobno dla każdego rynku. Tłumaczenie polskich fraz kluczowych jeden do jednego na inne języki rzadko działa. Każdy rynek szuka inaczej, używa innych sformułowań i ma inne intencje. Jak dobierać słowa kluczowe, opisujemy w artykule co to są słowa kluczowe i jak je dobierać. Dla firm chcących dotrzeć do klientów w konkretnych miastach pomocny jest też artykuł o pozycjonowaniu stron.

Hreflang w popularnych platformach CMS

Jeśli serwis stoi na popularnej platformie, wdrożenie hreflang często nie wymaga pisania kodu od zera.

WordPress z WPML lub Polylang. Oba wtyczki generują znaczniki hreflang automatycznie przy poprawnej konfiguracji wersji językowych. WPML jest bardziej rozbudowane i płatne, Polylang ma darmowy wariant dla prostych serwisów.

Nuxt 3. Moduł @nuxtjs/i18n obsługuje hreflang jako część standardowej obsługi internacjonalizacji. Po konfiguracji pliku i18n.config.ts z listą obsługiwanych języków moduł generuje kompletne zestawy znaczników dla każdej podstrony. Nie musisz ich wstawiać ręcznie.

Webflow. Webflow Localization (funkcja premium) obsługuje hreflang od 2023 roku. Przy konfiguracji poprzez lokalizacje Webflow dodaje znaczniki automatycznie.

Własny kod (Next.js, Astro, SvelteKit). Każdy framework ma własny sposób zarządzania metadanymi w sekcji <head>. Najczęściej generujesz znaczniki programatycznie na podstawie listy dostępnych tłumaczeń dla danej trasy.

Hreflang a canonicale

Dwa atrybuty SEO, które często pojawiają się razem przy wielojęzycznych serwisach, to hreflang i canonical. Ich interakcja bywa przyczyną nieporozumień.

Canonical wskazuje Google, która wersja strony jest "główną" w przypadku duplikatów treści. Hreflang wskazuje wersje językowe przeznaczone dla różnych odbiorców. Oba mogą współistnieć na tej samej stronie, ale muszą być spójne.

Zasada jest prosta: jeśli strona ma canonical wskazujący na inny URL, hreflang na tej stronie nie będzie respektowany, bo Google uznaje stronę za wtórną. Każda strona w zestawie hreflang powinna mieć canonical wskazujący na siebie samą, czyli tak zwany self-referencing canonical. To potwierdza Google, że dana wersja językowa jest samodzielnym, indeksowalnym dokumentem.

11

Najczęstsze pytania

Czy muszę wdrożyć hreflang, jeśli mam tylko polską i angielską wersję strony?

Tak, jeśli obie wersje są dostępne i indeksowalne. Nawet przy dwóch wersjach językowych hreflang zapobiega traktowaniu tłumaczenia jako duplikatu i pomaga Google wyświetlać właściwą wersję użytkownikom z różnych regionów. Wdrożenie dla dwóch języków to kwestia kilkunastu minut przy metodzie znaczników w HEAD.

Co się stanie, jeśli nie wdrożę hreflang na wielojęzycznej stronie?

Google będzie próbował samodzielnie ustalić, którą wersję pokazać użytkownikowi, bazując na sygnałach z URL, treści i geolokalizacji. W praktyce często serwuje złą wersję lub traktuje wersje językowe jako zduplikowaną treść. Efektem jest niższy ruch na rynkach zagranicznych i potencjalne kanibalizowanie się wersji językowych w wynikach. Więcej o technicznych aspektach SEO znajdziesz w artykule ile kosztuje pozycjonowanie stron.

Czy hreflang działa dla innych wyszukiwarek niż Google?

Bing obsługuje hreflang, ale z ograniczeniami i mniejszą precyzją niż Google. Yandex ma własny atrybut do zarządzania wersjami językowymi. Hreflang jest przede wszystkim rozwiązaniem dla Google i to pod kątem Google warto go testować i weryfikować.

Jak często trzeba aktualizować znaczniki hreflang?

Za każdym razem, gdy dodajesz nową wersję językową, nową podstronę lub zmieniasz strukturę URL. Jeśli usuniesz wersję językową, usuń też wszystkie wskazania do niej w pozostałych wersjach. Nieaktualne URL-e w hreflang generują błędy widoczne w Google Search Console i mogą sprawić, że Google zignoruje cały klaster wskazań.

Źródła (2) PokażUkryj
  1. Google Search Central - Zarządzanie wielojęzycznymi wersjami strony (otwiera się w nowej karcie)
  2. Backlinko - Google CTR Stats (otwiera się w nowej karcie)

Czytaj dalej

Pozycjonowanie stron · 8 artykułów

Przeciągnij01 / 00

Gotowi zacząć?

Porozmawiajmy o projekcie

Wystarczy krótki opis projektu. Odpowiemy i przedstawimy propozycję realizacji.

Status
Dostępni pn–pt, 9–17
Kraj
Polska

Usługi

  • Projektowanie UX/UI
  • Wdrożenie
  • Strony internetowe i landing page
  • Sklepy internetowe
  • Systemy dedykowane
  • Funkcje i integracje

Zakres projektu nie jest jeszcze określony?

Proponujemy bezpłatną 20-minutową rozmowę, podczas której pomożemy określić zakres projektu.