Przejdź do treści
ARDURA Lab
ARDURA Lab
·6 min

Hreflang dla wielojęzycznych stron — kompletny przewodnik 2026

MG
Marcin Godula

CEO & Founder, ARDURA Lab

Specjalista SEO, GEO i web development z ponad 15-letnim doświadczeniem. Pomaga firmom B2B budować widoczność w wyszukiwarkach klasycznych i AI.

Hreflang to atrybut HTML, który mówi Google „te strony są tym samym contentem, tylko w różnych językach". Bez hreflang międzynarodowa strona = kanibalizacja keywords + duplicate content. Z prawidłowym hreflang = każdy rynek dostaje swoją wersję bez utraty SEO.

TL;DR — Hreflang w pigułce

CoDetale
Co to jestAtrybut HTML wskazujący alternatywne wersje językowe/regionalne
GdzieHTML head (<link rel="alternate">) lub sitemap.xml
Format kodupl (język) lub pl-PL (język + region)
x-defaultFallback dla niedopasowanych użytkowników
Self-referenceKażda strona linkuje do siebie też
Return linksA → B wymaga B → A
Główny błądNiespójne mapping → Google ignoruje cały hreflang

Czym jest hreflang i dlaczego ma znaczenie?

Hreflang (skrót od „href language") to atrybut wskazujący Google, że strona ma alternatywne wersje w innych językach lub regionach.

Przykład praktyczny:

  • https://example.com/strony-internetowe (polski)
  • https://example.com/en/websites (angielski)
  • https://example.com/de/webseiten (niemiecki)

Bez hreflang Google widzi 3 osobne strony i traktuje je jako:

  • Duplikaty (jeśli treść podobna semantycznie)
  • Konkurencyjne (jeśli każda celuje w inny rynek)
  • Mylne dla użytkowników (PL user dostaje DE wersję)

Z hreflang Google rozumie: to ten sam content, każdy język serwowany odpowiedniemu użytkownikowi.

Format hreflang — kody języków i regionów

Tylko język

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

Stosuj, gdy nie targetujesz konkretnego regionu (jeden content dla wszystkich PL-speakerów na świecie).

Język + region (recommended dla e-commerce)

<link rel="alternate" hreflang="pl-PL" href="https://example.com/" />
<link rel="alternate" hreflang="en-US" href="https://example.com/en-us/" />
<link rel="alternate" hreflang="en-GB" href="https://example.com/en-gb/" />
<link rel="alternate" hreflang="de-DE" href="https://example.com/de/" />
<link rel="alternate" hreflang="de-AT" href="https://example.com/de-at/" />

Stosuj, gdy treść ma różnice regionalne (cennik EUR vs USD, prawo lokalne).

x-default

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

To strona-fallback dla użytkowników, których język nie pasuje do żadnego z hreflang. Najczęściej: angielska wersja lub strona-router (wybór języka).

Trzy metody implementacji

Metoda 1: HTML head (najpopularniejsza)

Każda strona ma w <head>:

<link rel="alternate" hreflang="pl-PL" href="https://example.com/strona" />
<link rel="alternate" hreflang="en-US" href="https://example.com/en/page" />
<link rel="alternate" hreflang="x-default" href="https://example.com/" />

Zaleta: prostota, bezpośrednia widoczność w HTML Wada: każda strona musi mieć kompletny set hreflang (powtarzalny kod)

Metoda 2: HTTP headers

Dla non-HTML (PDF, obrazy):

Link: <https://example.com/strona>; rel="alternate"; hreflang="pl-PL",
      <https://example.com/en/page>; rel="alternate"; hreflang="en-US",
      <https://example.com/>; rel="alternate"; hreflang="x-default"

Zaleta: działa dla plików nie-HTML Wada: trudniej diagnozować, wymaga konfiguracji serwera

Metoda 3: Sitemap.xml

<url>
  <loc>https://example.com/strona</loc>
  <xhtml:link rel="alternate" hreflang="pl-PL" href="https://example.com/strona" />
  <xhtml:link rel="alternate" hreflang="en-US" href="https://example.com/en/page" />
  <xhtml:link rel="alternate" hreflang="x-default" href="https://example.com/" />
</url>

Zaleta: centralizacja, łatwy update masowy Wada: Google czasem ignoruje hreflang z sitemap (preferuje HTML)

Self-reference i return links

To dwie najczęściej naruszane zasady:

Self-reference

Każda strona musi mieć hreflang do siebie samej:

Źle (na PL):

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

Dobrze (na PL):

<link rel="alternate" hreflang="pl-PL" href="https://example.com/strona" />
<link rel="alternate" hreflang="en-US" href="https://example.com/en/page" />

Return links

Jeśli strona A linkuje do B, B musi linkować do A:

Źle:

  • PL: <link hreflang="en-US" href="/en/page" />
  • EN: brak hreflang na PL

Dobrze:

  • PL: <link hreflang="en-US" href="/en/page" /> + <link hreflang="pl-PL" href="/strona" />
  • EN: <link hreflang="pl-PL" href="/strona" /> + <link hreflang="en-US" href="/en/page" />

Brak return link = Google ignoruje cały hreflang dla obu stron.

Strategie URL dla wielojęzycznych stron

Strategia 1: Subdirectory (recommended)

example.com/        (PL — root)
example.com/en/     (EN)
example.com/de/     (DE)

Zalety: prosta, jeden hosting, autorytet domeny się akumuluje, łatwa migracja Wady: może być mniej „lokalna" w niektórych rynkach (mniej zaufania)

Strategia 2: Subdomain

example.com         (PL)
en.example.com      (EN)
de.example.com      (DE)

Zalety: każdy język może mieć własny serwer/CDN Wady: Google traktuje subdomeny jako semi-niezależne, autorytet się dzieli

Strategia 3: ccTLD (country code TLD)

example.pl   (PL)
example.com  (EN)
example.de   (DE)

Zalety: najlepszy lokalny ranking (Google preferuje ccTLD dla rynku) Wady: każda domena buduje autorytet od zera, drogie

Strategia 4: gTLD + parametr (NIE rób tego)

example.com/?lang=pl
example.com/?lang=en

❌ Google nie indeksuje tego jak osobne wersje. Unikaj parametrów.

Najczęstsze błędy hreflang i jak je wykryć

Błąd 1: Wrong language codes

hreflang="polish" — nie istnieje ❌ hreflang="pl_PL" — z underscore zamiast hyphen ❌ hreflang="PL-pl" — odwrócona kolejność ✅ hreflang="pl-PL" — poprawnie (ISO 639-1 + ISO 3166-1)

Błąd 2: Hreflang na stronach noindex

Strona z noindex nie powinna mieć hreflang. Google nie indeksuje strony, więc cały graph hreflang jest „wybity".

Błąd 3: Cykle bez x-default

Set hreflang bez x-default = Google nie wie, którą wersję pokazać niezgodnym językom.

Błąd 4: Niespójne sitemapy

Sitemap PL listuje /pl/strona, sitemap EN listuje /en/page, ale hreflang w HTML wskazuje inne URL-e. Google ignoruje sygnały konfliktujące.

Błąd 5: HTTP/HTTPS mismatch

<link hreflang="pl-PL" href="http://example.com/" />
<link hreflang="en-US" href="https://example.com/en/" />

Niespójne protokoły = Google ignoruje. Trzymaj się jednego.

Narzędzia weryfikacji

  1. Screaming Frog — Crawl → Hreflang Tab → wskazuje błędy 1:1, return links
  2. GSC International Targeting (legacy, ale działa) — pokazuje hreflang errors
  3. Hreflang Tags Testing Tool (online) — sprawdza pojedynczą stronę
  4. Sitebulb — komplet audytu z hreflang

Po wdrożeniu: weryfikacja w Screaming Frog (crawl all pages) — 0 errors w hreflang tab.

Hreflang vs canonical

Częsta konfuzja:

  • Canonical — „ta strona to oryginał" lub „canonical jest gdzie indziej" (dotyczy wersji tego samego języka)
  • Hreflang — „ta strona ma wersje w innych językach"

Razem:

<link rel="canonical" href="https://example.com/strona" />
<link rel="alternate" hreflang="pl-PL" href="https://example.com/strona" />
<link rel="alternate" hreflang="en-US" href="https://example.com/en/page" />

Każda wersja językowa ma canonical = self (nie do innej wersji językowej!).

Hreflang dla nflo.pl + nflo.tech (case study)

ARDURA Lab buduje strony dla nFlo, które ma:

  • nflo.pl — bazowa polska
  • nflo.tech — angielska kopia

Implementacja:

Na nflo.pl/uslugi/audyt-bezpieczenstwa:

<link rel="alternate" hreflang="pl-PL" href="https://nflo.pl/uslugi/audyt-bezpieczenstwa" />
<link rel="alternate" hreflang="en" href="https://nflo.tech/services/security-audit" />
<link rel="alternate" hreflang="x-default" href="https://nflo.tech/services/security-audit" />
<link rel="canonical" href="https://nflo.pl/uslugi/audyt-bezpieczenstwa" />

Na nflo.tech/services/security-audit:

<link rel="alternate" hreflang="pl-PL" href="https://nflo.pl/uslugi/audyt-bezpieczenstwa" />
<link rel="alternate" hreflang="en" href="https://nflo.tech/services/security-audit" />
<link rel="alternate" hreflang="x-default" href="https://nflo.tech/services/security-audit" />
<link rel="canonical" href="https://nflo.tech/services/security-audit" />

Efekt: Google wie, że PL i EN to ta sama usługa, ale w różnych językach. Brak kanibalizacji, każda wersja rankuje na swój rynek.

Podsumowanie

Hreflang 2026:

  1. Wybierz formatpl-PL lub pl (zależy od strategii)
  2. Wdroż w HTML head lub sitemap (jedno miejsce, nie dwa)
  3. Self-reference na każdej stronie
  4. Return links — symetryczne mapping
  5. x-default zawsze obecny
  6. Weryfikacja Screaming Frog po wdrożeniu

Międzynarodowa strona bez hreflang = strzelanie sobie w stopę. Z hreflang = każdy rynek dostaje swój content, żaden nie konkuruje z innym.

Zamów audyt international SEO — sprawdzimy obecny stan hreflang i przygotujemy plan naprawczy.

Pojęcia z tego artykułu

Potrzebujesz pomocy z tym tematem?

Zamów bezpłatny audyt i dowiedz się, jak możemy pomóc Twojej firmie rosnąć w internecie.

Bezpłatna wycena