Настройка SEO многоязычного сайта на Hugo
Что делать с `canonical`, `lang` и `hreflang`
Локализация вашего Hugo сайта может улучшить ваш рейтинг в Google и Bing, но только если переведенный контент высокого качества, локализован и правильно структурирован для мультиязычного SEO.
Локализованные страницы (не просто переведенные, а культурно адаптированные) часто снижают уровень отказов, увеличивают время пребывания на сайте и улучшают конверсии. Это сигналы поведения пользователей, которые могут положительно повлиять на ваши SEO-рейтинги.
Hugo — это генератор статических сайтов. В сущности он преобразует файлы Markdown в HTML-страницы очень гибким способом и работает довольно быстро. Для подробностей см. здесь Справочник Hugo, вы также можете изучить список статей, связанных с Hugo, внизу этой страницы.
Основной вопрос: Следует ли вам переводить для SEO?
Сценарий | Перевод помогает SEO? | Примечания |
---|---|---|
Человеческий перевод + локализация + структура SEO | ✅ Да, сильная польза | Лучший вариант |
Высококачественный AI-перевод + редактирование + hreflang | ✅ Возможно | Может ранжироваться, если качество хорошее |
Только автоматический перевод + канонический | ❌ Нет | Не будет ранжироваться — используется только для UX |
Автоматический перевод + отсутствие канонического или hreflang | ⚠️ Риск | Может вызвать штрафы за дублирование |
Требуемый HTML для сайтов с буквальными (автоматизированными) переводами
- Каждая страница должна иметь атрибут
lang
в тегеhtml
, например:
<html lang="de">
- Каждая страница должна содержать список альтернативных ссылок на эту страницу на других языках, например, HTML ниже описывает альтернативные URL для такой же или похожей страницы на трех языках:
<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/">
- Каждая переведенная страница сайта должна указывать канонический URL для этой страницы (тот, который на первом языке или языке оригинала), например:
<link rel="canonical" href="https://www.glukhov.org/post/2025/10/multi-language-website-seo-with-hugo/">
Это посоветует поисковым системам пропустить индексацию неканонических страниц. Некоторые поисковые системы, конечно, могут игнорировать это и индексировать все страницы.
Для профессионально / вручную переведенной веб-страницы
Отсутствие указания <link rel="canonical"
может вызвать штрафы поисковых систем за дублирование. Но если вы переводите страницы сайта вручную или заказываете профессиональный перевод, можно надеяться, что поисковые системы примут вашу неканоническую страницу как оригинальную.
Шаблоны Hugo для локализованных сайтов
Мы должны помнить, что тема сайта Hugo может поддерживать все это уже.
<html lang=…
Откройте файл layouts/_default/baseof.html
либо в папке вашего сайта Hugo, либо в папке вашей темы, и убедитесь, что там есть что-то вроде:
<!DOCTYPE html>
<html class="no-js" lang="{{ .Site.Language.Lang }}">
<head>
...
{{ partial "seo-localise.html" . }}
</head>
...
<link rel=“alternate” hreflang= и <link rel=“canonical”
Теперь откройте файл layouts/partials/seo-localise.html
и поместите туда этот 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 }}
Если вы переводите сайт вручную, этот код может выглядеть так:
{{ $canonical := .Permalink }}
<!-- Canonical URL -->
<link rel="canonical" href="{{ $canonical }}">
<!-- Hreflang Alternate Tags -->
{{ range .AllTranslations }}
<link rel="alternate" hreflang="{{ .Lang }}" href="{{ .Permalink }}">
{{ end }}
config.toml
В вашем config.toml
убедитесь, что вы установили:
# настройка языков на вашем сайте
defaultContentLanguage = "en"
[languages]
[languages.en]
weight = 1
languageName = "English"
[languages.es]
weight = 2
languageName = "Español"
[languages.fr]
weight = 3
languageName = "Français"
Настройте вышеуказанное в соответствии с языками вашего сайта.
Теперь выполните команду hugo
для генерации сайта, затем hugo serve
для запуска хоста разработчика веб-сайта, откройте сайт и просмотрите исходный код страницы. Убедитесь, что все теги <html>
и <link>
имеют правильные атрибуты.
Полезные ссылки: Генератор статических сайтов Hugo
- Справочник Hugo - самые полезные команды
- Развертывание сайта, сгенерированного Hugo, на AWS S3
- Использование Gitea Actions для развертывания сайта Hugo на AWS S3
- Добавление разметки структурированных данных в Hugo
- Отправка формы Google в сайте Hugo
- Тема Mainroad для Hugo - обработка изображений
- Самые популярные темы для Hugo
- Как хранить миниатюры изображений в папке сборки страниц для сайтов Hugo с темой Mainroad
- Быстрый старт Hugo: https://gohugo.io/getting-started/quick-start/