Przejdź do głównej treści
Poradnik SEO

Hreflang od podstaw: praktyczny przewodnik SEO wielojęzycznego [2026]

Czym jest hreflang, jak go wdrożyć na WordPress, Shopify i własnych witrynach, jakich 7 błędów unikać i jak sprawdzić poprawność. Z kodem do skopiowania, checklistą QA i wpływem na AI Overviews.

Wiktor Jacheć
Wiktor Jacheć
16 marca 2026
15 min czytania

Jak działa hreflang:

pl
/pl/
de
/de/
en
/en/
wzajemne referencje

W skrócie (TL;DR)

Hreflang to atrybut HTML, który mówi wyszukiwarkom, którą wersję językową strony pokazać danemu użytkownikowi. W 2026 hreflang jest obsługiwany zarówno przez Google, jak i Bing, a poprawna implementacja wpływa również na to, którą wersję cytują AI Overviews. Bez niego wyszukiwarki mogą wyświetlać polską wersję użytkownikom z Niemiec lub odwrotnie. Najczęściej psuje go: brak wzajemnych referencji, złe kody języków i konflikt z canonical.

Wzajemne referencje obowiązkowe
3 metody implementacji
Walidacja w GSC

Kiedy hreflang jest potrzebny (a kiedy nie)?

Hreflang nie jest potrzebny na każdej stronie. Potrzebujesz go tylko wtedy, gdy masz tę samą treść (lub jej ekwiwalent) w wielu wersjach językowych lub regionalnych. Oto tabela decyzyjna:

ScenariuszHreflang?
Ta sama treść w 3 językach (PL, DE, EN) tak
Osobne wersje dla DE (Niemcy) i DE-AT (Austria) tak
Strona tylko po polsku, bez wersji obcych nie
Automatyczne przekierowanie po IP zamiast wersji nie
Sklep z produktami w 5 językach tak
Blog po angielsku + strona główna po polsku tak

Ważne: przekierowanie po IP (geolocation redirect) nie zastępuje hreflang. Google crawluje z amerykańskich IP, więc przekierowanie zablokuje mu dostęp do innych wersji. Używaj language selectora + hreflang zamiast przekierowań.

Składnia hreflang krok po kroku

Tag hreflang to element <link> w sekcji <head> Twojej strony. Format jest prosty:

HTML
<link rel="alternate" hreflang="de" href="https://example.com/de/" />
<link rel="alternate" hreflang="pl" href="https://example.com/pl/" />
<link rel="alternate" hreflang="x-default" href="https://example.com/en/" />

Kody języków i regionów

Hreflang używa kodów ISO 639-1 dla języków i opcjonalnie ISO 3166-1 Alpha-2 dla regionów. Sam język (de) wystarczy, jeśli nie rozróżniasz wariantów regionalnych. Dodaj region (de-AT), gdy masz osobne wersje.

KodJęzykRegionUwagi
plpolski-
deniemiecki-Niemcy + Austria + Szwajcaria
de-ATniemieckiAustriagdy masz osobną wersję dla Austrii
de-CHniemieckiSzwajcariagdy masz osobną wersję dla Szwajcarii
en-GBangielskiUKangielski brytyjski
en-USangielskiUSAangielski amerykański
frfrancuski-Francja + Belgia
fr-CAfrancuskiKanadakanadyjski francuski
eshiszpański-kastylijski
es-MXhiszpańskiMeksyklatynoamerykański
itwłoski-
nlniderlandzki-Holandia + Belgia
csczeski-
ukukraiński-uwaga: uk to ukraiński, nie United Kingdom!

Co to jest x-default?

x-default to specjalna wartość hreflang, która wskazuje wersję domyślną dla użytkowników, którzy nie pasują do żadnej zdefiniowanej wersji językowej. Najczęściej ustawia się ją na wersję angielską lub na stronę z language selectorem. Jest opcjonalna, ale zdecydowanie rekomendowana.

3 metody implementacji hreflang

Masz trzy sposoby na dodanie hreflang do strony. Możesz wybrać jedną metodę lub łączyć HTML head z sitemap (ale muszą być spójne).

1

HTML <head>

Tagi <link> w sekcji head każdej strony. Najpopularniejsza metoda.

Zalety

Łatwa do debugowania
Widoczna w kodzie źródłowym
Szybka implementacja

Wady

