Przekazywanie Google informacji o zlokalizowanych wersjach strony

Używanie parametru hreflang lub map witryn na potrzeby stron w określonych wersjach językowych lub regionalnych

Jeśli masz wiele wersji strony dla różnych języków lub regionów, przekaż Google informacje na ten temat. Dzięki temu wyszukiwarka Google skieruje użytkowników do najodpowiedniejszej wersji strony na podstawie języka lub regionu.

Nawet jeśli nie podejmiesz żadnych działań, Google nadal będzie w stanie znaleźć alternatywną wersję językową strony. Zazwyczaj jednak najlepszym rozwiązaniem jest wyraźne wskazanie stron dla określonych języków lub regionów.

Przykładowe sytuacje, w których zalecamy wskazanie alternatywnych wersji stron:

  • Prezentujesz główną treść w jednym języku, a tłumaczysz tylko szablon, np. elementy nawigacyjne i stopkę. Jest to typowa sytuacja w przypadku stron z treściami użytkowników, takimi jak posty.
  • Materiały na Twojej stronie charakteryzują niewielkie różnice regionalne, a treści w obrębie jednego języka są podobne. Na przykład możesz mieć treści w języku angielskim skierowane do użytkowników z USA, Wielkiej Brytanii i Irlandii.
  • Zawartość Twojej witryny jest w całości przetłumaczona na wiele języków. Na przykład masz niemiecką i angielską wersję każdej strony.
Creating multi-regional and multilingual sites

Metody wskazywania stron alternatywnych

Wielojęzyczne lub multiregionalne wersje strony możesz wskazać Google na trzy sposoby:

Tagi HTML

Dodaj elementy <link rel="alternate" hreflang="kod_języka"... > w nagłówku strony, by wskazać Google wszystkie językowe i regionalne wersje strony. Jest to przydatne rozwiązanie, jeśli nie masz mapy witryny ani możliwości określenia nagłówków odpowiedzi HTTP dla swojej witryny.

W każdej wersji strony musisz uwzględnić zestaw elementów <link> w elemencie <head> – jeden link dla każdego wariantu strony, łącznie z wersją, w której dodajesz te elementy. Zestaw linków jest identyczny dla każdej wersji strony. Zobacz dodatkowe wytyczne

Oto składnia poszczególnych elementów link:

<link rel="alternate" hreflang="kod_języka" href="url_strony" />

kod_języka
Obsługiwany kod języka/regionu, na który jest kierowana określona wersja strony, lub parametr x-default odpowiadający każdemu językowi, który nie jest wyraźnie wymieniony w tagu hreflang na stronie.
url_strony
Pełny adres URL konkretnej wersji strony w danym języku lub przeznaczonej do wyświetlania w określonym regionie.
Umieść tagi <link> w górnej części elementu <head>. Tagi <link> muszą się znaleźć przynajmniej wewnątrz poprawnie sformatowanej sekcji <head> lub przed elementami, które mogłyby spowodować przedwczesne zamknięcie sekcji <head>, takimi jak <p> czy piksel śledzący. Jeśli masz wątpliwości, wklej kod z renderowanej strony do narzędzia do sprawdzania stron HTML, by upewnić się, że linki są umieszczone wewnątrz elementu <head>.

Przykład

Firma Example Widgets, Inc. ma witrynę przeznaczoną dla użytkowników ze Stanów Zjednoczonych, Wielkiej Brytanii i Niemiec. Następujące adresy URL zawierają zasadniczo tę samą treść, ale z pewnymi regionalnymi różnicami:

  • http://en.example.com/page.html – ogólna angielska wersja strony głównej, która zawiera informacje o opłatach za dostawę międzynarodową ze Stanów Zjednoczonych.
  • http://en-gb.example.com/page.html – brytyjska strona główna z cenami w funtach.
  • http://en-us.example.com/page.html – amerykańska strona główna z cenami w dolarach amerykańskich.
  • http://de.example.com/page.html – strona główna w języku niemieckim.
  • http://www.example.com/ – strona domyślna bez określonego języka i regionu. Zawiera przełączniki wersji językowych i regionalnych.

Zauważ, że Google nie używa subdomen w określonych językach w tych adresach URL (en, en-gb, en-us, de), by określić docelowych odbiorców strony. Musisz ich dokładnie zmapować.

