Hreflang – co to jest i jak go wdrożyć?

Hreflang – co to jest i jak go wdrożyć?

Czy Twoja strona internetowa ma wersje w różnych językach lub jest skierowana do klientów z różnych krajów? Jeśli tak, musisz zadbać o to, by każdy użytkownik trafił na właściwą wersję witryny – zgodną z jego językiem i lokalizacją. Właśnie w tym pomaga atrybut hreflang – ważny element międzynarodowego SEO. Wyjaśnimy od podstaw, czym jest hreflang i jak działa.

Czym jest hreflang?

Definicja atrybutu hreflang

Atrybut hreflang to element kodu HTML, który informuje wyszukiwarki internetowe (takie jak Google) o języku danej strony oraz docelowym regionie jej odbiorców. Innymi słowy, za pomocą tego atrybutu możemy wskazać, że posiadamy różne wersje językowe lub regionalne tej samej strony internetowej. Dzięki temu roboty wyszukiwarek lepiej rozumieją strukturę witryny i potrafią wyświetlać użytkownikom właściwą wersję strony, dopasowaną do ich preferencji językowych i geograficznych.

W praktyce atrybut hreflang jest najczęściej umieszczany w sekcji <head> kodu strony, jako część znacznika <link rel="alternate">. Przykładowy kod może wyglądać następująco:

<link rel="alternate" hreflang="pl" href="https://example.com/pl/" />
<link rel="alternate" hreflang="en" href="https://example.com/en/" />

W powyższym przykładzie pierwsza linia informuje, że istnieje wersja strony w języku polskim (kod „pl”), a druga wskazuje wersję angielską (kod „en”). Każdy taki znacznik określa alternatywną wersję bieżącej strony dla innego języka lub regionu. Co ważne – powinno się uwzględniać wszystkie wersje językowe, łącznie z tą, na której znajduje się tag. Oznacza to, że strona w języku polskim powinna zawierać odnośniki do wersji angielskiej (i ewentualnie innych), a strona angielska powinna mieć analogiczne linki do polskiej. W efekcie każda z wzajemnie powiązanych stron „wie” o istnieniu pozostałych wersji i wskazuje na nie.

Jak działa hreflang w praktyce?

Aby lepiej zrozumieć działanie hreflang, wyobraź sobie wielojęzyczną witrynę, która ma osobne wersje dla różnych krajów lub języków. Na przykład Twój sklep internetowy może mieć stronę po polsku, angielsku i niemiecku. Kiedy użytkownik w Polsce wyszukuje Twoją ofertę w Google, algorytm sprawdza preferencje językowe użytkownika oraz analizuje Twoją stronę pod kątem obecności atrybutów hreflang. Jeśli Google znajdzie informację, że posiadasz wersję w języku polskim, wyszukiwarka wyświetli polskiemu użytkownikowi właśnie tę wersję strony w wynikach wyszukiwania. Analogicznie, niemieckojęzyczny internauta otrzyma link do wersji niemieckiej, jeśli taka istnieje.

Proces przebiega następująco:

  1. Użytkownik wpisuje zapytanie w wyszukiwarce (np. frazę dotyczącą Twojego produktu lub usługi).
  2. Wyszukiwarka identyfikuje język preferowany przez użytkownika (może to wynikać z domeny Google, której używa – np. google.de dla Niemiec – lub z ustawień językowych samej przeglądarki).
  3. Roboty indeksujące przeszukują swoją bazę (indeks) w poszukiwaniu stron odpowiadających zapytaniu. Przy tym sprawdzają też, czy strony posiadają atrybuty hreflang wskazujące różne wersje językowe.
  4. Jeśli Twoja witryna ma poprawnie wdrożony hreflang, Google rozpozna, która wersja strony jest odpowiednia dla danego użytkownika i właśnie tę wersję pokaże mu w wynikach. Na przykład, francuski użytkownik zobaczy francuską wersję Twojej strony, zamiast polskiej czy angielskiej.
  5. Użytkownik trafia na wersję strony najlepiej dopasowaną do jego potrzeb językowych i geograficznych, co zwiększa szansę, że pozostanie na stronie dłużej i skorzysta z oferty (ponieważ treść jest dla niego zrozumiała i adekwatna).

Dzięki hreflang masz więc kontrolę nad tym, jaką wersję Twojej strony zobaczą odbiorcy z różnych krajów. Bez tego mechanizmu wyszukiwarka mogłaby niekiedy wyświetlać niewłaściwą wersję językową (np. angielską stronę zamiast polskiej polskim użytkownikom), co bywa frustrujące dla odbiorców i może skutkować szybkim opuszczeniem witryny.

