Configurando SEO de Site Multilíngue com Hugo
O que fazer com `canonical`, `lang` e `hreflang`
Traduzir seu site Hugo pode melhorar seu ranqueamento no Google e no 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 adaptadas culturalmente) frequentemente reduzem as taxas de saída, aumentam o tempo no site e melhoram as conversões. Esses são sinais de comportamento dos usuários que podem positivamente afetar seus ranqueamentos de SEO.
Hugo é um gerador de sites estáticos. Essencialmente, ele converte os arquivos Markdown em páginas HTML de uma maneira muito configurável e é bastante rápido. Para mais detalhes, veja aqui Hugo Cheat Sheet, você também é bem-vindo a explorar a lista de artigos relacionados a Hugo no final desta página.
Pergunta principal: Devo traduzir para SEO?
Cenário | Tradução ajuda o SEO? | Notas |
---|---|---|
Tradução humana + localizada + estruturada para SEO | ✅ Sim, benefício forte | Melhor opção |
Tradução de alta qualidade com IA + edição + hreflang | ✅ Potencialmente | Pode ranquear se a qualidade for boa |
Tradução automática apenas + canonical | ❌ Não | Não vai ranquear — usado apenas para UX |
Tradução automática + nenhum canonical ou hreflang | ⚠️ Risco | Pode desencadear penalidades por duplicidade |
HTML necessário para sites com traduções literais (automatizadas)
- Cada página deve ter o atributo
lang
na 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 uma página semelhante 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 do site traduzida deve especificar a URL canonical para esta página (a do primeiro idioma ou da página original), como:
<link rel="canonical" href="https://www.glukhov.org/post/2025/10/multi-language-website-seo-with-hugo/">
Isso informará aos motores de busca para ignorar o indexação de páginas não canônicas. Alguns motores 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 aos motores de busca impor penalidades por duplicidade.
Mas, se você fizer a tradução manual de suas páginas do site ou encomendar uma profissional, você pode esperar que os motores 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 estar suportando tudo isso já.
<html lang=…
Abra o arquivo layouts/_default/baseof.html
no seu diretório do site Hugo ou no diretório do tema e certifique-se de que há 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 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 }}
<!-- URL Canônica -->
<link rel="canonical" href="{{ $canonical }}">
<!-- Tags de Alternativas hreflang -->
{{ range .AllTranslations }}
<link rel="alternate" hreflang="{{ .Lang }}" href="{{ .Permalink }}">
{{ end }}
Se você traduzir seu site manualmente, esse código pode parecer com:
{{ $canonical := .Permalink }}
<!-- URL Canônica -->
<link rel="canonical" href="{{ $canonical }}">
<!-- Tags de Alternativas hreflang -->
{{ range .AllTranslations }}
<link rel="alternate" hreflang="{{ .Lang }}" href="{{ .Permalink }}">
{{ end }}
config.toml
No seu config.toml
, certifique-se de definir:
# configure languages on your website
defaultContentLanguage = "en"
[languages]
[languages.en]
weight = 1
languageName = "Inglês"
[languages.es]
weight = 2
languageName = "Espanhol"
[languages.fr]
weight = 3
languageName = "Francês"
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 de desenvolvimento, abra o site e veja o código-fonte da página.
Certifique-se de que todos esses tags <html>
e <link>
tenham atributos apropriados.
Links úteis: Gerador de site estático 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 no site Hugo
- Tema Mainroad do Hugo - manipulação de imagens
- Temas mais populares para Hugo
- Como armazenar imagens de miniatura em pasta de bundle de página para sites Hugo com tema Mainroad
- Hugo quickstart: https://gohugo.io/getting-started/quick-start/