Konfiguracja SEO wielojęzycznej strony internetowej z użyciem Hugo
Co zrobić z `canonical`, `lang` i `hreflang`
Przekładanie Twojej strony Hugo może poprawić Twoją pozycję w Google i Bing – ale tylko wtedy, gdy przekładany treść jest wysokiej jakości, lokalizowana i poprawnie zbudowana w celu optymalizacji SEO wielojęzycznej.
Lokalizowane strony (nie tylko przetłumaczone, ale także dopasowane kulturowo) często zmniejszają współczynnik odchodu, zwiększają czas przebywania na stronie i poprawiają konwersje. To są sygnały zachowania użytkownika, które mogą pozytywnie wpłynąć na pozycję w wynikach wyszukiwania.
Hugo to generator statycznych stron internetowych. Zasadniczo konwertuje pliki Markdown na strony HTML w bardzo konfigurowalny sposób i jest dość szybki. Szczegóły znajdziesz tutaj Hugo Cheat Sheet, a także zapraszamy do zapoznania się z listą artykułów związanych z Hugiem na dole tej strony.
Główny pytanie: Czy warto przetłumaczyć dla SEO?
Scenariusz | Przekład pomaga w SEO? | Uwagi |
---|---|---|
Przekład ręczny + lokalizacja + struktura SEO | ✅ Tak, silny korzyść | Najlepszy wybór |
Wysokiej jakości tłumaczenie AI + edycja + hreflang | ✅ Potencjalnie | Może uzyskać wysokie pozycje, jeśli jakość jest dobra |
Tylko automatyczne tłumaczenie + canonical | ❌ Nie | Nie będzie indeksowane – używane tylko do UX |
Automatyczne tłumaczenie + brak canonical lub hreflang | ⚠️ Ryzyko | Może wywołać kary za duplikaty |
Wymagany HTML dla stron z dosłownym (automatycznym) tłumaczeniem
- Każda strona musi mieć atrybut
lang
w taguhtml
, np.:
<html lang="de">
- Każda strona musi zawierać listę alternatywnych linków dla tej strony w innych językach, np. poniższy kod HTML opisuje alternatywne URL dla tej samej lub podobnej strony w trzech językach:
<link rel="alternate" hreflang="en" href="https://www.glukhov.org/post/2025/10/multi-language-website-seo-with-hugo/">
<link rel="alternate" hreflang="de" href="https://www.glukhov.org/de/post/2025/10/multi-language-website-seo-with-hugo/">
<link rel="alternate" hreflang="ru" href="https://www.glukhov.org/ru/post/2025/10/multi-language-website-seo-with-hugo/">
- Każda przetłumaczona strona internetowa musi określić canonical URL dla tej strony (tą z pierwszego języka lub oryginalnej strony), np.:
<link rel="canonical" href="https://www.glukhov.org/post/2025/10/multi-language-website-seo-with-hugo/">
To poinformuje wyszukiwarki, by pomijały indeksowanie stron niekanonicznych. Niektóre wyszukiwarki mogą jednak zignorować to i indeksować wszystkie strony.
Dla profesjonalnie / ręcznie przetłumaczonych stron internetowych
Nie podawanie <link rel="canonical"
może spowodować, że wyszukiwarki nałożyć kary za duplikaty.
Ale jeśli przetłumaczysz ręcznie swoje strony internetowe, lub zamówisz profesjonalne tłumaczenie, możesz mieć nadzieję, że wyszukiwarki zaakceptują Twoją stronę niekanoniczną jako oryginalną.
Szablony Hugo dla lokalizowanych stron internetowych
Należy pamiętać, że szablon strony Hugo może już wspierać wszystko powyżej.
<html lang=…
Otwórz plik layouts/_default/baseof.html
w folderze Twojej strony Hugo lub w folderze szablonu i upewnij się, że znajduje się coś takiego:
<!DOCTYPE html>
<html class="no-js" lang="{{ .Site.Language.Lang }}">
<head>
...
{{ partial "seo-localise.html" . }}
</head>
...
<link rel=“alternate” hreflang= i <link rel=“canonical”
Teraz otwórz plik layouts/partials/seo-localise.html
i wstaw tam poniższy kod szablonu HTML:
{{ $defaultLang := .Site.Params.defaultContentLanguage | default "en" }}
{{ $canonical := .Permalink }}
{{ if .IsTranslated }}
{{ $original := .Translations.GetByLang $defaultLang }}
{{ if $original }}
{{ $canonical = $original.Permalink }}
{{ end }}
{{ end }}
<!-- Canonical URL -->
<link rel="canonical" href="{{ $canonical }}">
<!-- Hreflang Alternate Tags -->
{{ range .AllTranslations }}
<link rel="alternate" hreflang="{{ .Lang }}" href="{{ .Permalink }}">
{{ end }}
Jeśli przetłumaczysz swoją stronę ręcznie, ten kod może wyglądać tak:
{{ $canonical := .Permalink }}
<!-- Canonical URL -->
<link rel="canonical" href="{{ $canonical }}">
<!-- Hreflang Alternate Tags -->
{{ range .AllTranslations }}
<link rel="alternate" hreflang="{{ .Lang }}" href="{{ .Permalink }}">
{{ end }}
config.toml
W swoim pliku config.toml
upewnij się, że ustawiono:
# konfiguracja języków na stronie
defaultContentLanguage = "en"
[languages]
[languages.en]
weight = 1
languageName = "English"
[languages.es]
weight = 2
languageName = "Español"
[languages.fr]
weight = 3
languageName = "Français"
Dostosuj powyższe ustawienia w zależności od języków używanych na Twojej stronie.
Teraz uruchom polecenie hugo
, aby wygenerować stronę internetową, a następnie hugo serve
, aby uruchomić lokalny serwer deweloperski, otwórz stronę i sprawdź źródło strony.
Upewnij się, że wszystkie te tagi <html>
i <link>
mają odpowiednie atrybuty.
Przydatne linki: Generator statycznych stron internetowych Hugo
- Hugo Cheat Sheet – najbardziej przydatne polecenia
- Wdrażanie strony wygenerowanej przez Hugona w AWS S3
- Użycie Gitea Actions do wdrażania strony Hugona w AWS S3
- Dodawanie strukturalnego markup do Hugona
- Wypełnianie formularza Google w stronie Hugona
- Szablon Mainroad dla Hugona – obsługa obrazów
- Najpopularniejsze szablony dla Hugona
- Jak przechowywać miniatury obrazów w folderze strony w Hugonie z użyciem szablonu Mainroad
- Szybki start z Hugonem: https://gohugo.io/getting-started/quick-start/