Poniżej przedstawiamy kod HTML, który trzeba wkleić w sekcji <head> na wszystkich stronach wymienionych powyżej. Skieruje on użytkowników anglojęzycznych z USA i Wielkiej Brytanii oraz użytkowników niemieckojęzycznych na zlokalizowane strony, a wszystkich pozostałych odbiorców odeśle na ogólną stronę główną. Wyszukiwarka Google zwróci wynik odpowiedni dla użytkownika na podstawie ustawień przeglądarki.

<head>
  <title>Widgets, Inc</title>
  <link rel="alternate" hreflang="en-gb"
        href="http://en-gb.example.com/page.html" />
  <link rel="alternate" hreflang="en-us"
        href="http://en-us.example.com/page.html" />
  <link rel="alternate" hreflang="en"
        href="http://en.example.com/page.html" />
  <link rel="alternate" hreflang="de"
        href="http://de.example.com/page.html" />
  <link rel="alternate" hreflang="x-default"
        href="http://www.example.com/" />
</head>

 

Nagłówki HTTP

Możesz zwrócić nagłówek HTTP razem z odpowiedzią GET strony, by przekazać Google informacje o wszystkich jej wersjach językowych i regionalnych. Jest to przydatne w przypadku plików w formacie innym niż HTML (np. PDF).

Oto format nagłówka:

Link: <url1>; rel="alternate"; hreflang="kod_języka_1", <url2>; rel="alternate"; hreflang="kod_języka_2", ...

<url_x>
Pełny adres URL strony alternatywnej, która odpowiada ciągowi ustawień regionalnych przypisanemu do powiązanego atrybutu hreflang. URL musi być umieszczony między znakami < >. Przykład: <https://www.google.com>
kod_języka_x
Obsługiwany kod języka/regionu, na który jest kierowana ta wersja strony, lub parametr x-default odpowiadający każdemu językowi, który nie jest wyraźnie wymieniony w tagu hreflang na stronie.

Musisz określić zestaw parametrów <url>, rel="alternate" i wartości hreflang dla każdej wersji strony, łącznie z żądaną wersją. Trzeba je rozdzielić przecinkami jak w poniższym przykładzie. Nagłówki Link: zwracane w przypadku poszczególnych wersji strony są identyczne. Zobacz dodatkowe wytyczne

Przykład

Oto przykład nagłówka Link: zwracanego przez witrynę zawierającą trzy wersje pliku PDF: jedną dla użytkowników anglojęzycznych, jedną dla użytkowników niemieckojęzycznych ze Szwajcarii i jedną dla wszystkich pozostałych użytkowników niemieckojęzycznych:

Link: <http://example.com/file.pdf>; rel="alternate"; hreflang="en",
      <http://de-ch.example.com/file.pdf>; rel="alternate"; hreflang="de-ch",
      <http://de.example.com/file.pdf>; rel="alternate"; hreflang="de"

 

Mapa witryny

Możesz użyć mapy witryny, by wskazać Google wszystkie warianty językowe i regionalne na potrzeby poszczególnych adresów URL. Aby to zrobić, dodaj element <loc> określający pojedynczy adres URL z wpisami podrzędnymi <xhtml:link> definiującymi poszczególne wersje językowe lub regionalne strony łącznie z wersją, w której dodajesz wpisy. Jeśli więc masz trzy wersje strony, Twoja mapa witryny będzie zawierała trzy wpisy – każdy z trzema identycznymi wpisami podrzędnymi.

Reguły dotyczące mapy witryny:

  • Określ przestrzeń nazw xhtml w ten sposób:
    xmlns:xhtml="http://www.w3.org/1999/xhtml"
  • Utwórz osobny element <url> na potrzeby każdego adresu URL.
  • Każdy element <url> musi zawierać element podrzędny <loc> wskazujący adres URL strony.
  • Każdy element <url> musi zawierać element podrzędny <xhtml:link rel="alternate" hreflang="kod_obsługiwanego-języka"> zawierający wszystkie alternatywne wersje strony, łącznie z wersją, w której dodajesz te elementy.  Kolejność elementów podrzędnych <xhtml:link> nie ma znaczenia, ale warto jej nie zmieniać, by ułatwić wykrywanie błędów.
  • Zobacz dodatkowe wytyczne.