Dlaczego warto stosować hreflang?

Hreflang a SEO międzynarodowe – korzyści dla pozycjonowania

Jeśli planujesz dotrzeć do klientów w różnych krajach lub posługujących się różnymi językami, atrybut hreflang staje się niemal niezbędny w Twojej strategii SEO międzynarodowego. Jego poprawne wdrożenie przynosi szereg korzyści:

  • Lepsze dopasowanie treści do użytkownika: Dzięki hreflang użytkownicy trafiają od razu na wersję strony w swoim języku, bez potrzeby ręcznego przełączania języka czy szukania lokalnej wersji. To przekłada się na mniejsze prawdopodobieństwo, że opuszczą stronę zaraz po wejściu (czyli zmniejszenie współczynnika odrzuceń). Użytkownik, który widzi treści dostosowane do jego języka i lokalnych realiów (np. waluta, strefa czasowa, adresy kontaktowe), czuje się bardziej komfortowo i chętniej korzysta z witryny.
  • Unikanie duplikacji treści: Posiadając kilka wersji tej samej strony (np. ten sam opis produktu po angielsku, polsku i hiszpańsku), ryzykujesz, że wyszukiwarka uzna je za zduplikowaną treść. Zduplikowany content potrafi negatywnie wpłynąć na pozycje w wynikach wyszukiwania. Implementacja hreflang rozwiązuje ten problem – jasno wskazuje, że poszczególne wersje nie są kopią dla wszystkich, lecz odpowiadają różnym językom/regionom. Dzięki temu Google nie traktuje ich jak typowych duplikatów, lecz powiązane ze sobą odpowiedniki językowe.
  • Wzrost widoczności w lokalnych wynikach: Kiedy Twoja strona ma osobne wersje dla różnych krajów, każda z nich może niezależnie pozycjonować się w swoim lokalnym rynku. Prawidłowo wdrożony hreflang pomaga wyszukiwarkom zrozumieć, która wersja jest przeznaczona na który rynek, co może przełożyć się na lepszą widoczność w lokalnych SERP (Search Engine Results Pages). Innymi słowy, Twoja strona może zdobywać dobre pozycje jednocześnie w Google.pl, Google.de, Google.fr itd., dzięki temu że każda wersja trafia do właściwej grupy odbiorców.
  • Lepsze doświadczenie użytkownika: Dostarczenie użytkownikowi treści w jego języku to podstawa dobrego UX (User Experience) w kontekście międzynarodowych stron. Hreflang ułatwia budowanie pozytywnego wrażenia – odwiedzający czują, że strona jest „dla nich”, co zwiększa zaufanie do marki i może wpływać na wyższe konwersje (np. dokonanie zakupu czy wysłanie zapytania ofertowego).

Kiedy należy używać atrybutu hreflang?

Atrybut hreflang warto wdrożyć zawsze wtedy, gdy Twój serwis posiada wiele wersji językowych lub regionalnych tej samej treści. Google w swoich oficjalnych wytycznych wskazuje kilka typowych sytuacji, w których szczególnie zaleca się stosowanie hreflang:

  1. Treść wspólna, różne regiony: Masz stronę w jednym języku (np. po angielsku), ale kierujesz ją do użytkowników w różnych krajach. Przykładem może być strona prowadzona po angielsku, ale osobno targetowana na USA, Wielką Brytanię czy Australię. Treść jest niemal identyczna, ale np. ceny wyrażone są w lokalnej walucie, mogą się różnić drobne szczegóły (jak format zapisu dat czy adresów). W takim przypadku hreflang z kodem języka „en” i odpowiednimi kodami krajów („US”, „GB”, „AU”) pozwoli wskazać Google, że są to wersje dostosowane do różnych regionów anglojęzycznych.
  2. Przetłumaczone treści na wiele języków: Twoja witryna oferuje pełne tłumaczenia treści na różne języki. Na przykład prowadzisz blog lub sklep w języku polskim, a dodatkowo przygotowałeś pełne wersje po angielsku i hiszpańsku. Tutaj każda wersja językowa jest dedykowana określonemu gronu odbiorców posługujących się danym językiem. Dzięki hreflang poinformujesz wyszukiwarki, że np. strona /pl/ jest dla polskojęzycznych użytkowników, /en/ dla anglojęzycznych, a /es/ dla hiszpańskojęzycznych.
  3. Elementy strony w innym języku (częściowe tłumaczenie): Zdarza się, że główna treść strony (np. posty użytkowników, oferty, artykuły) jest w jednym języku, ale pewne elementy interfejsu (jak menu, stopka, nawigacja) są przetłumaczone dla innych języków. Taka sytuacja bywa spotykana np. w międzynarodowych portalach społecznościowych lub platformach, gdzie zawartość generowana przez użytkowników jest w jednym języku, ale interfejs dostosowuje się do kraju. Hreflang również i tutaj znajdzie zastosowanie – pozwoli uniknąć uznania takich stron za duplikaty i skieruje użytkownika na właściwą wersję (np. interfejs po niemiecku vs. interfejs po francusku).
  4. Strona startowa z wyborem języka: Jeśli posiadasz stronę główną, która sama w sobie nie jest w konkretnym języku (np. wyświetla jedynie wybór języka/kraju dla użytkownika), również możesz użyć specjalnej wartości x-default w atrybucie hreflang. Wskazuje ona „domyślną” wersję strony dla tych użytkowników, dla których nie przygotowano osobnej lokalizacji językowej (o x-default więcej powiemy w dalszej części artykułu).

