Configurare l'ottimizzazione SEO per un sito web multilingue con Hugo
Cosa fare con `canonical`, `lang` e `hreflang`
Tradurre il tuo sito web Hugo può migliorare il tuo posizionamento su Google e Bing - ma solo se il contenuto tradotto è di alta qualità, localizzato e strutturato correttamente per l’ottimizzazione SEO multilingue.
Le pagine localizzate (non solo tradotte, ma adattate culturalmente) riducono spesso il tasso di abbandono, aumentano il tempo trascorso sul sito e migliorano le conversioni. Questi sono segnali di comportamento degli utenti che possono positivamente influenzare il tuo posizionamento SEO.
Hugo è un generatore di siti web statici. In sostanza, converte i file Markdown in pagine HTML in modo molto configurabile e è abbastanza veloce. Per i dettagli, consulta qui Hugo Cheat Sheet, puoi anche esplorare l’elenco degli articoli relativi a Hugo in fondo a questa pagina.
Domanda principale: Dovresti tradurre per l’ottimizzazione SEO?
Scenario | La traduzione aiuta l’ottimizzazione SEO? | Note |
---|---|---|
Traduzione umana + localizzata + strutturata per SEO | ✅ Sì, beneficio forte | Opzione migliore |
Traduzione di alta qualità con AI + editing + hreflang | ✅ Potenziale | Può posizionarsi se la qualità è buona |
Traduzione automatica solo + canonical | ❌ No | Non posizionerà — utilizzato solo per l’esperienza utente |
Traduzione automatica + nessun canonical o hreflang | ⚠️ Rischio | Potrebbe scatenare penalità per duplicati |
HTML richiesto per i siti con traduzioni letterali (automatizzate)
- Ogni pagina deve avere l’attributo
lang
nel taghtml
, ad esempio:
<html lang="de">
- Ogni pagina deve avere un elenco di collegamenti alternativi per questa pagina in altre lingue, ad esempio, l’HTML seguente descrive gli URL alternativi per la stessa o una pagina simile in tre lingue:
<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/">
- Ogni pagina del sito web tradotta deve specificare l’URL canonico per questa pagina (quello della prima o della lingua originale), ad esempio:
<link rel="canonical" href="https://www.glukhov.org/post/2025/10/multi-language-website-seo-with-hugo/">
Questo indicherà ai motori di ricerca di ignorare l’indicizzazione delle pagine non canoniche. Alcuni motori di ricerca potranno comunque ignorare questa indicazione e indicizzare tutte le pagine.
Per le pagine web tradotte professionalmente / manualmente
Non specificare <link rel="canonical"
può causare ai motori di ricerca di applicare penalità per duplicati.
Ma se traduci manualmente le pagine del tuo sito web o ordini una traduzione professionale, puoi sperare che i motori di ricerca accettino la tua pagina non canonica come originale.
Template Hugo per siti web localizzati
Dobbiamo tenere presente che il tema del sito web Hugo potrebbe già supportare tutto questo.
<html lang=…
Apri il file layouts/_default/baseof.html
nel tuo cartella del sito web Hugo o nella cartella del tema e assicurati che ci sia qualcosa come:
<!DOCTYPE html>
<html class="no-js" lang="{{ .Site.Language.Lang }}">
<head>
...
{{ partial "seo-localise.html" . }}
</head>
...
<link rel=“alternate” hreflang= e <link rel=“canonical”
Ora apri il file layouts/partials/seo-localise.html
e metti il seguente codice HTML:
{{ $defaultLang := .Site.Params.defaultContentLanguage | default "en" }}
{{ $canonical := .Permalink }}
{{ if .IsTranslated }}
{{ $original := .Translations.GetByLang $defaultLang }}
{{ if $original }}
{{ $canonical = $original.Permalink }}
{{ end }}
{{ end }}
<!-- URL canonico -->
<link rel="canonical" href="{{ $canonical }}">
<!-- Tag alternativi hreflang -->
{{ range .AllTranslations }}
<link rel="alternate" hreflang="{{ .Lang }}" href="{{ .Permalink }}">
{{ end }}
Se traduci manualmente il tuo sito web, questo codice potrebbe apparire così:
{{ $canonical := .Permalink }}
<!-- URL canonico -->
<link rel="canonical" href="{{ $canonical }}">
<!-- Tag alternativi hreflang -->
{{ range .AllTranslations }}
<link rel="alternate" hreflang="{{ .Lang }}" href="{{ .Permalink }}">
{{ end }}
config.toml
Nel tuo config.toml
, assicurati di impostare:
# configura le lingue sul tuo sito web
defaultContentLanguage = "en"
[languages]
[languages.en]
weight = 1
languageName = "Inglese"
[languages.es]
weight = 2
languageName = "Español"
[languages.fr]
weight = 3
languageName = "Français"
Adatta quanto sopra in base alle lingue del tuo sito.
Ora esegui il comando hugo
per generare il sito web, quindi hugo serve
per avviare l’host del sito web in sviluppo, apri il sito web e visualizza il codice sorgente di una pagina.
Assicurati che tutti i tag <html>
e <link>
abbiano gli attributi corretti.
Link utili: Generatore di siti web statici Hugo
- Hugo Cheat Sheet - comandi più utili
- Distribuisci il sito web generato da Hugo su AWS S3
- Utilizzo di Gitea Actions per distribuire il sito web Hugo su AWS S3
- Aggiungi markup strutturato a Hugo
- Inserisci un modulo Google in un sito web Hugo
- Tema Mainroad per Hugo - gestione delle immagini
- Temi più popolari per Hugo
- Come archiviare immagini miniature nella cartella del bundle delle pagine per siti Hugo con tema Mainroad
- Quickstart di Hugo: https://gohugo.io/getting-started/quick-start/