Localizzazione Blazor
Costruire URL culturali SEO-friendly in Blazor
Usa rotte /en-us/nome-pagina/ per accesso diretto.
L'obiettivo è un sistema URL stabile, non solo testo tradotto.
Perché è importante
Gli URL culturali aiutano persone e crawler a scegliere la pagina giusta
Un cookie può cambiare lingua dopo una richiesta.
Un URL può essere condiviso, scansionato, indicizzato, memorizzato nella cache e analizzato.
Le rotte culturali si adattano ad articoli pubblici, pagine prodotto, documentazione e strumenti.
Indice
Concetti fondamentali
Separa lingua, regione, rotta e versione del contenuto
Mantieni questi termini separati prima di scrivere il codice di routing.
Usa la lingua per il testo leggibile.
Inglese, tedesco e francese sono scelte di lingua.
Usa la regione per l'intento locale.
en-us e en-gb possono richiedere ortografia, esempi e offerte diverse.
Usa le rotte per la scoperta.
Una rotta come /de-de/blazor/ offre a tutti un indirizzo stabile.
Usa il contenuto quando l'intento è diverso.
Scrivi una versione separata quando note legali, prezzi o esempi differiscono.
Segnali SEO
Collega rotte culturali con regole canonical e hreflang
L'URL è solo un segnale. I metadati devono corrispondergli.
Canonical URL
Indirizza ogni pagina localizzata al proprio URL preferito.
hreflang
Collega ogni versione reale di lingua o regione con hreflang.
x-default
Usa x-default per un selettore neutro o fallback globale.
BreadcrumbList
Mantieni i breadcrumb consapevoli della cultura in modo che lo schema corrisponda alla gerarchia visibile del percorso.
Riferimento correlato
Metadati e schema devono raccontare la stessa storia
Usa queste guide quando aggiungi metadata e dati strutturati.
Implementazione
Costruisci le regole di routing a piccoli pezzi
Inizia con un servizio, un reindirizzamento e un modello di percorso.
Contratto del servizio cultura
Centralizza le culture supportate e l'analisi degli URL.
public sealed class CultureRouteService
{
private static readonly string[] SupportedCultures = ["en-us", "en-gb", "de-de"];
public string ResolveCulture(string? routeCulture)
{
if (SupportedCultures.Contains(routeCulture, StringComparer.OrdinalIgnoreCase))
{
return routeCulture!.ToLowerInvariant();
}
return "en-us";
}
}Endpoint di reindirizzamento cultura
Imposta il cookie, quindi torna al percorso della cultura.
[Route("culture")]
public sealed class CultureController : Controller
{
[HttpGet("set")]
public IActionResult Set(string culture, string returnUrl)
{
Response.Cookies.Append(
CookieRequestCultureProvider.DefaultCookieName,
CookieRequestCultureProvider.MakeCookieValue(new RequestCulture(culture)));
return LocalRedirect(returnUrl);
}
}Configurazione del programma
Registra la localizzazione prima di mappare i percorsi dei controller.
builder.Services.AddLocalization();
builder.Services.AddScoped<CultureRouteService>();
app.UseRequestLocalization(options =>
{
options.SetDefaultCulture("en-us");
options.AddSupportedCultures("en-us", "en-gb", "de-de");
options.AddSupportedUICultures("en-us", "en-gb", "de-de");
});
app.MapControllers();Percorso della pagina
Rendi il segmento cultura parte di ogni percorso pubblico.
@page "/{Culture}/pricing/"
<a href="@BuildCultureLink(PageLinks.Blazor)">
Blazor guides
</a>Realtà dei percorsi
Blazor può localizzare il contenuto, non i template dei percorsi
Il segmento cultura cambia; lo slug rimane stabile. Gli slug tradotti necessitano di un proprio livello di routing.
Le rotte Razor @page usano template letterali. La localizzazione traduce solo il testo della pagina. PageLinks e stringhe @page restano di proprietà del codice.
/de-de/seo-friendly-culture-links-in-blazor/
Cambia solo la cultura.
/de-de/seo-freundliche-culture-links-in-blazor/
Gli slug tradotti necessitano di una tabella degli slug. Hanno anche bisogno di reindirizzamenti, canonical, sitemap e hreflang.
BuildCultureLink(PageLinks.Blazor)
BuildCultureLink cambia la cultura, non gli slug.
Errori comuni
La maggior parte dei bug negli URL di cultura sono disallineamenti di routing
Il modello di percorso raramente è la parte difficile.
Mantieni ogni segnale allineato dopo un cambio di lingua.
Non reindirizzare indefinitamente una cultura valida.
Normalizza la cultura una volta, poi interrompi se il percorso corrisponde già.
Non indovinare la cultura predefinita troppo tardi.
Usa una sola cultura predefinita per routing, metadata, sitemap e logica di fallback.
Non permettere che due pagine abbiano lo stesso slug culturale.
I link centrali delle pagine facilitano la revisione di collisioni accidentali di percorso.
Non nascondere i percorsi linguistici solo nello stato client.
Crawler e utenti hanno bisogno di valori href reali prima che Blazor diventi interattivo.
Validazione
Controlla ogni percorso cultura prima della pubblicazione
Valida l'HTML generato, non solo il codice Razor.
- Apri almeno un URL per ogni cultura supportata.
- Controlla i tag canonical e hreflang nel codice sorgente renderizzato.
- Conferma che lo schema FAQ corrisponda alle domande e risposte visibili.
- Scansiona i reindirizzamenti per evitare loop con culture non supportate.
- Rivedi titoli tradotti, descrizioni, testo H1 e parole chiave.
Domande frequenti
Gli URL con cultura sono migliori dei cookie per la SEO?
Sì. Gli URL con cultura creano pagine indicizzabili e condivisibili.
Qual è la differenza tra lingua e regione?
La lingua controlla il testo. La regione controlla esempi e offerte locali.
Ho ancora bisogno di hreflang con i percorsi di cultura?
Sì. I percorsi di cultura rendono gli URL chiari. hreflang li collega.
A cosa dovrebbe puntare il canonical sulle pagine localizzate?
Di solito, il canonical punta alla stessa pagina localizzata.
Come evito i loop di reindirizzamento?
Reindirizza una volta le culture non supportate, poi interrompi.