[{"data":1,"prerenderedAt":927},["ShallowReactive",2],{"post-hreflang-i-strona-wielojezyczna-od-strony-technicznej":3,"rel-hreflang-i-strona-wielojezyczna-od-strony-technicznej":857},{"id":4,"title":5,"author":6,"body":7,"category":830,"cover":831,"date":832,"description":833,"draft":834,"extension":835,"faq":836,"meta":837,"navigation":838,"path":839,"readingTime":840,"seo":841,"sources":843,"stem":848,"subcategory":849,"tags":850,"takeaways":855,"updated":831,"__hash__":856},"blog/blog/hreflang-i-strona-wielojezyczna-od-strony-technicznej.md","Hreflang i strona wielojęzyczna od strony technicznej","Piotr Stankiewicz",{"type":8,"value":9,"toc":808},"minimark",[10,15,19,22,25,29,32,35,175,194,201,209,213,216,220,223,227,230,235,246,387,390,394,401,443,446,450,457,463,467,470,555,564,581,585,588,599,612,631,637,647,654,658,661,665,672,679,683,686,694,698,706,710,713,719,733,739,748,755,759,762,765,768,772,776,779,783,790,794,797,801,804],[11,12,14],"h2",{"id":13},"hreflang-seo-krótka-odpowiedź","Hreflang SEO (krótka odpowiedź)",[16,17,18],"p",{},"Hreflang to atrybut HTML, który informuje Google, w jakim języku i dla jakiego regionu przeznaczona jest dana wersja strony. Wdrażasz go jako znaczniki w kodzie HTML, w pliku sitemap XML lub w nagłówkach HTTP. Dzięki niemu Google wyświetla użytkownikowi poprawną wersję językową, zamiast serwować na przykład polską wersję komuś szukającemu z Niemiec.",[16,20,21],{},"Bez hreflang wielojęzyczna strona może trafiać do złych odbiorców, tracić widoczność na rynkach docelowych i wytwarzać pozorne zduplikowanie treści między wersjami językowymi. To temat typowo techniczny, ale konsekwencje jego zaniedbania są odczuwalne w liczbach: mniejszy ruch, niższy CTR, słabsze pozycje na rynkach zagranicznych.",[16,23,24],{},"W tym artykule wyjaśniamy, jak działa hreflang, jak go poprawnie zaimplementować, jakich błędów unikać i kiedy w ogóle go potrzebujesz. Piszemy z perspektywy technicznej, ale tak, żeby mógł to zrozumieć właściciel firmy bez zaplecza programistycznego.",[11,26,28],{"id":27},"czym-jest-hreflang-i-jak-działa","Czym jest hreflang i jak działa",[16,30,31],{},"Atrybut hreflang pojawił się w 2011 roku jako odpowiedź Google na rosnącą liczbę wielojęzycznych serwisów. Jego zadaniem jest wskazanie robotowi Google relacji między różnymi wersjami językowymi tej samej strony. Jeśli masz stronę po polsku, angielsku i niemiecku, hreflang mówi Google, że to ta sama treść, a nie trzy osobne dokumenty z duplikatem.",[16,33,34],{},"Składnia podstawowego znacznika wygląda tak:",[36,37,42],"pre",{"className":38,"code":39,"language":40,"meta":41,"style":41},"language-html shiki shiki-themes github-light github-dark","\u003Clink rel=\"alternate\" hreflang=\"pl\" href=\"https://twoja-strona.pl/pl/oferta/\" />\n\u003Clink rel=\"alternate\" hreflang=\"en\" href=\"https://twoja-strona.pl/en/offer/\" />\n\u003Clink rel=\"alternate\" hreflang=\"de\" href=\"https://twoja-strona.pl/de/angebot/\" />\n\u003Clink rel=\"alternate\" hreflang=\"x-default\" href=\"https://twoja-strona.pl/oferta/\" />\n","html","",[43,44,45,88,117,146],"code",{"__ignoreMap":41},[46,47,50,54,58,62,65,69,72,74,77,80,82,85],"span",{"class":48,"line":49},"line",1,[46,51,53],{"class":52},"sVt8B","\u003C",[46,55,57],{"class":56},"s9eBZ","link",[46,59,61],{"class":60},"sScJk"," rel",[46,63,64],{"class":52},"=",[46,66,68],{"class":67},"sZZnC","\"alternate\"",[46,70,71],{"class":60}," hreflang",[46,73,64],{"class":52},[46,75,76],{"class":67},"\"pl\"",[46,78,79],{"class":60}," href",[46,81,64],{"class":52},[46,83,84],{"class":67},"\"https://twoja-strona.pl/pl/oferta/\"",[46,86,87],{"class":52}," />\n",[46,89,91,93,95,97,99,101,103,105,108,110,112,115],{"class":48,"line":90},2,[46,92,53],{"class":52},[46,94,57],{"class":56},[46,96,61],{"class":60},[46,98,64],{"class":52},[46,100,68],{"class":67},[46,102,71],{"class":60},[46,104,64],{"class":52},[46,106,107],{"class":67},"\"en\"",[46,109,79],{"class":60},[46,111,64],{"class":52},[46,113,114],{"class":67},"\"https://twoja-strona.pl/en/offer/\"",[46,116,87],{"class":52},[46,118,120,122,124,126,128,130,132,134,137,139,141,144],{"class":48,"line":119},3,[46,121,53],{"class":52},[46,123,57],{"class":56},[46,125,61],{"class":60},[46,127,64],{"class":52},[46,129,68],{"class":67},[46,131,71],{"class":60},[46,133,64],{"class":52},[46,135,136],{"class":67},"\"de\"",[46,138,79],{"class":60},[46,140,64],{"class":52},[46,142,143],{"class":67},"\"https://twoja-strona.pl/de/angebot/\"",[46,145,87],{"class":52},[46,147,149,151,153,155,157,159,161,163,166,168,170,173],{"class":48,"line":148},4,[46,150,53],{"class":52},[46,152,57],{"class":56},[46,154,61],{"class":60},[46,156,64],{"class":52},[46,158,68],{"class":67},[46,160,71],{"class":60},[46,162,64],{"class":52},[46,164,165],{"class":67},"\"x-default\"",[46,167,79],{"class":60},[46,169,64],{"class":52},[46,171,172],{"class":67},"\"https://twoja-strona.pl/oferta/\"",[46,174,87],{"class":52},[16,176,177,178,181,182,185,186,189,190,193],{},"Wartość atrybutu ",[43,179,180],{},"hreflang"," to kod języka zgodny z normą ISO 639-1, opcjonalnie rozszerzony o kod kraju ISO 3166-1 Alpha-2. Możesz użyć samego ",[43,183,184],{},"pl"," dla polskojęzycznych użytkowników bez wskazania kraju albo ",[43,187,188],{},"pl-PL"," dla polskiego w Polsce lub ",[43,191,192],{},"pl-CH"," dla polskiego w Szwajcarii, gdy te treści faktycznie się różnią.",[16,195,196,197,200],{},"Wartość ",[43,198,199],{},"x-default"," jest specjalna. Wskazuje wersję domyślną dla użytkowników, którzy nie pasują do żadnego z wymienionych języków ani regionów. Najczęściej kieruje do strony głównej w języku angielskim lub do strony z wyborem języka.",[202,203,206],"callout",{"title":204,"type":205},"Hreflang to wskazówka, nie nakaz","info",[16,207,208],{},"Google traktuje hreflang jako sygnał, nie polecenie. Jeśli dane geolokalizacyjne użytkownika, jego preferencje językowe przeglądarki i sygnały z historii wyszukiwania wskazują na inny język niż hreflang, Google może zignorować wskazanie. W praktyce jednak poprawnie wdrożony hreflang jest respektowany w zdecydowanej większości przypadków.",[11,210,212],{"id":211},"kiedy-hreflang-jest-potrzebny","Kiedy hreflang jest potrzebny",[16,214,215],{},"Nie każda wielojęzyczna strona wymaga hreflang w pierwszej kolejności. Warto sprawdzić, czy Twoja sytuacja faktycznie go uzasadnia.",[217,218],"feature-cards",{":items":219},"[{\"icon\":\"ph:globe-duotone\",\"title\":\"Kilka wersji językowych tej samej treści\",\"desc\":\"Masz stronę po polsku i po angielsku z tymi samymi usługami opisanymi w obu językach. Bez hreflang Google może traktować je jako duplikaty.\"},{\"icon\":\"ph:map-pin-duotone\",\"title\":\"Ten sam język, różne rynki regionalne\",\"desc\":\"Sprzedajesz po polsku zarówno w Polsce, jak i Polonii w Niemczech albo USA. Treści są niemal identyczne, ale skierowane do różnych grup.\"},{\"icon\":\"ph:currency-circle-dollar-duotone\",\"title\":\"Różne ceny lub oferty dla różnych rynków\",\"desc\":\"Twoja strona angielska ma inne ceny dla UK i dla USA. Hreflang z kodem kraju pozwala wskazać właściwą wersję dla każdego rynku.\"},{\"icon\":\"ph:magnifying-glass-duotone\",\"title\":\"Niska widoczność na rynkach zagranicznych\",\"desc\":\"Masz ruch z zagranicy, ale odbiorcy lądują na stronie w złym języku i szybko ją opuszczają. To typowy objaw braku hreflang.\"}]",[16,221,222],{},"Hreflang nie jest potrzebny, gdy masz jedną stronę w jednym języku. Nie jest też potrzebny, jeśli różne wersje językowe są całkowicie osobnymi domenami bez żadnego technicznego powiązania, chociaż wtedy i tak warto go rozważyć ze względu na sygnały SEO.",[11,224,226],{"id":225},"trzy-metody-wdrożenia-hreflang","Trzy metody wdrożenia hreflang",[16,228,229],{},"Hreflang możesz wdrożyć na trzy sposoby. Każdy ma inne zastosowanie, a wybór zależy od struktury technicznej serwisu.",[231,232,234],"h3",{"id":233},"metoda-1-znaczniki-w-sekcji-head","Metoda 1: Znaczniki w sekcji HEAD",[16,236,237,238,241,242,245],{},"Najprostsza i najczęstsza metoda. Umieszczasz znaczniki ",[43,239,240],{},"\u003Clink rel=\"alternate\" hreflang=\"...\">"," w sekcji ",[43,243,244],{},"\u003Chead>"," każdej strony. Kluczowa zasada: każda strona musi zawierać komplet znaczników dla wszystkich wersji językowych, łącznie z odnośnikiem do samej siebie.",[36,247,249],{"className":38,"code":248,"language":40,"meta":41,"style":41},"\u003C!-- Na stronie polskiej /pl/kontakt/ -->\n\u003Chead>\n  \u003Clink rel=\"alternate\" hreflang=\"pl\" href=\"https://example.com/pl/kontakt/\" />\n  \u003Clink rel=\"alternate\" hreflang=\"en\" href=\"https://example.com/en/contact/\" />\n  \u003Clink rel=\"alternate\" hreflang=\"de\" href=\"https://example.com/de/kontakt/\" />\n  \u003Clink rel=\"alternate\" hreflang=\"x-default\" href=\"https://example.com/en/contact/\" />\n\u003C/head>\n",[43,250,251,257,267,295,322,350,377],{"__ignoreMap":41},[46,252,253],{"class":48,"line":49},[46,254,256],{"class":255},"sJ8bj","\u003C!-- Na stronie polskiej /pl/kontakt/ -->\n",[46,258,259,261,264],{"class":48,"line":90},[46,260,53],{"class":52},[46,262,263],{"class":56},"head",[46,265,266],{"class":52},">\n",[46,268,269,272,274,276,278,280,282,284,286,288,290,293],{"class":48,"line":119},[46,270,271],{"class":52},"  \u003C",[46,273,57],{"class":56},[46,275,61],{"class":60},[46,277,64],{"class":52},[46,279,68],{"class":67},[46,281,71],{"class":60},[46,283,64],{"class":52},[46,285,76],{"class":67},[46,287,79],{"class":60},[46,289,64],{"class":52},[46,291,292],{"class":67},"\"https://example.com/pl/kontakt/\"",[46,294,87],{"class":52},[46,296,297,299,301,303,305,307,309,311,313,315,317,320],{"class":48,"line":148},[46,298,271],{"class":52},[46,300,57],{"class":56},[46,302,61],{"class":60},[46,304,64],{"class":52},[46,306,68],{"class":67},[46,308,71],{"class":60},[46,310,64],{"class":52},[46,312,107],{"class":67},[46,314,79],{"class":60},[46,316,64],{"class":52},[46,318,319],{"class":67},"\"https://example.com/en/contact/\"",[46,321,87],{"class":52},[46,323,325,327,329,331,333,335,337,339,341,343,345,348],{"class":48,"line":324},5,[46,326,271],{"class":52},[46,328,57],{"class":56},[46,330,61],{"class":60},[46,332,64],{"class":52},[46,334,68],{"class":67},[46,336,71],{"class":60},[46,338,64],{"class":52},[46,340,136],{"class":67},[46,342,79],{"class":60},[46,344,64],{"class":52},[46,346,347],{"class":67},"\"https://example.com/de/kontakt/\"",[46,349,87],{"class":52},[46,351,353,355,357,359,361,363,365,367,369,371,373,375],{"class":48,"line":352},6,[46,354,271],{"class":52},[46,356,57],{"class":56},[46,358,61],{"class":60},[46,360,64],{"class":52},[46,362,68],{"class":67},[46,364,71],{"class":60},[46,366,64],{"class":52},[46,368,165],{"class":67},[46,370,79],{"class":60},[46,372,64],{"class":52},[46,374,319],{"class":67},[46,376,87],{"class":52},[46,378,380,383,385],{"class":48,"line":379},7,[46,381,382],{"class":52},"\u003C/",[46,384,263],{"class":56},[46,386,266],{"class":52},[16,388,389],{},"Pominięcie którejkolwiek z wersji sprawia, że Google widzi niesymetryczny zestaw sygnałów i może zignorować całą grupę.",[231,391,393],{"id":392},"metoda-2-sitemap-xml","Metoda 2: Sitemap XML",[16,395,396,397,400],{},"Bardziej skalowalna dla dużych serwisów. Zamiast wstawiać znaczniki w kod każdej podstrony, dodajesz odpowiednie wpisy do pliku sitemap.xml. To rozwiązanie używa przestrzeni nazw ",[43,398,399],{},"xhtml",":",[36,402,406],{"className":403,"code":404,"language":405,"meta":41,"style":41},"language-xml shiki shiki-themes github-light github-dark","\u003Curl>\n  \u003Cloc>https://example.com/pl/oferta/\u003C/loc>\n  \u003Cxhtml:link rel=\"alternate\" hreflang=\"pl\" href=\"https://example.com/pl/oferta/\"/>\n  \u003Cxhtml:link rel=\"alternate\" hreflang=\"en\" href=\"https://example.com/en/offer/\"/>\n  \u003Cxhtml:link rel=\"alternate\" hreflang=\"de\" href=\"https://example.com/de/angebot/\"/>\n  \u003Cxhtml:link rel=\"alternate\" hreflang=\"x-default\" href=\"https://example.com/en/offer/\"/>\n\u003C/url>\n","xml",[43,407,408,413,418,423,428,433,438],{"__ignoreMap":41},[46,409,410],{"class":48,"line":49},[46,411,412],{},"\u003Curl>\n",[46,414,415],{"class":48,"line":90},[46,416,417],{},"  \u003Cloc>https://example.com/pl/oferta/\u003C/loc>\n",[46,419,420],{"class":48,"line":119},[46,421,422],{},"  \u003Cxhtml:link rel=\"alternate\" hreflang=\"pl\" href=\"https://example.com/pl/oferta/\"/>\n",[46,424,425],{"class":48,"line":148},[46,426,427],{},"  \u003Cxhtml:link rel=\"alternate\" hreflang=\"en\" href=\"https://example.com/en/offer/\"/>\n",[46,429,430],{"class":48,"line":324},[46,431,432],{},"  \u003Cxhtml:link rel=\"alternate\" hreflang=\"de\" href=\"https://example.com/de/angebot/\"/>\n",[46,434,435],{"class":48,"line":352},[46,436,437],{},"  \u003Cxhtml:link rel=\"alternate\" hreflang=\"x-default\" href=\"https://example.com/en/offer/\"/>\n",[46,439,440],{"class":48,"line":379},[46,441,442],{},"\u003C/url>\n",[16,444,445],{},"Ta metoda działa dobrze przy setkach lub tysiącach podstron, gdzie ręczne edytowanie kodu każdej strony byłoby niepraktyczne.",[231,447,449],{"id":448},"metoda-3-nagłówki-http","Metoda 3: Nagłówki HTTP",[16,451,452,453,456],{},"Dedykowana dla plików, które nie mają sekcji HTML, na przykład dokumentów PDF. Serwer zwraca nagłówek ",[43,454,455],{},"Link"," z odpowiednimi wartościami. Jest to rzadko stosowana metoda i ma sens tylko dla konkretnych typów zasobów.",[458,459],"compare-cols",{":a":460,":b":461,":neutral":462},"{\"title\":\"Znaczniki w HEAD\",\"items\":[\"Łatwe wdrożenie w CMS\",\"Działa niezależnie od sitemapa\",\"Trudniejsze do utrzymania przy dużej liczbie stron\",\"Ryzyko pominięcia strony przy dodawaniu nowych\"]}","{\"title\":\"Sitemap XML\",\"items\":[\"Skalowalne dla dużych serwisów\",\"Jeden plik do zarządzania\",\"Wymaga aktualizacji przy każdej nowej podstronie\",\"Nie działa offline, wymaga poprawnego serwowania sitemapa\"]}","true",[11,464,466],{"id":465},"struktura-url-a-hreflang","Struktura URL a hreflang",[16,468,469],{},"Przed wdrożeniem hreflang trzeba zdecydować, jak zorganizować adresy URL dla różnych wersji językowych. Google akceptuje kilka podejść, każde ma inne implikacje SEO.",[471,472,473,489],"table",{},[474,475,476],"thead",{},[477,478,479,483,486],"tr",{},[480,481,482],"th",{},"Struktura",[480,484,485],{},"Przykład",[480,487,488],{},"Uwagi",[490,491,492,510,526,542],"tbody",{},[477,493,494,498,507],{},[495,496,497],"td",{},"Oddzielna domena ccTLD",[495,499,500,503,504],{},[43,501,502],{},"example.pl",", ",[43,505,506],{},"example.de",[495,508,509],{},"Najsilniejszy sygnał geograficzny, wysoki koszt utrzymania",[477,511,512,515,523],{},[495,513,514],{},"Subdomena z kodem języka",[495,516,517,503,520],{},[43,518,519],{},"pl.example.com",[43,521,522],{},"de.example.com",[495,524,525],{},"Wyraźny podział, ale nieco słabszy niż ccTLD",[477,527,528,531,539],{},[495,529,530],{},"Podkatalog z kodem języka",[495,532,533,503,536],{},[43,534,535],{},"example.com/pl/",[43,537,538],{},"example.com/de/",[495,540,541],{},"Najczęstsze rozwiązanie, prosty w utrzymaniu",[477,543,544,547,552],{},[495,545,546],{},"Parametr URL",[495,548,549],{},[43,550,551],{},"example.com?lang=pl",[495,553,554],{},"Niepolecane przez Google, trudniejsze do obsługi przez roboty",[16,556,557,558,563],{},"Dla większości firm wybór podkatalogów jest optymalny. Cały autorytet domeny gromadzi się w jednym miejscu, a struktura URL jest czytelna zarówno dla Google, jak i dla użytkowników. Jeśli planujesz budować silną pozycję na konkretnym rynku krajowym, ccTLD daje wyraźniejszy sygnał geograficzny, ale wymaga osobnych zasobów na budowanie autorytetu każdej domeny z osobna. Więcej o technicznej stronie pozycjonowania przeczytasz w artykule ",[559,560,562],"a",{"href":561},"/blog/czym-jest-local-seo","czym jest local SEO",".",[202,565,568],{"title":566,"type":567},"Podkatalog to złoty środek dla większości serwisów","tip",[16,569,570,571,503,574,503,577,580],{},"Struktura z podkatalogami, czyli ",[43,572,573],{},"/pl/",[43,575,576],{},"/en/",[43,578,579],{},"/de/",", daje Google wyraźny sygnał językowy, nie wymaga utrzymywania wielu domen i pozwala budować autorytet w jednym miejscu. W przypadku firm wchodzących na pierwsze rynki zagraniczne to najrozsądniejszy punkt startowy.",[11,582,584],{"id":583},"najczęstsze-błędy-w-implementacji-hreflang","Najczęstsze błędy w implementacji hreflang",[16,586,587],{},"Hreflang jest podatny na błędy, które mogą sprawić, że Google całkowicie zignoruje cały zestaw znaczników. Poniżej błędy, które pojawiają się najczęściej w praktyce.",[16,589,590,594,595,598],{},[591,592,593],"strong",{},"Brak odnośnika do samej siebie."," Każda wersja językowa musi wskazywać sama na siebie. Jeśli strona polska zawiera znaczniki dla wersji polskiej, angielskiej i niemieckiej, ale nie ma znacznika ",[43,596,597],{},"hreflang=\"pl\""," prowadzącego do samej siebie, Google może potraktować zestaw jako niekompletny.",[16,600,601,604,605,611],{},[591,602,603],{},"Niesymetryczne znaczniki."," Jeśli strona A wskazuje na stronę B przez hreflang, strona B musi wskazywać z powrotem na stronę A. Brak tej symetrii to najczęstszy błąd przy dużych serwisach. Google oficjalnie wymaga potwierdzenia z obu stron (",[559,606,610],{"href":607,"rel":608},"https://developers.google.com/search/docs",[609],"nofollow","Google Search Central",").",[16,613,614,617,618,621,622,503,625,621,628,630],{},[591,615,616],{},"Niepoprawne kody językowe lub regionalnych."," Kod języka musi być zgodny z ISO 639-1, a kod kraju z ISO 3166-1 Alpha-2. ",[43,619,620],{},"EN"," zamiast ",[43,623,624],{},"en",[43,626,627],{},"PL-pl",[43,629,188],{}," albo użycie nazwy kraju zamiast kodu to błędy, przez które Google ignoruje znaczniki.",[16,632,633,636],{},[591,634,635],{},"Adresy URL z błędami lub przekierowaniami."," Jeśli URL podany w hreflang zwraca błąd 404, jest przekierowany lub nie jest dostępny dla Googlebota, znacznik nie działa. Weryfikuj adresy przed wdrożeniem i po każdej zmianie struktury URL.",[16,638,639,642,643,646],{},[591,640,641],{},"Użycie hreflang na stronach z noindex."," Strona oznaczona dyrektywą ",[43,644,645],{},"noindex"," nie powinna być częścią zestawu hreflang. Google może zignorować cały klaster, jeśli jedna ze stron jest wykluczona z indeksu.",[202,648,651],{"title":649,"type":650},"Niesymetria to najczęstszy błąd","warning",[16,652,653],{},"Ponad połowa błędów hreflang wykrywanych przez narzędzia audytowe to brak wzajemnych wskazań między wersjami. Jeśli wdrażasz hreflang w sitemapie, najłatwiej to kontrolować. Przy znacznikach w HEAD każda nowa podstrona wymaga aktualizacji we wszystkich wersjach językowych jednocześnie.",[11,655,657],{"id":656},"jak-zweryfikować-poprawność-wdrożenia","Jak zweryfikować poprawność wdrożenia",[16,659,660],{},"Po wdrożeniu hreflang weryfikacja jest obowiązkowa. Błędna implementacja jest gorsza niż brak implementacji, bo wysyła do Google sprzeczne sygnały.",[662,663],"steps",{":items":664},"[{\"title\":\"Google Search Console\",\"text\":\"W raporcie Internacjonalizacja (zakładka Indeksowanie) znajdziesz listę błędów hreflang wykrytych przez Google: brak wskazania zwrotnego, niepoprawne kody, adresy URL z błędami.\"},{\"title\":\"Hreflang Tags Testing Tool\",\"text\":\"Narzędzia takie jak Aleyda Solis Hreflang Tags Generator lub Screaming Frog SEO Spider pozwalają przeskanować cały serwis i sprawdzić symetrię wszystkich wskazań.\"},{\"title\":\"Ręczna weryfikacja w kodzie źródłowym\",\"text\":\"Otwórz kilka stron z różnych wersji językowych i sprawdź źródło HTML. Powinny znajdować się tam kompletne zestawy znaczników ze wskazaniami do wszystkich wersji.\"},{\"title\":\"Sprawdzenie w Google (site:)\",\"text\":\"Wyszukaj 'site:example.com/pl/' i 'site:example.com/en/' i sprawdź, czy Google indeksuje oba zestawy URL. Brak indeksowania jednej wersji to sygnał problemu.\"}]",[16,666,667,668,563],{},"Czas potrzebny Google na przetworzenie zmian w hreflang zależy od częstotliwości crawlowania serwisu. Przy regularnie aktualizowanej stronie efekty widać zwykle po kilku tygodniach. Przy nowych serwisach może to zająć dłużej. Jak monitorować wyniki pozycjonowania, opisujemy w artykule ",[559,669,671],{"href":670},"/blog/ile-czasu-trwa-pozycjonowanie-strony","ile czasu trwa pozycjonowanie strony",[673,674],"trend-chart",{":series":675,":xLabels":676,"caption":677,"title":678},"[{\"label\":\"Poprawnie przypisane wersje językowe\",\"color\":\"#22c55e\",\"values\":[10,35,60,80,95]}]","[\"Wdrożenie\",\"2 tyg.\",\"4 tyg.\",\"6 tyg.\",\"10 tyg.\"]","Dane poglądowe. Czas indeksowania zależy od częstotliwości crawlowania serwisu.","Przetwarzanie zmian hreflang przez Google",[11,680,682],{"id":681},"hreflang-a-pozycjonowanie-wielojęzyczne","Hreflang a pozycjonowanie wielojęzyczne",[16,684,685],{},"Hreflang sam w sobie nie jest czynnikiem rankingowym w sensie bezpośrednim. Nie sprawi, że strona skoczy na wyższe pozycje. Jego rola jest inna: zapobiega rozpraszaniu autorytetu i sygnałów SEO między wersje językowe oraz sprawia, że właściwa wersja trafia do właściwego użytkownika.",[16,687,688,689,611],{},"Dla pozycjonowania wielojęzycznego ma to konkretne przełożenie. Użytkownik, który trafia na stronę w swoim języku, spędza na niej więcej czasu, wyższy jest jego wskaźnik zaangażowania, mniejszy współczynnik odrzuceń. Google traktuje te sygnały behawioralne jako pośredni wskaźnik jakości strony. Strony z wyższym CTR i dłuższym czasem sesji mają tendencję do utrzymywania wyższych pozycji (",[559,690,693],{"href":691,"rel":692},"https://backlinko.com/google-ctr-stats",[609],"Backlinko, Google CTR Stats",[695,696],"stat-row",{":items":697},"[{\"value\":\"27,6%\",\"label\":\"CTR pierwszego wyniku organicznego\",\"sub\":\"Backlinko, Google CTR Stats\"}]",[16,699,700,701,705],{},"Ważnym elementem strategii wielojęzycznej jest też dobór słów kluczowych osobno dla każdego rynku. Tłumaczenie polskich fraz kluczowych jeden do jednego na inne języki rzadko działa. Każdy rynek szuka inaczej, używa innych sformułowań i ma inne intencje. Jak dobierać słowa kluczowe, opisujemy w artykule ",[559,702,704],{"href":703},"/blog/co-to-sa-slowa-kluczowe-jak-dobierac","co to są słowa kluczowe i jak je dobierać",". Dla firm chcących dotrzeć do klientów w konkretnych miastach pomocny jest też artykuł o pozycjonowaniu stron.",[11,707,709],{"id":708},"hreflang-w-popularnych-platformach-cms","Hreflang w popularnych platformach CMS",[16,711,712],{},"Jeśli serwis stoi na popularnej platformie, wdrożenie hreflang często nie wymaga pisania kodu od zera.",[16,714,715,718],{},[591,716,717],{},"WordPress z WPML lub Polylang."," Oba wtyczki generują znaczniki hreflang automatycznie przy poprawnej konfiguracji wersji językowych. WPML jest bardziej rozbudowane i płatne, Polylang ma darmowy wariant dla prostych serwisów.",[16,720,721,724,725,728,729,732],{},[591,722,723],{},"Nuxt 3."," Moduł ",[43,726,727],{},"@nuxtjs/i18n"," obsługuje hreflang jako część standardowej obsługi internacjonalizacji. Po konfiguracji pliku ",[43,730,731],{},"i18n.config.ts"," z listą obsługiwanych języków moduł generuje kompletne zestawy znaczników dla każdej podstrony. Nie musisz ich wstawiać ręcznie.",[16,734,735,738],{},[591,736,737],{},"Webflow."," Webflow Localization (funkcja premium) obsługuje hreflang od 2023 roku. Przy konfiguracji poprzez lokalizacje Webflow dodaje znaczniki automatycznie.",[16,740,741,744,745,747],{},[591,742,743],{},"Własny kod (Next.js, Astro, SvelteKit)."," Każdy framework ma własny sposób zarządzania metadanymi w sekcji ",[43,746,244],{},". Najczęściej generujesz znaczniki programatycznie na podstawie listy dostępnych tłumaczeń dla danej trasy.",[202,749,752],{"title":750,"type":751},"Automatyzacja jest kluczem przy dużych serwisach","success",[16,753,754],{},"Przy serwisach z setkami podstron ręczne zarządzanie hreflang jest niemożliwe do utrzymania. Każdy nowy artykuł lub podstrona wymaga aktualizacji zestawów we wszystkich wersjach językowych. Moduły i18n dla popularnych frameworków rozwiązują ten problem przez automatyczne generowanie znaczników na podstawie struktury tłumaczeń.",[11,756,758],{"id":757},"hreflang-a-canonicale","Hreflang a canonicale",[16,760,761],{},"Dwa atrybuty SEO, które często pojawiają się razem przy wielojęzycznych serwisach, to hreflang i canonical. Ich interakcja bywa przyczyną nieporozumień.",[16,763,764],{},"Canonical wskazuje Google, która wersja strony jest \"główną\" w przypadku duplikatów treści. Hreflang wskazuje wersje językowe przeznaczone dla różnych odbiorców. Oba mogą współistnieć na tej samej stronie, ale muszą być spójne.",[16,766,767],{},"Zasada jest prosta: jeśli strona ma canonical wskazujący na inny URL, hreflang na tej stronie nie będzie respektowany, bo Google uznaje stronę za wtórną. Każda strona w zestawie hreflang powinna mieć canonical wskazujący na siebie samą, czyli tak zwany self-referencing canonical. To potwierdza Google, że dana wersja językowa jest samodzielnym, indeksowalnym dokumentem.",[11,769,771],{"id":770},"najczęstsze-pytania","Najczęstsze pytania",[231,773,775],{"id":774},"czy-muszę-wdrożyć-hreflang-jeśli-mam-tylko-polską-i-angielską-wersję-strony","Czy muszę wdrożyć hreflang, jeśli mam tylko polską i angielską wersję strony?",[16,777,778],{},"Tak, jeśli obie wersje są dostępne i indeksowalne. Nawet przy dwóch wersjach językowych hreflang zapobiega traktowaniu tłumaczenia jako duplikatu i pomaga Google wyświetlać właściwą wersję użytkownikom z różnych regionów. Wdrożenie dla dwóch języków to kwestia kilkunastu minut przy metodzie znaczników w HEAD.",[231,780,782],{"id":781},"co-się-stanie-jeśli-nie-wdrożę-hreflang-na-wielojęzycznej-stronie","Co się stanie, jeśli nie wdrożę hreflang na wielojęzycznej stronie?",[16,784,785,786,563],{},"Google będzie próbował samodzielnie ustalić, którą wersję pokazać użytkownikowi, bazując na sygnałach z URL, treści i geolokalizacji. W praktyce często serwuje złą wersję lub traktuje wersje językowe jako zduplikowaną treść. Efektem jest niższy ruch na rynkach zagranicznych i potencjalne kanibalizowanie się wersji językowych w wynikach. Więcej o technicznych aspektach SEO znajdziesz w artykule ",[559,787,789],{"href":788},"/blog/ile-kosztuje-pozycjonowanie-stron","ile kosztuje pozycjonowanie stron",[231,791,793],{"id":792},"czy-hreflang-działa-dla-innych-wyszukiwarek-niż-google","Czy hreflang działa dla innych wyszukiwarek niż Google?",[16,795,796],{},"Bing obsługuje hreflang, ale z ograniczeniami i mniejszą precyzją niż Google. Yandex ma własny atrybut do zarządzania wersjami językowymi. Hreflang jest przede wszystkim rozwiązaniem dla Google i to pod kątem Google warto go testować i weryfikować.",[231,798,800],{"id":799},"jak-często-trzeba-aktualizować-znaczniki-hreflang","Jak często trzeba aktualizować znaczniki hreflang?",[16,802,803],{},"Za każdym razem, gdy dodajesz nową wersję językową, nową podstronę lub zmieniasz strukturę URL. Jeśli usuniesz wersję językową, usuń też wszystkie wskazania do niej w pozostałych wersjach. Nieaktualne URL-e w hreflang generują błędy widoczne w Google Search Console i mogą sprawić, że Google zignoruje cały klaster wskazań.",[805,806,807],"style",{},"html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .s9eBZ, html code.shiki .s9eBZ{--shiki-default:#22863A;--shiki-dark:#85E89D}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}",{"title":41,"searchDepth":90,"depth":90,"links":809},[810,811,812,813,818,819,820,821,822,823,824],{"id":13,"depth":90,"text":14},{"id":27,"depth":90,"text":28},{"id":211,"depth":90,"text":212},{"id":225,"depth":90,"text":226,"children":814},[815,816,817],{"id":233,"depth":119,"text":234},{"id":392,"depth":119,"text":393},{"id":448,"depth":119,"text":449},{"id":465,"depth":90,"text":466},{"id":583,"depth":90,"text":584},{"id":656,"depth":90,"text":657},{"id":681,"depth":90,"text":682},{"id":708,"depth":90,"text":709},{"id":757,"depth":90,"text":758},{"id":770,"depth":90,"text":771,"children":825},[826,827,828,829],{"id":774,"depth":119,"text":775},{"id":781,"depth":119,"text":782},{"id":792,"depth":119,"text":793},{"id":799,"depth":119,"text":800},"pozycjonowanie-stron",null,"2026-07-22","Hreflang SEO to atrybut HTML, który mówi Google, która wersja językowa strony odpowiada danemu użytkownikowi. Dowiedz się, jak go poprawnie wdrożyć.",false,"md",[],{},true,"/blog/hreflang-i-strona-wielojezyczna-od-strony-technicznej",11,{"title":842,"description":833},"Hreflang i strona wielojęzyczna od strony technicznej",[844,846],{"label":845,"url":607},"Google Search Central - Zarządzanie wielojęzycznymi wersjami strony",{"label":847,"url":691},"Backlinko - Google CTR Stats","blog/hreflang-i-strona-wielojezyczna-od-strony-technicznej","seo-techniczne",[180,851,852,853,854],"seo techniczne","strona wielojęzyczna","internacjonalizacja","pozycjonowanie",[],"3l4I3bNJfkb-Qjy57OixLgDHGoglolzIjJSLyVa-7VQ",[858,865,871,877,882,888,894,901,906,911,916,922],{"path":859,"title":860,"description":861,"date":862,"readingTime":863,"subcategory":864},"/blog/jak-google-decyduje-ktore-firmy-pokazac-w-pakiecie-map","Jak Google decyduje, które firmy pokazać w pakiecie map","Dowiedz się, jak pakiet map Google wybiera firmy do Top 3. Trafność, bliskość i renoma wyjaśnione prosto, z danymi i praktycznymi wskazówkami.","2026-09-26",13,"podstawy-local-seo",{"path":866,"title":867,"description":868,"date":869,"readingTime":870,"subcategory":864},"/blog/local-seo-dla-hydraulika-i-firm-uslugowych","Local SEO dla hydraulika i firm usługowych","Pozycjonowanie hydraulik: jak wejść do Top 3 w Mapach Google, zoptymalizować wizytówkę, zdobywać opinie i tworzyć treści, które przyciągają zlecenia.","2026-09-25",15,{"path":872,"title":873,"description":874,"date":875,"readingTime":876,"subcategory":864},"/blog/czym-jest-e-e-a-t-i-dlaczego-ma-znaczenie-dla-lokalnych-firm","Czym jest E-E-A-T i dlaczego ma znaczenie dla lokalnych firm","E-E-A-T SEO lokalne to zestaw sygnałów, które Google stosuje, by ocenić wiarygodność Twojej firmy. Dowiedz się, jak go budować i co realnie wpływa na pozycje.","2026-09-23",14,{"path":878,"title":879,"description":880,"date":875,"readingTime":876,"subcategory":881},"/blog/strategia-link-buildingu-dla-kancelarii-prawnej","Strategia link buildingu dla kancelarii prawnej","Link building kancelaria: jak zdobywać wartościowe linki, budować autorytet w Google i wyprzedzać konkurencję w lokalnych wynikach wyszukiwania.","link-building",{"path":883,"title":884,"description":885,"date":886,"readingTime":863,"subcategory":887},"/blog/jak-seo-wspiera-kampanie-google-ads","Jak SEO wspiera kampanie Google Ads","Dowiedz się, jak SEO i Google Ads razem tworzą skuteczniejszy marketing: niższy CPC, lepszy Quality Score i wyższy ROI dla lokalnej firmy.","2026-09-21","strategia-porownania",{"path":889,"title":890,"description":891,"date":892,"readingTime":893,"subcategory":849},"/blog/plik-robots-txt-i-mapa-sitemap-xml-co-powinny-zawierac","Plik robots.txt i mapa sitemap.xml, co powinny zawierać","Robots i sitemap to dwa pliki, które kierują Googlebota po Twojej stronie. Sprawdź, co powinny zawierać, jak je poprawnie skonfigurować i jakich błędów unikać.","2026-09-20",12,{"path":895,"title":896,"description":897,"date":898,"readingTime":899,"subcategory":900},"/blog/ile-kosztuje-jednorazowy-audyt-seo","Ile kosztuje jednorazowy audyt SEO","Konkretne widełki cenowe jednorazowego audytu SEO w 2026 roku: co obejmuje, co wpływa na koszt i kiedy warto go zamówić zamiast abonamentu.","2026-09-17",10,"cennik-wspolpraca",{"path":902,"title":903,"description":904,"date":898,"readingTime":899,"subcategory":905},"/blog/kanibalizacja-slow-kluczowych-jak-ja-rozpoznac-i-usunac","Kanibalizacja słów kluczowych, jak ją rozpoznać i usunąć","Kanibalizacja słów kluczowych psuje pozycje i dezorientuje Google. Wyjaśniamy, jak ją rozpoznać, zdiagnozować i skutecznie wyeliminować ze swojej strony.","slowa-kluczowe-tresci",{"path":907,"title":908,"description":909,"date":910,"readingTime":840,"subcategory":900},"/blog/rozliczenie-za-efekt-w-seo-kiedy-ma-sens","Rozliczenie za efekt w SEO, kiedy ma sens","Rozliczenie za efekt SEO brzmi bezpiecznie, ale ma poważne pułapki. Sprawdź, kiedy ten model faktycznie się opłaca i na co uważać przed podpisaniem umowy.","2026-09-15",{"path":912,"title":913,"description":914,"date":915,"readingTime":863,"subcategory":900},"/blog/co-powinna-zawierac-miesieczna-umowa-na-pozycjonowanie","Co powinna zawierać miesięczna umowa na pozycjonowanie","Miesięczna umowa SEO bez jasnego zakresu prac to proszenie się o kłopoty. Sprawdź, jakie 7 elementów musi znaleźć się w każdej rzetelnej umowie.","2026-09-13",{"path":917,"title":918,"description":919,"date":920,"readingTime":840,"subcategory":921},"/blog/jak-naprawic-zduplikowana-wizytowke-google","Jak naprawić zduplikowaną wizytówkę Google","Zduplikowana wizytówka Google obniża pozycje i dezorientuje klientów. Dowiedz się, jak ją wykryć, scalić lub usunąć krok po kroku.","2026-09-12","wizytowka-mapy-google",{"path":923,"title":924,"description":925,"date":926,"readingTime":893,"subcategory":905},"/blog/jak-tworzyc-faq-na-stronie-zeby-trafiac-do-wyroznionych-wynikow","Jak tworzyć FAQ na stronie, żeby trafiać do wyróżnionych wyników","FAQ na stronie SEO zwiększa szansę na featured snippet i PAA. Dowiedz się, jak budować sekcje pytań, żeby Google wyświetlał je w wyróżnionych wynikach.","2026-09-07",1791500707083]