Obciąża HTML na dużych witrynach
Trzeba utrzymywać na każdej stronie
Najlepsze dla: Strony do 1000 podstron, większość CMS-ów
HTML
<link rel="alternate" hreflang="pl" href="https://example.com/pl/" />
<link rel="alternate" hreflang="de" href="https://example.com/de/" />
<link rel="alternate" hreflang="en" href="https://example.com/en/" />
<link rel="alternate" hreflang="x-default" href="https://example.com/en/" />
2

HTTP header

Header Link w odpowiedzi HTTP. Jedyna opcja dla plików nie-HTML.

Zalety

Działa dla PDF, API, plików
Nie obciąża HTML

Wady

Trudniejsza w debugowaniu
Wymaga konfiguracji serwera
Najlepsze dla: Pliki PDF, dokumenty, odpowiedzi API
HTTP Header
Link: <https://example.com/de/file.pdf>; rel="alternate"; hreflang="de",
      <https://example.com/en/file.pdf>; rel="alternate"; hreflang="en"
3

XML sitemap

Tagi xhtml:link w sitemap.xml. Idealne dla dużych witryn.

Zalety

Skaluje się na tysiące stron
Łatwe do automatyzacji
Nie obciąża HTML

Wady

Trudniejsza w debugowaniu
Google musi najpierw przeczytać sitemap
Najlepsze dla: Witryny 1000+ podstron, e-commerce
sitemap.xml
<url>
  <loc>https://example.com/pl/produkt</loc>
  <xhtml:link rel="alternate" hreflang="pl"
    href="https://example.com/pl/produkt" />
  <xhtml:link rel="alternate" hreflang="de"
    href="https://example.com/de/produkt" />
  <xhtml:link rel="alternate" hreflang="x-default"
    href="https://example.com/en/produkt" />
</url>

Rekomendacja: dla większości stron wybierz HTML <head>. Dla dużych witryn (1000+ podstron) dodaj sitemap jako uzupełnienie. Jeśli łączysz metody, upewnij się, że dane są identyczne.

Hreflang na platformach CMS i e-commerce

Większość platform CMS i e-commerce obsługuje hreflang przez wtyczki lub natywnie. Sprawdź, jak to wygląda na Twojej platformie:

WordPress

WPML / Polylang

WPML dodaje hreflang automatycznie. Polylang wymaga drobnej konfiguracji w ustawieniach języków.

WPML vs Polylang - porównanie

Shopify

Shopify Markets / Langify / Weglot

Shopify Markets od 2024 generuje hreflang automatycznie. Starsze sklepy mogą potrzebować Langify lub Weglot.

Lokalizacja Shopify na 5 rynków

WooCommerce

WPML + WooCommerce Multilingual

WPML z dodatkiem WooCommerce Multilingual obsługuje hreflang dla produktów, kategorii i checkoutu.

Tłumaczenie WooCommerce

Magento

Natywne store views + rozszerzenie

Magento obsługuje multi-store natywnie, ale hreflang wymaga rozszerzenia lub konfiguracji w template.

Tłumaczenie Magento

Drupal

Content Translation + Language (core)

Drupal 10/11 ma wielojęzyczność w core: moduły Content Translation, Language i Locale. Hreflang generuje się automatycznie po włączeniu Language Negotiation.

Tłumaczenie Drupal

Next.js / Headless

next-intl / middleware

W headless CMS i frameworkach jak Next.js implementujesz hreflang w middleware lub w komponencie <head>.

Wszystkie platformy CMS

7 najczęstszych błędów hreflang

Te błędy widzimy na co najmniej połowie stron, które audytujemy. Każdy z nich powoduje, że Google ignoruje Twój hreflang lub źle interpretuje strukturę językową.

#1Brak wzajemnych referencji

Strona PL wskazuje na DE, ale DE nie wskazuje z powrotem na PL. Google ignoruje jednostronne hreflang.

Każda strona musi wskazywać na wszystkie wersje językowe, w tym na samą siebie.

#2Błędne kody języków

Najczęstszy błąd: 'uk' to ukraiński (ISO 639-1), nie United Kingdom. Dla angielskiego w UK użyj 'en-GB'.

Używaj kodów ISO 639-1 (język) i ISO 3166-1 Alpha-2 (region). Waliduj kodem, nie intuicją.

#3Hreflang na stronach z noindex lub 404

Wskazujesz hreflangiem na stronę, która ma noindex lub zwraca 404. Google to zignoruje.

