{"id":228,"date":"2026-07-01T12:02:15","date_gmt":"2026-07-01T10:02:15","guid":{"rendered":"https:\/\/projektwordpress.pl\/index.php\/2026\/07\/01\/polylang-jak-dodac-drugi-jezyk-do-wordpressa-i-ustawic-poprawne-hreflang-bez-duplikacji-tresci\/"},"modified":"2026-07-01T12:02:15","modified_gmt":"2026-07-01T10:02:15","slug":"polylang-jak-dodac-drugi-jezyk-do-wordpressa-i-ustawic-poprawne-hreflang-bez-duplikacji-tresci","status":"publish","type":"post","link":"https:\/\/projektwordpress.pl\/index.php\/2026\/07\/01\/polylang-jak-dodac-drugi-jezyk-do-wordpressa-i-ustawic-poprawne-hreflang-bez-duplikacji-tresci\/","title":{"rendered":"Polylang &#8211; jak doda\u0107 drugi j\u0119zyk do WordPressa i ustawi\u0107 poprawne hreflang bez duplikacji tre\u015bci"},"content":{"rendered":"<p>Drugi j\u0119zyk na stronie to nie tylko przet\u0142umaczone s\u0142owa. To tak\u017ce nowe adresy URL, osobne menu, porz\u0105dek w kategoriach oraz poprawne znaczniki hreflang, kt\u00f3re m\u00f3wi\u0105 Google kt\u00f3ra wersja jest dla kt\u00f3rego u\u017cytkownika. Gdy brakuje sp\u00f3jnego systemu, robi si\u0119 chaos i pojawiaj\u0105 si\u0119 duplikaty tre\u015bci, a wyniki w wyszukiwarce zaczynaj\u0105 \u017cy\u0107 w\u0142asnym \u017cyciem.<\/p>\n<p>Polylang porz\u0105dkuje temat wieloj\u0119zyczno\u015bci w WordPressie od podstaw. Ka\u017cdy wpis, strona, kategoria i menu maj\u0105 przypisany j\u0119zyk i w\u0142asny adres. Wersje j\u0119zykowe s\u0105 ze sob\u0105 powi\u0105zane, wi\u0119c roboty wyszukiwarki widz\u0105 je jako odpowiedniki, a nie kopie. W codziennej pracy to prostsze publikowanie, mniej r\u0119cznych obej\u015b\u0107 i mniej b\u0142\u0119d\u00f3w SEO.<\/p>\n<h2>Czym jest Polylang i kiedy ma sens<\/h2>\n<p>To wtyczka do tworzenia stron wieloj\u0119zycznych, kt\u00f3ra nie t\u0142umaczy automatycznie, tylko daje przejrzyst\u0105 struktur\u0119 tre\u015bci w wielu j\u0119zykach. Zaznaczasz j\u0119zyk tre\u015bci, tworzysz powi\u0105zan\u0105 wersj\u0119 w drugim j\u0119zyku i zarz\u0105dzasz nimi jak dwoma osobnymi wpisami po\u0142\u0105czonymi w par\u0119. Dzi\u0119ki temu \u0142atwo unikn\u0105\u0107 mieszania j\u0119zyk\u00f3w w listach wpis\u00f3w i kategoriach. W praktyce sprawdza si\u0119 na stronach firmowych, blogach, serwisach z dokumentacj\u0105 oraz mniejszych sklepach, gdzie wa\u017cny jest porz\u0105dek w URL i poprawny hreflang.<\/p>\n<p><a href=\"https:\/\/wordpress.org\/plugins\/polylang\/\">Zobacz pe\u0142ne mo\u017cliwo\u015bci<\/a><\/p>\n<h2>Jak dzia\u0142a dodawanie drugiego j\u0119zyka w praktyce<\/h2>\n<p>Po instalacji dodajesz j\u0119zyk domy\u015blny oraz drugi j\u0119zyk. Przy ka\u017cdym wpisie i stronie pojawia si\u0119 panel j\u0119zyk\u00f3w. Najpierw przypisujesz tre\u015bci do w\u0142a\u015bciwego j\u0119zyka, a potem obok tytu\u0142u masz przycisk dodaj t\u0142umaczenie. Tworzy to nowy wpis po\u0142\u0105czony z orygina\u0142em. Obie wersje s\u0105 niezale\u017cne redakcyjnie, ale Polylang zna ich relacje.<\/p>\n<p>Adresy URL mog\u0105 mie\u0107 prefiks j\u0119zyka, na przyk\u0142ad domena pl dla polskiego i domena com z katalogiem en dla angielskiego. Ka\u017cda wersja korzysta z w\u0142asnych menu i wid\u017cet\u00f3w, a Polylang pilnuje aby listy tre\u015bci i archiwa by\u0142y w jednym j\u0119zyku.<\/p>\n<p>Kluczowe jest to, \u017ce po po\u0142\u0105czeniu wersji w par\u0119 pojawiaj\u0105 si\u0119 znaczniki hreflang. Wyszukiwarka dostaje jasn\u0105 informacj\u0119 o alternatywnej wersji j\u0119zykowej i nie myli stron.<\/p>\n<h2>Hreflang w Polylang co naprawd\u0119 ustawia w nag\u0142\u00f3wku strony<\/h2>\n<p>Wtyczka dodaje do sekcji head linki alternatywne hreflang wskazuj\u0105ce wszystkie dost\u0119pne wersje danej podstrony. Ka\u017cda strona zna swoje odpowiedniki. \u017beby to dzia\u0142a\u0142o bezb\u0142\u0119dnie, musisz \u0142\u0105czy\u0107 t\u0142umaczenia w pary i pilnowa\u0107 aby jedna wersja nie by\u0142a powi\u0105zana z kilkoma innymi naraz. Nie ma potrzeby r\u0119cznie edytowa\u0107 kodu, mechanizm dzia\u0142a automatycznie dla wpis\u00f3w, stron i taksonomii.<\/p>\n<h2>Struktura adres\u00f3w dla j\u0119zyk\u00f3w i wp\u0142yw na SEO<\/h2>\n<p>Mo\u017cesz wybra\u0107 katalog j\u0119zyka, subdomen\u0119 albo osobn\u0105 domen\u0119 dla ka\u017cdego j\u0119zyka. Najcz\u0119\u015bciej wystarcza katalog, bo jest prosty i przewidywalny. Wa\u017cne aby nie miesza\u0107 podej\u015b\u0107 i trzyma\u0107 si\u0119 jednego schematu na ca\u0142ej stronie. Hreflang b\u0119dzie dzia\u0142a\u0142 w ka\u017cdym wariancie, o ile t\u0142umaczenia s\u0105 poprawnie po\u0142\u0105czone.<\/p>\n<p>Opcja ukrycia kodu j\u0119zyka dla j\u0119zyka domy\u015blnego bywa wygodna, ale wymaga konsekwentnych link\u00f3w wewn\u0119trznych. Po w\u0142\u0105czeniu tego ustawienia warto zapisa\u0107 bezpo\u015brednie odno\u015bniki i sprawdzi\u0107 przekierowania oraz map\u0119 witryny aby unikn\u0105\u0107 podw\u00f3jnych adres\u00f3w.<\/p>\n<h2>Unikanie duplikacji tre\u015bci w t\u0142umaczeniach<\/h2>\n<p>Najcz\u0119stszy b\u0142\u0105d to publikowanie dw\u00f3ch bardzo podobnych stron w tym samym j\u0119zyku i brak po\u0142\u0105czenia ich z t\u0142umaczeniem. W Polylang tworzysz osobny wpis dla ka\u017cdego j\u0119zyka i \u0142\u0105czysz je mi\u0119dzy sob\u0105. Dzi\u0119ki temu ka\u017cda wersja ma w\u0142asny tytu\u0142, tre\u015b\u0107, slug i metadane. Wyszukiwarka widzi dwa r\u00f3\u017cne dokumenty, a nie kopi\u0119.<\/p>\n<p>Przy kopiowaniu tre\u015bci do t\u0142umaczenia pami\u0119taj o unikalnych tytu\u0142ach i opisach SEO, przet\u0142umacz anchory link\u00f3w oraz teksty alternatywne obraz\u00f3w. Je\u015bli jaka\u015b podstrona nie ma jeszcze t\u0142umaczenia, rozwa\u017c w\u0142\u0105czenie ukrywania tre\u015bci bez t\u0142umaczenia, aby u\u017cytkownik angielski nie trafia\u0142 na polsk\u0105 wersj\u0119 w listach kategorii.<\/p>\n<p>Dla sklep\u00f3w dobrym zwyczajem jest t\u0142umaczenie atrybut\u00f3w i kategorii produkt\u00f3w, a dopiero potem produkt\u00f3w. Zachowasz sp\u00f3jne filtry i unikniesz mieszania j\u0119zyk\u00f3w na stronach archiwum. Sam mechanizm hreflang zadzia\u0142a poprawnie, gdy ka\u017cdy produkt ma sparowan\u0105 wersj\u0119 w drugim j\u0119zyku.<\/p>\n<h2>Prze\u0142\u0105cznik j\u0119zyk\u00f3w w menu i nawigacji<\/h2>\n<p>Wtyczka dodaje element prze\u0142\u0105cznika j\u0119zyk\u00f3w do menu oraz wid\u017cet, kt\u00f3ry mo\u017cesz umie\u015bci\u0107 w nag\u0142\u00f3wku lub stopce. Dobr\u0105 praktyk\u0105 jest u\u017cywanie nazw j\u0119zyk\u00f3w zamiast samych flag, bo nazwa jest bardziej jednoznaczna dla u\u017cytkownika i czytnik\u00f3w ekranu. Prze\u0142\u0105cznik prowadzi do odpowiadaj\u0105cej strony w drugim j\u0119zyku je\u015bli taka istnieje albo do strony g\u0142\u00f3wnej tego j\u0119zyka.<\/p>\n<h2>Instalacja i pierwsze kroki w WordPressie<\/h2>\n<p>Zainstaluj wtyczk\u0119 z repozytorium WordPress i aktywuj. W panelu dodaj j\u0119zyk domy\u015blny oraz drugi j\u0119zyk i zdecyduj o formacie URL. Zapisz ustawienia bezpo\u015brednich odno\u015bnik\u00f3w, aby WordPress przebudowa\u0142 regu\u0142y dla nowych adres\u00f3w.<\/p>\n<p>Nast\u0119pnie przejd\u017a po kluczowych podstronach i przypisz im j\u0119zyki. Utw\u00f3rz t\u0142umaczenia tam, gdzie s\u0105 potrzebne. W menu dodaj prze\u0142\u0105cznik j\u0119zykowy i skonfiguruj jego wygl\u0105d. Na tym etapie dobrze jest te\u017c przet\u0142umaczy\u0107 nag\u0142\u00f3wek serwisu i stopk\u0119 w panelu t\u0142umacze\u0144 ci\u0105g\u00f3w.<\/p>\n<h2>Ustawienia t\u0142umacze\u0144 tre\u015bci taksonomii i medi\u00f3w<\/h2>\n<p>Polylang umo\u017cliwia t\u0142umaczenie kategorii, tag\u00f3w i w\u0142asnych taksonomii. Ka\u017cda kategoria ma wersj\u0119 w drugim j\u0119zyku i w\u0142asny adres, a archiwa wy\u015bwietlaj\u0105 tylko tre\u015bci w swoim j\u0119zyku. Podobnie menu mo\u017cesz budowa\u0107 niezale\u017cnie dla ka\u017cdego j\u0119zyka, co u\u0142atwia dopasowanie nawigacji do rynku.<\/p>\n<p>W panelu t\u0142umacze\u0144 ci\u0105g\u00f3w przet\u0142umaczysz tytu\u0142 witryny, slogany, teksty przycisk\u00f3w oraz frazy dostarczane przez motyw i wtyczki. W bibliotece medi\u00f3w mo\u017cesz t\u0142umaczy\u0107 teksty alternatywne i podpisy, co poprawia dost\u0119pno\u015b\u0107 oraz SEO obraz\u00f3w w ka\u017cdej wersji j\u0119zykowej.<\/p>\n<h2>Typowe b\u0142\u0119dy i konflikty oraz szybkie diagnozowanie<\/h2>\n<p>Je\u015bli po zmianie ustawie\u0144 pojawiaj\u0105 si\u0119 b\u0142\u0119dy 404, zapisz ponownie bezpo\u015brednie odno\u015bniki. Gdy na stronie wida\u0107 mieszane j\u0119zyki, sprawd\u017a czy tre\u015bci bez t\u0142umaczenia s\u0105 ukrywane oraz czy kategorie maj\u0105 swoje odpowiedniki. Podw\u00f3jne hreflang bywa skutkiem w\u0142\u0105czonych jednocze\u015bnie dw\u00f3ch mechanizm\u00f3w ich dodawania. Zostaw tylko ten z Polylang. Pami\u0119taj te\u017c o wyczyszczeniu cache po wi\u0119kszych zmianach j\u0119zykowych.<\/p>\n<h2>Dla kogo Polylang b\u0119dzie dobrym wyborem<\/h2>\n<p>Dla stron firmowych, blog\u00f3w i serwis\u00f3w z dokumentacj\u0105, kt\u00f3re chc\u0105 mie\u0107 drugi j\u0119zyk bez przebudowy ca\u0142ego systemu. Dla sklep\u00f3w i projekt\u00f3w contentowych, gdzie wa\u017cna jest redakcyjna kontrola nad t\u0142umaczeniem i czyste adresy. Je\u015bli planujesz kilka j\u0119zyk\u00f3w i chcesz zachowa\u0107 porz\u0105dek w nawigacji oraz SEO, Polylang daje solidny fundament.<\/p>\n<p><a href=\"https:\/\/wordpress.org\/plugins\/polylang\/\">Sprawd\u017a, czy to ma sens u Ciebie<\/a><\/p>\n<p>Przy rozbudowanych serwisach przed wdro\u017ceniem na produkcj\u0119 warto przygotowa\u0107 kr\u00f3tki proof of concept na kopii strony i sprawdzi\u0107 przep\u0142yw pracy redakcji, dzia\u0142anie prze\u0142\u0105cznika oraz poprawno\u015b\u0107 hreflang. To oszcz\u0119dza czas i eliminuje ryzyko duplikacji tre\u015bci ju\u017c na starcie.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Drugi j\u0119zyk na stronie to nie tylko przet\u0142umaczone s\u0142owa. To tak\u017ce nowe adresy URL, osobne menu, porz\u0105dek w kategoriach oraz poprawne znaczniki hreflang, kt\u00f3re&hellip;<\/p>\n","protected":false},"author":1,"featured_media":229,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7],"tags":[],"class_list":["post-228","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-wtyczki-wordpress"],"_links":{"self":[{"href":"https:\/\/projektwordpress.pl\/index.php\/wp-json\/wp\/v2\/posts\/228","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/projektwordpress.pl\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/projektwordpress.pl\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/projektwordpress.pl\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/projektwordpress.pl\/index.php\/wp-json\/wp\/v2\/comments?post=228"}],"version-history":[{"count":0,"href":"https:\/\/projektwordpress.pl\/index.php\/wp-json\/wp\/v2\/posts\/228\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/projektwordpress.pl\/index.php\/wp-json\/wp\/v2\/media\/229"}],"wp:attachment":[{"href":"https:\/\/projektwordpress.pl\/index.php\/wp-json\/wp\/v2\/media?parent=228"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/projektwordpress.pl\/index.php\/wp-json\/wp\/v2\/categories?post=228"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/projektwordpress.pl\/index.php\/wp-json\/wp\/v2\/tags?post=228"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}