Articolo

Come e perché ho localizzato il mio sito web

Perché ho localizzato il mio sito per SEO e GEO e come pagine specifiche per lingua, metadati e routing possono rendere i contenuti più facili da scoprire per motori di ricerca e sistemi di IA.

Come e perché ho localizzato il mio sito web

Ho localizzato il mio sito web per renderlo più utile a persone che parlano lingue diverse, e più facile da trovare e comprendere per motori di ricerca e sistemi di IA. L’obiettivo è una migliore reperibilità attraverso SEO e GEO, non la promessa di posizionamenti o citazioni più alti.

Perché l’ho localizzato

Le persone cercano e pongono domande nella propria lingua. Offrire pagine chiare e pertinenti in quelle lingue dà ai motori di ricerca contenuti più utili da mostrare e ai sistemi di IA generativa un contesto migliore per rispondere. La localizzazione aiuta il pubblico giusto a trovare il mio lavoro, invece di limitarlo alle ricerche in inglese.

Come l’ho fatto

Ho trattato la localizzazione come parte della struttura del sito, non come una semplice passata di traduzione. Gli esempi qui sotto sono estratti semplificati della configurazione che uso con Next.js.

1. Assegna a ogni lingua un URL prevedibile

L’inglese è la lingua predefinita e resta alla radice. Le altre lingue hanno un prefisso, così la stessa pagina ha un URL stabile in ogni lingua. Mantenere le lingue supportate in un unico elenco offre inoltre al routing e ai link di cambio lingua un’unica fonte di verità.

export const locales = ['en', 'de', 'es', 'fr', 'ja', 'pt'] as const;
export type Locale = (typeof locales)[number];
export const defaultLocale: Locale = 'en';

export function localizedPath(locale: Locale, pathname = '') {
  const path = pathname === '/' ? '' : pathname;
  return locale === defaultLocale ? path || '/' : `/${locale}${path}`;
}

2. Conserva i contenuti tradotti in dizionari

Ogni lingua ha il proprio dizionario per titoli delle pagine, descrizioni, navigazione e testo degli articoli. I componenti leggono dal dizionario attivo invece di incorporare testo destinato agli utenti, così le pagine tradotte restano allineate allo stesso layout.

// src/locales/de.ts
pageTitles: {
  'blog/how-and-why-i-localized-my-website':
    'Warum und wie ich meine Website lokalisiert habe',
}

// In the page component
const title = t.pageTitles[articleKey];

3. Indica ai crawler quale versione è quale

Per ogni pagina localizzata imposto un URL canonico dedicato ed elenco gli URL equivalenti nelle altre lingue con le alternative hreflang. Inserisco inoltre queste route nella sitemap. Così le relazioni tra le traduzioni diventano esplicite; non garantisce posizionamenti né citazioni da parte dell’IA.

const pathname = `/${articleKey}`;
const url = localizedUrl(locale, pathname);

return {
  alternates: {
    canonical: url,
    languages: getLanguageAlternates(pathname),
  },
};

Lo stesso schema vale oltre gli articoli del blog: navigazione e testi localizzati rendono l’esperienza utile ai visitatori, mentre URL e metadati coerenti rendono ogni versione più facile da identificare. Devo comunque mantenere le traduzioni accurate e utili: la SEO tecnica può aiutare la reperibilità, ma non sostituisce buoni contenuti.