S.
  • Usługi
  • Dla kogo
  • Rozwiązania
  • Realizacje
  • O mnie
  • Know-how
  • Blog
Rozpocznij projekt
EN/PL/RU
  • Usługi01
  • Dla kogo02
  • Rozwiązania03
  • Realizacje04
  • O mnie05
  • Know-how06
  • Blog07
Rozpocznij projekt
EN/PL/RU
Vlad Sedenko
Niezależny web product developer
UE / Polska / Warszawa
Produkty
  • NextWooStorefront w Next.js dla WooCommerce
© 2026. Wszelkie prawa zastrzeżone
Usługi
  • Product Discovery
  • Projektowanie UX/UI
  • Budowa MVP
  • Rozwój SaaS
  • Redesign strony
  • Bezpieczeństwo aplikacji webowych
  • Optymalizacja konwersji
  • Integracje API i automatyzacja biznesu
  • Wsparcie produktu
Odkryj
  • Usługi
  • Dla kogo
  • Realizacje
  • Rozwiązania
  • O mnie
  • Blog
  • Know-how
  • Kontakt
Rozpocznij projekt
  • vlad@sedenko.net
  • LinkedIn
  • Prywatność/Pliki cookie
Know-how/Checklista SEO dla Next.js: kompletny przewodnik po App Routerze (2026)

Część 3 z 22

Canonical i hreflang: jedna strona, jeden adres

Canonical i hreflang w Next.js: walka z duplikatami, wzajemne linki językowe, zlokalizowane slugi i poprawny x-default.

2026-07-15
Canonical i hreflang: jedna strona, jeden adres

Wszystkie tematy przewodnika

Praktyczna checklista SEO dla Next.js, sekcja po sekcji: strategia renderowania, Metadata API, hreflang, dane strukturalne, Core Web Vitals i optymalizacja pod wyszukiwarki AI.

Zduplikowana treść to cichy zabójca witryn wielojęzycznych i stron z parametrami. Naprawiają to dwa mechanizmy.

Canonical mówi wyszukiwarkom, który URL jest „prawdziwy", gdy tę samą treść serwuje kilka adresów (parametry śledzące, ukośniki, paginacja):

export async function generateMetadata({ params }): Promise<Metadata> {
  return {
    alternates: {
      canonical: `/blog/${params.slug}`,
    },
  };
}

hreflang informuje, jakie wersje językowe strony istnieją, żeby polski użytkownik dostał w wynikach polską stronę:

export async function generateMetadata({ params }): Promise<Metadata> {
  const { lang, slug } = params;
  return {
    alternates: {
      canonical: `/${lang}/blog/${slug}`,
      languages: {
        en: `/en/blog/${slug}`,
        pl: `/pl/blog/${slug}`,
        ru: `/ru/blog/${slug}`,
        "x-default": `/en/blog/${slug}`,
      },
    },
  };
}

Błędy, które kosztują realny ruch:

  • hreflang musi być wzajemny. Jeśli strona EN wskazuje wersję PL, strona PL musi wskazywać z powrotem EN — inaczej Google ignoruje całą grupę.
  • Każda strona musi zawierać samą siebie w mapie languages.
  • Zlokalizowane slugi: jeśli polski wpis żyje pod innym slugiem, hreflang musi wskazywać rzeczywisty zlokalizowany URL, a nie mechaniczne /pl/ + ten sam slug. Generuj mapę ze źródła treści, nie hardkoduj.
  • x-default obsługuje użytkowników, których języka nie wspierasz — skieruj go na główną lokalizację.
  • Canonical musi prowadzić do strony zwracającej 200 i bez noindex — canonical do przekierowującego URL-a jest ignorowany.

Checklista:

  • Samoodnoszący się canonical na każdej indeksowalnej stronie
  • hreflang generowany z prawdziwych zlokalizowanych slugów, wzajemny we wszystkich kierunkach
  • Obecny x-default
  • Parametry URL (utm, filtry, sortowanie) kanonizowane do czystego adresu
← WsteczMetadata API: tytuły, opisy i wzorzec szablonuDalej →Open Graph i dynamiczne obrazki OG

01—22

Wszystkie tematy przewodnika

  1. 01Strategia renderowania: co tak naprawdę widzi crawler?→
  2. 02Metadata API: tytuły, opisy i wzorzec szablonu→
  3. 03Canonical i hreflang: jedna strona, jeden adres•
  4. 04Open Graph i dynamiczne obrazki OG→
  5. 05sitemap.ts i robots.ts: konwencje plikowe zamiast ręcznego XML→
  6. 06Dane strukturalne: JSON-LD, który zarabia na rich results→
  7. 07Obrazki, fonty i skrypty: klasyczne trio wydajności→
  8. 08Core Web Vitals: trzy liczby, które mierzy Google→
  9. 09Przekierowania, 404 i kody odpowiedzi→
  10. 10Cache i świeżość treści→
  11. 11AEO/GEO: jak być cytowanym przez ChatGPT, Perplexity i Google AI Overviews→
  12. 12Monitoring: SEO to pętla, nie zadanie na start→
  13. 13Zaufanie i E-E-A-T: jak uczynić witrynę wiarygodną→
  14. 14Image SEO: jak zamienić obrazki w ruch→
  15. 15Linkowanie wewnętrzne i architektura witryny→
  16. 16Intencje wyszukiwania: strony pod to, czego ludzie naprawdę szukają→
  17. 17Programmatic SEO w Next.js: strony na skalę bez spamu→
  18. 18Migracja SEO: przejście na Next.js bez utraty ruchu→
  19. 19Paginacja i nawigacja fasetowa bez puchnięcia indeksu→
  20. 20Dostępność i SEO: jedna praca — dwie nagrody→
  21. 21Rozkład treści: odświeżyć, skonsolidować czy usunąć→
  22. 22Off-page dla developerów: linki, których się nie kupuje→

Wolisz, żeby ktoś zrobił to za Ciebie?

Audytuję i naprawiam techniczne SEO na stronach Next.js — indeksowanie, szybkość, hreflang i widoczność w AI.

Usługa technicznego SEO