Hreflang może wskazywać tylko na strony z kodem 200 i bez noindex.

#4Konflikt hreflang vs canonical

Canonical wskazuje na inną wersję językową (np. polska strona ma canonical na angielską). Google nie wie, co jest źródłem.

Canonical zawsze na tę samą stronę (self-referencing). Hreflang wskazuje na alternatywy.

#5Brak self-referencing hreflang

Strona nie wskazuje sama na siebie w tagach hreflang. Google wymaga self-reference w każdym zestawie.

Dodaj tag hreflang wskazujący na bieżącą stronę w jej własnym języku.

#6Mieszanie metod implementacji

Hreflang w HTML head mówi co innego niż hreflang w sitemap. Google dostaje sprzeczne sygnały.

Wybierz jedną metodę główną. Jeśli używasz dwóch, muszą być identyczne.

#7Brak x-default

Nie ustawiony x-default dla użytkowników, którzy nie pasują do żadnej wersji językowej.

Dodaj x-default wskazujący na wersję domyślną (najczęściej angielską lub z language selector).

Hreflang a canonical, struktura URL i sitemap

Hreflang, canonical i struktura URL muszą ze sobą współpracować. Jeśli się kłócą, Google zignoruje hreflang. Oto jak to powinno wyglądać:

Poprawna konfiguracja canonical + hreflang

Dobrze

<!-- Na stronie /de/ -->
<link rel="canonical" href="/de/" />
<link rel="alternate" hreflang="de" href="/de/" />
<link rel="alternate" hreflang="pl" href="/pl/" />
<link rel="alternate" hreflang="en" href="/en/" />

Źle

<!-- Na stronie /de/ -->
<link rel="canonical" href="/en/" />
<!-- ↑ canonical na INNĄ wersję! -->
<link rel="alternate" hreflang="de" href="/de/" />
<link rel="alternate" hreflang="en" href="/en/" />

Zasada: canonical zawsze wskazuje sam na siebie (self-referencing). Hreflang wskazuje na alternatywy językowe.

Struktura URL a hreflang

PodejściePrzykładSEOZłożoność
Subfolderrekomendowaneexample.com/de/DobryNiska
Subdomenade.example.comDobryŚrednia
Osobna domenaexample.deBardzo dobry (ccTLD)Wysoka

Subfoldery to najczęstszy i najłatwiejszy wybór. Osobne domeny (ccTLD) dają najsilniejszy sygnał geotargetowania, ale wymagają osobnego budowania autorytetu dla każdej domeny. Więcej o konfiguracji SEO wielojęzycznego na naszej stronie usługi SEO wielojęzycznego.

Jak sprawdzić poprawność hreflang?

Po wdrożeniu hreflang musisz zweryfikować, że wszystko działa poprawnie. Oto narzędzia i checklista:

Google Search Console

Raport indeksowania + Inspect URL

Ahrefs Site Audit

Crawl hreflang + błędy

Screaming Frog

Szczegółowy crawl tagów

Hreflang Tag Checker

Darmowa walidacja online

Checklista QA hreflang (kopiuj i używaj)

Każda strona ma hreflang do wszystkich wersji językowych + self-reference
Kody języków poprawne (ISO 639-1) i regionów (ISO 3166-1 Alpha-2)
Brak konfliktu canonical vs hreflang (canonical = self-referencing)
x-default ustawiony na wersję domyślną
Hreflang nie wskazuje na strony z noindex ani 404
Sitemap zawiera xhtml:link (jeśli używasz metody sitemap)
Raport indeksowania w GSC nie wskazuje problemów z wersjami językowymi
Wszystkie URL-e w hreflang używają tego samego protokołu (https)

Najczęstsze pytania o hreflang

Tagi:

HreflangSEO wielojęzyczneCanonicalGoogleWielojęzycznośćStruktura URLWordPressShopify
Wiktor Jacheć

Autor artykułu

Wiktor Jacheć

CEO & Head of Localization, SharkPress Agency

Specjalista ds. lokalizacji stron internetowych i e-commerce. Łączy kompetencje techniczne z wiedzą językową, pomagając firmom skutecznie wchodzić na nowe rynki.

Zobacz profil autora

Nie masz pewności, czy Twój hreflang działa?

Wyślij link do strony, a przygotujemy bezpłatny audyt SEO wielojęzycznego: hreflang, canonical, struktura URL i indeksacja wersji językowych.