Przykład

To jest przykład strony anglojęzycznej przeznaczonej dla użytkowników z całego świata mówiących po angielsku. Ma ona równoważne wersje przeznaczone dla użytkowników z całego świata mówiących po niemiecku oraz użytkowników niemieckojęzycznych ze Szwajcarii. W witrynie znajdą się wszystkie te adresy URL:

  • www.example.com/english/page.html – strona przeznaczona dla użytkowników anglojęzycznych,
  • www.example.com/deutsch/page.html – strona przeznaczona dla użytkowników niemieckojęzycznych,
  • www.example.com/schweiz-deutsch/page.html – strona przeznaczona dla użytkowników niemieckojęzycznych ze Szwajcarii.

Mapa witryny obejmująca te trzy strony wygląda tak:

<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
  xmlns:xhtml="http://www.w3.org/1999/xhtml">
  <url>
    <loc>http://www.example.com/english/page.html</loc>
    <xhtml:link 
               rel="alternate"
               hreflang="de"
               href="http://www.example.com/deutsch/page.html"/>
    <xhtml:link 
               rel="alternate"
               hreflang="de-ch"
               href="http://www.example.com/schweiz-deutsch/page.html"/>
    <xhtml:link 
               rel="alternate"
               hreflang="en"
               href="http://www.example.com/english/page.html"/>
  </url>
  <url>
    <loc>http://www.example.com/deutsch/page.html</loc>
    <xhtml:link 
               rel="alternate"
               hreflang="de"
               href="http://www.example.com/deutsch/page.html"/>
    <xhtml:link 
               rel="alternate"
               hreflang="de-ch"
               href="http://www.example.com/schweiz-deutsch/page.html"/>
    <xhtml:link 
               rel="alternate"
               hreflang="en"
               href="http://www.example.com/english/page.html"/>
  </url>
  <url>
    <loc>http://www.example.com/schweiz-deutsch/page.html</loc>
    <xhtml:link 
               rel="alternate"
               hreflang="de"
               href="http://www.example.com/deutsch/page.html"/>
    <xhtml:link 
               rel="alternate"
               hreflang="de-ch"
               href="http://www.example.com/schweiz-deutsch/page.html"/>
    <xhtml:link 
               rel="alternate"
               hreflang="en"
               href="http://www.example.com/english/page.html"/>
  </url>
</urlset>

Wytyczne dotyczące wszystkich metod

  • Każda wersja językowa musi uwzględniać siebie oraz wszystkie inne wersje językowe.
  • Alternatywne adresy URL muszą być pełne i muszą obejmować metodę przesyłania (http/https), czyli na przykład:
     https://example.com/foo, a nie //example.com/foo czy /foo
  • Alternatywne adresy URL nie muszą należeć do tej samej domeny. 
  • Jeśli masz kilka różnych adresów URL w tym samym języku, lecz przeznaczonych dla różnych regionów, warto stworzyć jeden adres typu catch-all dla użytkowników z nieokreślonych lokalizacji. Możesz na przykład przygotować osobne adresy URL dla anglojęzycznych użytkowników z Irlandii (en-ie), Kanady (en-ca) i Australii (en-au), a innych użytkowników, np. z USA, Wielkiej Brytanii i wszystkich pozostałych lokalizacji anglojęzycznych, kierować na ogólną angielską wersję strony (en). Może to być jedna z określonych wersji strony.
  • Jeśli dwie strony nie wskazują na siebie nawzajem, tagi zostaną zignorowane. Dzięki temu nikt nie może w innej witrynie utworzyć tagu wskazującego na dowolną stronę jako alternatywną wersję jednej z Twoich stron.
  • Jeśli utrzymanie pełnego zestawu dwukierunkowych linków dotyczących poszczególnych języków zaczyna sprawiać trudności, możesz część z nich pominąć na niektórych stronach. Google przetworzy te, które wskazują wzajemnie na siebie. Pamiętaj jednak o dwukierunkowym powiązaniu stron utworzonych w nieobsługiwanych wcześniej językach z oryginalną/przeważającą wersją językową. Jeśli na przykład językiem oryginalnej strony jest francuski, a jej adresy URL występują w domenie .fr, to w takim przypadku konieczne jest dwukierunkowe powiązanie nowszych stron w wersji meksykańskiej (.mx) i hiszpańskiej (.es) z dominującą wersją w domenie .fr zamiast dwukierunkowego łączenia ze sobą nowych stron napisanych w odmianach języka hiszpańskiego (.mx i .es).
  • Warto dodać stronę zastępczą na potrzeby języków bez dopasowania, szczególnie w przypadku stron głównych z możliwością wyboru wersji językowej/kraju lub automatycznym przekierowaniem. Użyj wartości x-default:
    <link rel="alternate" href="http://example.com/" hreflang="x-default" />

