Configurando SEO para Sites Multilíngues com Hugo
O que fazer com `canonical`, `lang` e `hreflang`
Traduzindo seu site Hugo pode melhorar seu ranking no Google e Bing, mas apenas se o conteúdo traduzido for de alta qualidade, localizado e estruturado corretamente para SEO multilíngue.
Páginas localizadas (não apenas traduzidas, mas culturalmente adaptadas) frequentemente reduzem as taxas de rejeição, aumentam o tempo no site e melhoram as conversões. Estes são sinais de comportamento do usuário que podem afetar positivamente seu ranking de SEO.

Hugo é um gerador de sites estáticos. Em essência, ele converte arquivos Markdown em páginas HTML de uma maneira muito configurável e é bastante rápido. Para detalhes, por favor veja aqui Hugo Cheat Sheet, e você também está convidado a explorar a lista de artigos relacionados ao Hugo na parte inferior desta página.
Pergunta principal: Você deve traduzir para SEO?
| Cenário | A tradução ajuda o SEO? | Notas |
|---|---|---|
| Tradução humana + localizada + estruturada para SEO | ✅ Sim, benefício forte | Melhor opção |
| Tradução IA de alta qualidade + edição + hreflang | ✅ Potencialmente | Pode ranquear se a qualidade for boa |
| Apenas tradução automática + canonical | ❌ Não | Não ranqueará — usado apenas para UX |
| Tradução automática + sem canonical ou hreflang | ⚠️ Risco | Pode acionar penalidades por duplicidade |
HTML necessário para sites com traduções literais (automatizadas)
- Cada página deve ter o atributo
langna taghtml, por exemplo:
<html lang="de">
- Cada página deve ter uma lista de links alternativos para esta página em outros idiomas, por exemplo, o HTML abaixo descreve URLs alternativas para a mesma ou página similar em três idiomas:
<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/">
- Cada página traduzida do site deve especificar a URL canônica para esta página (a da primeira ou do idioma da página original), como:
<link rel="canonical" href="https://www.glukhov.org/post/2025/10/multi-language-website-seo-with-hugo/">
Isso orientará os mecanismos de busca a não indexar páginas não canônicas. Alguns mecanismos de busca, é claro, podem ignorar isso e indexar todas as páginas.
Para páginas da web traduzidas profissionalmente / manualmente
Não especificar <link rel="canonical" pode causar que o mecanismo de busca imponha penalidades por duplicação.
Mas se você fizer a tradução manual das páginas do seu site, ou encomendar uma tradução profissional, pode esperar que os mecanismos de busca aceitem sua página não canônica como original.
Modelos Hugo para sites localizados
Devemos ter em mente que o tema do site Hugo pode já suportar tudo isso.
<html lang=…
Abra o arquivo layouts/_default/baseof.html seja na pasta do seu site Hugo ou na pasta do seu tema e certifique-se de que haja algo como:
<!DOCTYPE html>
<html class="no-js" lang="{{ .Site.Language.Lang }}">
<head>
...
{{ partial "seo-localise.html" . }}
</head>
...
<link rel=“alternate” hreflang= e <link rel=“canonical”
Agora abra o arquivo layouts/partials/seo-localise.html e coloque lá este código de modelo 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 }}
Se você traduzir seu site manualmente, este código pode ficar assim:
{{ $canonical := .Permalink }}
<!-- Canonical URL -->
<link rel="canonical" href="{{ $canonical }}">
<!-- Hreflang Alternate Tags -->
{{ range .AllTranslations }}
<link rel="alternate" hreflang="{{ .Lang }}" href="{{ .Permalink }}">
{{ end }}
config.toml
Em seu config.toml, certifique-se de configurar:
# configure languages on your website
defaultContentLanguage = "en"
[languages]
[languages.en]
weight = 1
languageName = "English"
[languages.es]
weight = 2
languageName = "Español"
[languages.fr]
weight = 3
languageName = "Français"
Ajuste o acima com base nos idiomas do seu site.
Agora execute o comando hugo para gerar um site, depois hugo serve para executar o servidor web de desenvolvedor, abra o site e visualize o código-fonte da página.
Certifique-se de que todas as tags <html> e <link> tenham atributos adequados.
Links úteis: Gerador de sites estáticos Hugo
- Hugo Cheat Sheet - comandos mais úteis
- Implantar site gerado pelo Hugo no AWS S3
- Usando Gitea Actions para implantar site Hugo no AWS S3
- Adicionar marcação de dados estruturados ao Hugo
- Enviar Formulário Google em Site Hugo
- Tema Mainroad Hugo - manipulação de imagens
- Temas mais populares para Hugo
- Como armazenar imagens de miniatura na pasta de bundle de página para sites Hugo com tema Mainroad
- Início rápido do Hugo: https://gohugo.io/getting-started/quick-start/