Czym jest hreflang
Hreflang to atrybut HTML informujący wyszukiwarki o istnieniu alternatywnych wersji językowych lub regionalnych danej strony internetowej. Tag hreflang (rel="alternate" hreflang="xx") pozwala Google, Yandex i innym wyszukiwarkom wyświetlać użytkownikom właściwą wersję językową w wynikach wyszukiwania. Hreflang jest kluczowym elementem SEO wielojęzycznego i powinien być wdrożony na każdej stronie dostępnej w wielu językach lub wersjach regionalnych.
Trzy metody implementacji hreflang
HTML head (link tag)
Najpopularniejsza metoda. Tagi hreflang umieszcza się w sekcji head każdej strony HTML. Każda strona musi zawierać link do siebie samej oraz do wszystkich alternatywnych wersji językowych. Idealna dla małych i średnich serwisów.
HTTP header
Metoda stosowana dla plików nie-HTML (PDF, dokumenty). Hreflang przekazywany jest w nagłówku HTTP Link. Przydatna gdy nie mamy kontroli nad kodem HTML strony.
XML sitemap
Rekomendowana dla dużych serwisów (tysiące stron). Hreflang definiowany w pliku sitemap.xml za pomocą znaczników xhtml:link. Łatwiejsze zarządzanie i aktualizacja niż tagi w HTML. Nie wymaga modyfikacji kodu strony.
Kody języków i regionów
Atrybut hreflang używa kodów języków ISO 639-1 (dwuliterowych, np. pl, en, de, fr) oraz opcjonalnie kodów regionów ISO 3166-1 Alpha-2 (np. pt-BR dla portugalskiego brazylijskiego, en-GB dla angielskiego brytyjskiego). Kod języka jest obowiązkowy, kod regionu opcjonalny. Nie można użyć samego kodu regionu bez kodu języka.
x-default
Wartość x-default wskazuje domyślną wersję strony dla użytkowników, których język nie jest obsługiwany. Może wskazywać na stronę z wyborem języka lub wersję fallback (najczęściej angielską). Każdy zestaw hreflang powinien zawierać x-default. Składnia: hreflang="x-default".
Linki zwrotne (reciprocal links)
Hreflang wymaga wzajemności (reciprocal links). Jeśli strona A wskazuje na stronę B jako alternatywę językową, strona B musi wskazywać z powrotem na stronę A. Brak wzajemności to najczęstszy powód ignorowania hreflang przez Google. Każda strona musi też wskazywać na siebie samą (self-referencing hreflang).
Najczęstsze błędy hreflang
- Brak linków zwrotnych (reciprocal links) - strona A wskazuje na B, ale B nie wskazuje na A
- Brak self-referencing hreflang (strona nie wskazuje na siebie)
- Nieprawidłowe kody języków (np. 'uk' zamiast 'en-GB' dla angielskiego brytyjskiego)
- Hreflang wskazujący na stronę z kodem 4xx lub 5xx
- Hreflang wskazujący na redirect (301/302)
- Konflikt między hreflang a tagiem canonical
- Brak x-default w zestawie hreflang
- Mieszanie metod implementacji (HTML head + sitemap bez spójności)
- Użycie kodu kraju zamiast kodu języka (np. 'pl' to język, nie region)
Hreflang w popularnych CMS-ach
WordPress + WPML
WPML automatycznie generuje tagi hreflang w sekcji head. Obsługuje x-default i self-referencing. Wymaga prawidłowej konfiguracji języków w ustawieniach WPML.
WordPress + Polylang
Polylang generuje hreflang automatycznie. Wersja Pro oferuje pełne wsparcie x-default. Integracja z Yoast SEO i Rank Math.
Shopify Markets
Shopify Markets automatycznie dodaje hreflang dla skonfigurowanych rynków. Problemy przy aplikacjach tłumaczeniowych trzecich (Weglot, Langify). Wymaga weryfikacji po wdrożeniu.
WooCommerce
Hreflang przez WPML + WooCommerce Multilingual lub Polylang + Hyyan WooCommerce Polylang. Szczególna uwaga na produkty z wariantami i paginację.
Magento
Natywne wsparcie hreflang przez Store Views. Wymaga konfiguracji w panelu administracyjnym. Rozszerzenia jak Hreflang Tags dla lepszej kontroli.
Headless CMS (Next.js, Nuxt)
Ręczna implementacja w metadata API (Next.js) lub nuxt/head. Hreflang musi być w initial HTML, nie dodawany przez JavaScript client-side. Wymaga server-side rendering.
Narzędzia do audytu hreflang
- Google Search Console: raport International Targeting, URL Inspection
- Screaming Frog: zakładka Hreflang, walidacja wzajemności linków
- Ahrefs Site Audit: automatyczne wykrywanie błędów hreflang
- hreflang.org: darmowy walidator tagów hreflang online
- Merkle hreflang tag generator: generator poprawnych tagów
- Sitebulb: wizualizacja relacji hreflang między stronami
Hreflang a canonical i sitemap
Hreflang i canonical to komplementarne sygnały. Canonical wskazuje preferowaną wersję URL, hreflang wskazuje alternatywy językowe. Oba muszą być spójne: canonical musi wskazywać na siebie (self-referencing), a hreflang musi zawierać tę samą wersję URL co canonical. W sitemap.xml hreflang i canonical mogą być zdefiniowane razem, co upraszcza zarządzanie.
Canonical tags na stronach wielojęzycznych