Podsumowując, każda witryna kierowana do międzynarodowej publiczności – czy to poprzez wielojęzyczne treści, czy poprzez targetowanie na różne kraje – powinna rozważyć implementację hreflang. Nawet jeśli różnice między wersjami stron są minimalne, warto je oznaczyć tym atrybutem, aby zachować porządek i jasność dla wyszukiwarek.

Jak poprawnie wdrożyć atrybut hreflang?

Implementacja hreflang nie jest bardzo skomplikowana, ale wymaga dokładności. Istnieją trzy główne metody dodawania informacji o wersjach językowych strony:

  • poprzez kod HTML (znaczniki <link> w sekcji <head> strony),
  • poprzez mapę witryny (plik XML sitemap),
  • poprzez nagłówki HTTP (w przypadku stron lub plików, gdzie nie można edytować kodu HTML).

Wybierz jedną z tych metod, która najlepiej pasuje do Twojej sytuacji – zazwyczaj wystarczy jedna. Korzystanie z kilku naraz (np. jednocześnie w HTML i w mapie witryny) nie jest konieczne i może skomplikować zarządzanie stroną. Poniżej omawiamy poszczególne sposoby implementacji:

Implementacja hreflang w HTML (sekcja <head>)

Najpopularniejszym sposobem dodania atrybutu hreflang jest umieszczenie go w kodzie HTML każdej strony, która posiada alternatywne wersje językowe. W praktyce oznacza to dodanie w sekcji <head> znaczników <link rel="alternate" hreflang="..."> wskazujących na wszystkie dostępne warianty językowe danej podstrony.

Jak to zrobić? Otwórz kod HTML swojej strony (lub odpowiedni szablon, jeśli korzystasz z systemu CMS). W sekcji <head>, przed innymi skryptami czy arkuszami stylów, wstaw linie z atrybutami hreflang. Każda z tych linii będzie wyglądać podobnie, zmieniać się będą jedynie wartości atrybutów hreflang oraz href. Przykład:

<head>
<link rel="alternate" hreflang="pl" href="https://example.com/pl/produkt-X" />
<link rel="alternate" hreflang="en" href="https://example.com/en/product-X" />
<link rel="alternate" hreflang="de" href="https://example.com/de/produkt-X" />
</head>