Obsługiwane kody języków/regionów

Wartość atrybutu hreflang wskazuje język (w formacie ISO 639-1) oraz, opcjonalnie, region (w formacie ISO 3166-1 alfa 2) alternatywnego adresu URL. Na przykład:

  • de: materiały w języku niemieckim, niezależnie od regionu;
  • en-GB: materiały w języku angielskim dla użytkowników z Wielkiej Brytanii;
  • de-ES: materiały w języku niemieckim dla użytkowników z Hiszpanii.

Nie podawaj samego kodu kraju. Googlebot nie rozpoznaje automatycznie języka na podstawie kodu kraju. Jeśli chcesz uprościć oznaczanie, możesz podać sam kod języka.  Dodanie kodu kraju za informacją o języku powoduje ograniczenie strony do określonego regionu.  Przykłady:

  • be: białoruski, niezależnie od regionu (a nie francuski używany w Belgii),
  • nl-be: niderlandzki używany w Belgii,
  • fr-be: francuski używany w Belgii. 

W przypadku różnic w rodzajach pisma używanych przez dany język właściwy rodzaj pisma jest wybierany na podstawie kraju. Na przykład użycie kodu zh-TW na stronie przeznaczonej dla użytkowników z Tajwanu spowoduje automatyczny wybór pisma chińskiego (w tym przypadku tradycyjnego). Możesz też wyraźnie określić alfabet w formacie ISO 15924, na przykład:

  • zh-Hant: chiński (tradycyjny),
  • zh-Hans: chiński (uproszczony).

Możesz też określić kombinację pisma i regionu, na przykład użyć wartości zh-Hans-TW, wskazując materiały dla użytkowników z Tajwanu, które zostały zapisane pismem chińskim uproszczonym.

Używanie tagu x-default na potrzeby języków bez dopasowania

Zarezerwowana wartość hreflang="x-default" jest wykorzystywana wtedy, gdy żaden język ani region nie odpowiada ustawieniom przeglądarki użytkownika. Jest to wartość opcjonalna, ale zalecana jako sposób kontrolowania strony, gdy nie można dopasować żadnych języków. Warto ustawić kierowanie na stronę główną witryny z interaktywną mapą, która umożliwia wybór kraju użytkownika.

Rozwiązywanie problemów

Typowe błędy

Oto najczęstsze błędy związane z użyciem parametru hreflang:

  • Brak linków zwrotnych: jeśli strona X zawiera link do strony Y, strona Y musi zawierać link zwrotny do strony X. Jeśli nie wszystkie strony wykorzystujące adnotacje hreflang są zgodne z tą zasadą, adnotacje mogą zostać zignorowane lub zinterpretowane nieprawidłowo.
  • Nieprawidłowe kody języka: upewnij się, że wszystkie używane kody języka wskazują na język (w formacie ISO 639-1), a opcjonalnie także region (w formacie ISO 3166-1 alfa 2) alternatywnego adresu URL. Określenie jedynie regionu jest nieprawidłowe.

Usuwanie błędów tagu hreflang

Do rozwiązywania typowych problemów możesz wykorzystać raport Kierowanie międzynarodowe. Pamiętaj, by zapewnić Google odpowiednią ilość czasu na zindeksowanie Twoich stron. Następnie otwórz kartę Język w raporcie i sprawdź, czy zostały wykryte jakieś błędy.

Dostępnych jest też wiele narzędzi innych firm. Oto kilka najpopularniejszych. (Google nie obsługuje ani nie sprawdza tych narzędzi).

Czy ten artykuł był pomocny?
Jak możemy ją poprawić?