Załóżmy, że powyższy kod pochodzi ze strony opisującej produkt X w trzech językach: polskim, angielskim i niemieckim. Oto, co oznaczają poszczególne elementy:

  • rel="alternate" – informuje przeglądarkę, że link, który po nim następuje, jest alternatywną wersją bieżącej strony. „Rel” to skrót od „relationship” (relacja), a „alternate” oznacza, że linkowany zasób to alternatywna wersja strony, na której znajduje się tag.
  • hreflang="pl" (czy en, de w kolejnych liniach) – określa kod języka i opcjonalnie regionu. Tutaj "pl" oznacza język polski, "en" angielski (bez wskazania konkretnego kraju, czyli ogólnie wersja anglojęzyczna), "de" niemiecki. Gdybyśmy chcieli doprecyzować region, moglibyśmy użyć np. en-GB dla angielskiego w wersji brytyjskiej, en-US dla amerykańskiej, czy de-AT dla języka niemieckiego w wersji dla Austrii.
  • href="https://example.com/pl/produkt-X" – to pełny URL do odpowiedniej wersji językowej strony. Ważne: Link musi zawierać pełny adres wraz z protokołem (http:// lub https://). Unikaj skracania go do postaci względnej (np. /pl/produkt-X), ponieważ Google zaleca podawanie pełnych URL-i.

Kilka ważnych zasad przy implementacji w HTML:

  • Wzajemne linkowanie: Każda strona powinna linkować do wszystkich swoich alternatywnych wersji, łącznie ze sobą samą. Oznacza to, że jeśli strona polska ma wersję angielską i niemiecką, to w kodzie zarówno polskiej, jak i angielskiej i niemieckiej strony umieszczamy trzy linki (do PL, EN, DE). Tylko przy zachowaniu tej wzajemności Google uzna konfigurację za poprawną. Jeśli pominiemy np. polską wersję na liście alternatyw w wersji EN, wyszukiwarka może zignorować te tagi.
  • Poprawne kody języka i regionu: Upewnij się, że używasz poprawnych kodów zgodnych ze standardami ISO 639-1 dla języków (dwuliterowe kody, np. pl, en, de, fr, es) oraz ISO 3166-1 alfa-2 dla regionów (również dwuliterowe, np. PL dla Polski, US dla USA, DE dla Niemiec). Jeżeli wskazujesz zarówno język, jak i kraj, format powinien być dokładnie taki: język-REGION (małymi literami kod języka, myślnik, wielkimi literami kod kraju). Przykłady poprawnych oznaczeń to: fr-CA dla języka francuskiego w Kanadzie, pt-BR dla portugalskiego w Brazylii. Błędne kody lub literówki spowodują, że atrybut hreflang nie zadziała. Pamiętaj też, że sam kod kraju nie może być użyty bez kodu języka – zawsze najpierw określamy język.
  • Jedna metoda implementacji: Jeżeli korzystasz z implementacji w HTML, nie dubluj tych samych informacji w sitemapie czy nagłówkach HTTP. Trzymanie się jednego sposobu ułatwi Ci zarządzanie hreflangami i zmniejszy ryzyko pomyłek.
  • Ułatwienia w CMS: Jeśli Twoja strona działa na popularnym CMS (np. WordPress, Joomla, Drupal), istnieją wtyczki i rozszerzenia, które ułatwiają dodawanie hreflang. Przykładowo na WordPressie dostępne są wtyczki pozwalające zarządzać wersjami językowymi (takie jak Polylang, WPML czy dedykowane wtyczki typu Hreflang Manager). Dzięki nim możesz przypisać alternatywne adresy URL dla każdej strony bez ręcznej edycji kodu.

Implementacja hreflang w nagłówku HTTP

Drugim sposobem przekazania informacji o wersjach językowych jest skorzystanie z nagłówków HTTP. Ta metoda jest przydatna przede wszystkim wtedy, gdy masz do czynienia z plikami innymi niż HTML (np. PDF) albo z jakiegoś powodu nie możesz umieścić tagów w sekcji head standardowej strony HTML. W praktyce polega to na wysyłaniu specjalnej linijki w nagłówku odpowiedzi HTTP serwera dla danej strony.

Jak wygląda składnia hreflang w nagłówku HTTP? Można ją zapisać w następującej formie:

Link: <URL-wersji-1>; rel="alternate"; hreflang="xx-YY", 
      <URL-wersji-2>; rel="alternate"; hreflang="zz-QQ"

Taką konstrukcję należy umieścić w nagłówku odpowiedzi HTTP (np. konfigurowanej na serwerze). Przykładowo, dla strony dostępnej pod trzema adresami:

Link: <https://example.com/pl/plik.pdf>; rel="alternate"; hreflang="pl", 
      <https://example.com/en/plik.pdf>; rel="alternate"; hreflang="en", 
      <https://example.com/de/plik.pdf>; rel="alternate"; hreflang="de"

Ten zapis wskazuje, że dostępne są trzy wersje zasobu plik.pdf – polska, angielska i niemiecka.

O czym pamiętać przy implementacji hreflang w nagłówkach:

  • Spójność między wersjami: Podobnie jak w metodzie HTML, każda wersja powinna mieć ten sam zestaw odnośników w nagłówku. Jeśli generujesz nagłówki HTTP ręcznie lub poprzez konfigurację serwera, upewnij się, że dla każdej wersji strony/zasobu lista Link: zawiera odniesienia do wszystkich pozostałych wersji (łącznie z samą sobą, jeżeli dotyczy).
  • Oddzielenie wielu wpisów: Poszczególne wpisy (dla kolejnych wersji językowych) rozdzielamy przecinkami – jak w przykładzie wyżej po każdej definicji wersji następuje przecinek, poza ostatnią.
  • Wydajność: Dodawanie wielu odnośników w nagłówku może minimalnie zwiększyć rozmiar odpowiedzi HTTP. Dla pojedynczego dokumentu nie stanowi to zwykle problemu, ale dla bardzo dużej liczby zasobów lub bardzo wielu wersji językowych warto monitorować, czy nie wpływa to na wydajność. W praktyce jednak różnica jest pomijalna w większości przypadków.
  • Zastosowanie: Używaj tej metody głównie dla zasobów, gdzie nie masz możliwości edycji HTML. Dla standardowych stron HTML wygodniejsza i bardziej przejrzysta jest implementacja poprzez kod strony (opisana powyżej). Nagłówek HTTP jest za to niezastąpiony, gdy oferujesz np. plik PDF w różnych językach i chcesz, by wyszukiwarki również i dla nich wiedziały o wersjach językowych.

Implementacja hreflang w mapie witryny (XML sitemap)

Trzecia opcja to wykorzystanie sitemapy XML do przekazania informacji o alternatywnych wersjach językowych. Mapa witryny to plik XML, w którym wymienione są wszystkie (lub wybrane) podstrony serwisu – często używany przez wyszukiwarki do indeksowania. Można w nim również uwzględnić atrybuty hreflang.

Jak to działa? W pliku sitemap.xml dla każdej podstrony można dodać wpisy <xhtml:link> wskazujące alternatywy językowe. Schemat wygląda następująco (upraszczając):

<url>
    <loc>https://example.com/pl/</loc>
    <xhtml:link rel="alternate" hreflang="pl" href="https://example.com/pl/" />
    <xhtml:link rel="alternate" hreflang="en" href="https://example.com/en/" />
    <xhtml:link rel="alternate" hreflang="de" href="https://example.com/de/" />
</url>
<url>
    <loc>https://example.com/en/</loc>
    <xhtml:link rel="alternate" hreflang="pl" href="https://example.com/pl/" />
    <xhtml:link rel="alternate" hreflang="en" href="https://example.com/en/" />
    <xhtml:link rel="alternate" hreflang="de" href="https://example.com/de/" />
</url>

W powyższym fragmencie pokazano dwa węzły <url> – pierwszy dla strony w języku polskim, drugi dla strony angielskiej (analogicznie byłby trzeci dla niemieckiej). W każdym z nich poprzez <xhtml:link> wymienione są adresy wszystkich wersji językowych (pl, en, de). Warto zwrócić uwagę, że również tutaj każda wersja odwołuje się do wszystkich, zachowując wzajemność.

Aby użyć tej metody, musisz mieć kontrolę nad generowaniem swojej mapy witryny. Niektóre systemy CMS lub wtyczki SEO (np. Yoast SEO dla WordPress) wspierają automatyczne dodawanie hreflang do sitemap. Jeśli generujesz plik ręcznie lub półautomatycznie, upewnij się, że:

  • Plik sitemap ma poprawną składnię XML i zadeklarowaną przestrzeń nazw dla xhtml (bez tego wpisy <xhtml:link> mogą zostać zignorowane).
  • Każda podstrona wymieniona w sitemap zawiera pełen zestaw <xhtml:link> do wszystkich wersji (łącznie z nią samą).
  • Za każdym razem, gdy dodajesz nową wersję językową lub modyfikujesz URL-e, aktualizujesz mapę witryny, aby zawierała aktualne informacje. Nieaktualna sitemap ze złymi linkami przyniesie więcej szkody niż pożytku.

Zaletą metody opartej na sitemapie jest to, że trzymasz informacje o hreflang w jednym centralnym miejscu. Może to być wygodne w przypadku bardzo rozbudowanych serwisów z wieloma językami – łatwiej wygenerować czy zaktualizować jeden plik niż edytować setki stron. Jednak dla mniejszych stron (kilka-kilkanaście podstron w każdej wersji) często prościej jest zastosować hreflang w HTML, bezpośrednio na stronach.

Uwaga: Stosuj metodę z sitemapą albo HTML (lub HTTP), ale nie dubluj. Jeśli zdecydujesz się na sitemapę jako główny nośnik informacji o wersjach językowych, nie musisz już powielać tych tagów w kodzie każdej strony.

Podstawowe zasady i najczęstsze błędy przy hreflang

Zasady poprawnego użycia hreflang (dobre praktyki)

Implementując hreflang, trzymaj się kilku fundamentalnych zasad, które zapewnią, że wyszukiwarki prawidłowo odczytają Twoje ustawienia:

  • Wzajemność (tagi zwrotne): Każda strona musi wskazywać na swoje alternatywy i być wskazywana przez nie. Innymi słowy, jeśli strona A ma link hreflang do strony B, to strona B musi mieć analogiczny link do strony A. Brak tej wzajemności jest częstym błędem, który sprawia, że Google ignoruje tagi hreflang, uznając je za niekompletne.
  • Self-hreflang (odnośnik do samej siebie): Dodawaj również odnośnik do tej samej strony (tej, na której umieszczasz tagi). Dzięki temu jawnie komunikujesz, jaka jest wersja językowa bieżącej strony. Przykładowo, na stronie /pl/ warto umieścić także <link rel="alternate" hreflang="pl" href=".../pl/" />. Choć wydaje się to redundantne, jest to zalecane jako dobra praktyka.
  • Pełne adresy URL: Stosuj pełne adresy wraz z domeną i protokołem. Unikaj skrótów typu href="/de/page" czy href="example.de/page" bez https://. Każdy link musi jednoznacznie wskazywać właściwy zasób. Adres example.com/page różni się od https://example.com/page – ten drugi jest właściwym formatem.
  • Dokładne odpowiadanie stron: Upewnij się, że linkujesz dokładnie odpowiadające sobie podstrony. Jeśli masz produkt X po polsku pod /pl/produkt-X, to jego angielska wersja powinna prowadzić do konkretnej podstrony produktu X po angielsku (/en/product-X), a nie np. do strony głównej anglojęzycznej. Każdy hreflang powinien kierować do odpowiadającej wersji tego samego contentu, tylko w innym języku. To samo dotyczy blogów/artkułów – polski artykuł „A” powinien wskazywać na angielski artykuł „A”, a nie ogólnie na blog w danym języku.
  • Poprawne kody języka i regionu: Stosuj właściwe kody zgodnie z ISO, jak wspomniano wcześniej. Błędy w kodach (np. literówki, pomylenie kolejności język-region) unieruchomią działanie hreflanga. Zwracaj też uwagę, żeby nie używać nieoficjalnych skrótów języków – np. no to nie jest skrót od „norweski” (prawidłowy kod to nb lub nn dla języka norweskiego w zależności od standardu bokmål/nynorsk), gr nie oznacza greckiego (powinno być el od Elliniká).
  • Region nie bez języka: Nigdy nie stosuj samego kodu kraju bez podania języka. Jeżeli zawartość strony jest kierowana np. do francuskojęzycznych użytkowników w Kanadzie, użyj fr-CA. Kod CA (Kanada) sam w sobie nie ma sensu dla hreflang – Google wymaga zawsze komponentu językowego.
  • Wartość x-default: Pamiętaj o użytkownikach, dla których nie przygotowałeś dedykowanej wersji językowej. Dla takich przypadków dobrze jest mieć stronę domyślną. Jeśli Twoja strategia zakłada np. że użytkownicy spoza głównych rynków trafią na wersję anglojęzyczną, zastosuj atrybut hreflang z wartością x-default. Ten specjalny znacznik powinien wskazywać URL strony, którą traktujesz jako domyślną globalną wersję (często jest to po prostu wersja angielska międzynarodowa). Umieszcza się go tak samo jak inne – np. <link rel="alternate" hreflang="x-default" href="https://example.com/en/" />. x-default nie odnosi się do żadnego konkretnego języka, ale sygnalizuje: „to jest domyślna wersja dla użytkowników, którzy nie pasują do pozostałych kryteriów językowych”.
  • Spójność implementacji: Trzymaj się wybranej metody wdrożenia. Jeśli używasz HTML, umieszczaj tagi konsekwentnie we wszystkich odpowiednich stronach. Jeżeli wybrałeś rozwiązanie oparte na sitemap, dopilnuj, żeby każdy nowy URL również tam trafiał z odpowiednimi wpisami. Niespójność (np. brak hreflang dla części podstron) może sprawić, że wyszukiwarka i tak będzie miała problem z odpowiednim dopasowaniem wersji językowych.
  • Brak konfliktu z rel=canonical: Uważaj, aby nie kanoniczować alternatywnych wersji językowych względem siebie. Każda wersja językowa powinna mieć swoje własne znaczniki hreflang i swój własny (ewentualny) tag rel=canonical wskazujący na samą siebie (lub swoją wersję preferowaną w obrębie tej samej wersji językowej, np. wersja https zamiast http). Błędem jest użycie na stronie angielskiej znacznika kanonicznego wskazującego stronę polską (uznając ją za „główną wersję”) – w ten sposób dajesz sprzeczne sygnały Google. Poprawnie wdrożony hreflang eliminuje potrzebę używania rel=canonical między różnymi językami (one nie powinny być traktowane jako duplikaty, tylko jako równoległe wersje).

Typowe błędy przy wdrażaniu hreflang (czego unikać)

Mimo iż koncepcja hreflang jest stosunkowo prosta, w praktyce łatwo o pomyłki. Oto list najczęściej spotykanych błędów:

  • Brak wzajemnych linków: Jak już podkreślono, pominięcie tagu zwrotnego to najpopularniejszy problem. Wystarczy, że jedna wersja nie będzie wskazywać z powrotem na drugą, a Google może w takiej sytuacji zignorować całą konfigurację.
  • Błędne kody językowe lub regionalne: Użycie nieistniejącego kodu (lub literówka) spowoduje niewłaściwe działanie. Przykładowo wpisanie hreflang="po" zamiast hreflang="pl" byłoby błędem. Również pomylenie kolejności (np. hreflang="UK-en" zamiast en-UK – notabene kod kraju dla Wielkiej Brytanii to GB) sprawi problem. Google ignoruje tagi z błędami, przez co nie rozpozna strony prawidłowo.
  • Niepełne adresy lub błędne URL: Jeżeli w atrybucie href podasz adres, który nie jest dostępny (np. literówka w domenie albo brakujący ukośnik) albo pominiesz protokół, Google może uznać tag za wadliwy. Często spotykanym błędem jest też wskazywanie adresów, które są wykluczone z indeksacji (np. poprzez plik robots.txt lub meta tag „noindex”), albo które zwracają błąd 404. Takie linki hreflang do nieistniejących lub zablokowanych stron oczywiście nie będą brane pod uwagę, a mogą wręcz szkodzić (Google może sygnalizować w narzędziach błędy hreflang).
  • Tagi hreflang tylko na stronie głównej: Niektórzy wdrażają hreflang jedynie na poziomie homepage, zapominając o podstronach. To niewystarczające – każda podstrona mająca swoje odpowiedniki językowe musi mieć osobne tagi wskazujące te odpowiedniki. Hreflang działa na poziomie konkretnego URL. Jeśli więc masz 100 produktów w 3 językach, to każdy z tych 100 stron produktowych powinien zawierać odniesienia do odpowiadających mu 2 wersji w innych językach. Umieszczenie tagów tylko na stronie głównej nie pomoże użytkownikowi, który trafi np. na podstronę produktu w niewłaściwym języku.
  • Mieszanie metod wdrożenia: Teoretycznie można stosować jednocześnie hreflang w HTML i w sitemap, ale to zwiększa ryzyko niespójności (np. zapomnisz dodać nowego języka w jednym z miejsc). Lepiej trzymać się jednej wybranej metody i konsekwentnie ją stosować. Mieszane implementacje nie dają żadnej dodatkowej korzyści rankingowej.
  • Niezgodność z canonical: Wspomniany wcześniej problem konfliktu z rel=canonical to błąd, który może całkowicie przekreślić sens hreflang. Upewnij się, że nie oznaczasz jednej wersji językowej jako kanonicznej dla drugiej. Canonical służy do innego celu (wskazania duplikatów w tym samym języku lub tej samej strony pod różnymi URL), a w przypadku różnych języków – hreflang jest właściwym rozwiązaniem. Jeśli używasz canonicali, niech każdy wskazuje odpowiednik w obrębie tego samego języka.
  • Zbyt ogólne wskazanie regionu: Pamiętaj, że jeśli tworzysz osobną wersję strony dla danego kraju, to upewnij się, że faktycznie różni się ona od wersji ogólnojęzykowej. Jeżeli różnice są kosmetyczne, rozważ czy potrzebny jest osobny wariant regionalny. Niemniej jednak, jeśli już go tworzysz, dopilnuj by użyć właściwego kodu. Przykładowo, strona po hiszpańsku w wersji „międzynarodowej” może mieć hreflang="es", a wersja dedykowana Hiszpanii – es-ES. Jeśli masz tylko jedną wersję hiszpańską, lepiej zostać przy es (bez regionu), wtedy Google uzna ją za odpowiednią dla wszystkich hiszpańskojęzycznych użytkowników, niezależnie z jakiego kraju pochodzą.

Jak sprawdzić poprawność wdrożenia tagów hreflang?

Po zaimplementowaniu hreflang warto zweryfikować, czy wszystko wdrożyłeś prawidłowo. Istnieje kilka sposobów na przetestowanie konfiguracji:

  • Google Search Console: W narzędziu Google dla webmasterów dostępna jest sekcja „Kierowanie międzynarodowe” (w starszej wersji interfejsu GSC) lub raport dotyczący języków/wersji regionalnych. Tam Google wyświetli ewentualne błędy związane z atrybutami hreflang na Twojej stronie. Jeśli np. wykryje brak strony zwrotnej lub nieprawidłowy kod języka, zobaczysz stosowne komunikaty.
  • Narzędzia online (hreflang checker): W internecie znajdziesz darmowe narzędzia określane jako „hreflang checker”, które po podaniu adresu strony przeanalizują obecność i poprawność tagów hreflang. Takie narzędzia sprawdzają wzajemność linkowania, poprawność kodów językowych i to, czy wszystkie zadeklarowane strony faktycznie zwracają kod 200 (czyli są dostępne). Mogą pomóc wychwycić drobne błędy przed ich negatywnym wpływem na SEO.
  • Programy do crawlowania strony: Profesjonalne programy typu Screaming Frog SEO Spider lub Sitebulb potrafią podczas skanowania witryny odczytywać tagi hreflang i raportować ewentualne niespójności. Jeśli Twoja strona jest rozbudowana, użycie takiego narzędzia może zaoszczędzić czas – otrzymasz listę stron i np. informację, że brakuje gdzieś linku zwrotnego albo że jakiś URL jest wskazany błędnie.
  • Ręczna inspekcja: W ostateczności możesz też samodzielnie przejrzeć kod stron (lub sitemapę) i sprawdzić, czy wszędzie tagi są jednolite i poprawne. Dla mniejszej strony jest to wykonalne – wypisz sobie wszystkie kombinacje stron językowych i upewnij się, że każda ma komplet <link> czy wpisów w sitemap.

Podsumowanie

Atrybut hreflang jest potężnym narzędziem dla właścicieli witryn wielojęzycznych i skierowanych do międzynarodowego grona odbiorców. Dzięki niemu unikniesz wielu problemów – od frustracji użytkowników trafiających na strony w niezrozumiałym języku, po spadki pozycji wynikające z duplikacji treści w wynikach wyszukiwania. Poprawne wdrożenie hreflang wymaga wprawdzie skrupulatności (należy pamiętać o wzajemności linków, poprawnych kodach, itp.), ale korzyści płynące z takiej implementacji są tego warte.

Jeżeli dopiero zaczynasz swoją przygodę z pozycjonowaniem międzynarodowym, potraktuj hreflang jako fundament techniczny, który ułatwi Google prawidłowe kierowanie ruchu na Twoją stronę. Zadbaj o to, abyś każdą wersję językową swojego serwisu odpowiednio oznaczył, dzięki czemu dotrze ona do odbiorców, dla których ją przygotowałeś. W efekcie zwiększysz użyteczność swojej witryny, jej widoczność w różnych wersjach wyszukiwarki i zyskasz przewagę w walce o zagranicznych odbiorców.

Pamiętaj, że najlepsze rezultaty osiągniesz łącząc poprawne aspekty techniczne (takie jak hreflang) z wysokiej jakości treścią dostosowaną do lokalnego użytkownika. Hreflang otworzy drzwi do globalnego SEO, ale to od Ciebie zależy, co za tymi drzwiami użytkownik znajdzie.

Podsumowując, prawidłowe wykorzystanie hreflang to inwestycja w przyjazność Twojej strony dla użytkowników z całego świata oraz w jej pozytywny odbiór przez wyszukiwarki. W dobie globalnego internetu warto poświęcić czas na dopracowanie tego elementu, by móc czerpać pełne korzyści z posiadania międzynarodowego serwisu.

< Powrót

Zapisz się do newslettera


Zadzwoń Napisz