Localización en Blazor
Crear URLs culturales optimizadas para SEO en Blazor
Usa rutas /es-es/nombre-de-pagina/ para acceso directo.
El objetivo es un sistema de URLs estable, no solo texto traducido.
Por qué es importante
Las URLs culturales ayudan a personas y rastreadores a elegir la página correcta
Una cookie puede cambiar el idioma tras una petición.
Una URL puede compartirse, rastrearse, indexarse, almacenarse en caché y auditarse.
Las rutas culturales encajan en artículos públicos, páginas de producto, documentación y herramientas.
Índice
Conceptos clave
Separar idioma, región, ruta y versión de contenido
Mantén estos términos separados antes de escribir el código de rutas.
Usa el idioma para texto legible.
Inglés, alemán y francés son opciones de idioma.
Usa la región para intención local.
en-us y en-gb pueden necesitar ortografía, ejemplos y ofertas diferentes.
Usa rutas para descubrimiento.
Una ruta como /de-de/blazor/ ofrece a todos una dirección estable.
Usa contenido cuando la intención difiera.
Escribe una versión separada cuando las notas legales, precios o ejemplos difieran.
Señales SEO
Conectar rutas culturales con reglas canonical y hreflang
La URL es solo una señal. Los metadatos deben coincidir.
Canonical URL
Apunta cada página localizada a su propia URL preferida.
hreflang
Enlaza cada versión real de idioma o región con hreflang.
x-default
Usa x-default para un selector neutral o fallback global.
BreadcrumbList
Mantén las migas de pan conscientes de la cultura para que el esquema coincida con la jerarquía visible de rutas.
Referencia relacionada
Metadatos y esquema deben contar la misma historia
Utiliza estas guías cuando añadas metadatos y datos estructurados.
Implementación
Construye las reglas de ruta en pequeñas partes
Comienza con un servicio, un redireccionamiento y un patrón de ruta.
Contrato del servicio de cultura
Centraliza las culturas soportadas y el análisis de 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";
}
}Punto final de redirección de cultura
Establece la cookie y luego vuelve a la ruta de 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);
}
}Configuración del programa
Registra la localización antes de mapear las rutas del controlador.
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();Ruta de página
Haz que el segmento de cultura sea parte de cada ruta pública.
@page "/{Culture}/pricing/"
<a href="@BuildCultureLink(PageRegistryKey.Blazor)">
Blazor guides
</a>Realidad de las rutas
Blazor puede localizar contenido, no plantillas de rutas
El segmento de cultura cambia; el slug permanece estable. Los slugs traducidos necesitan su propia capa de enrutamiento.
Las rutas Razor @page usan plantillas literales. La localización traduce solo el texto de la página. PageRegistry y cadenas @page permanecen propiedad del código.
/de-de/seo-friendly-culture-links-in-blazor/
Solo cambia la cultura.
/de-de/seo-freundliche-culture-links-in-blazor/
Los slugs traducidos necesitan una tabla de slugs. También necesitan redirecciones, canonicals, sitemaps y hreflang.
BuildCultureLink(PageRegistryKey.Blazor)
BuildCultureLink cambia la cultura, no los slugs.
Errores comunes
La mayoría de los errores de URL de cultura son desajustes de rutas
La plantilla de ruta rara vez es la parte difícil.
Mantén todas las señales alineadas tras un cambio de idioma.
No redirijas una cultura válida para siempre.
Normaliza la cultura una vez y detente cuando la ruta ya coincida.
No adivines la cultura predeterminada tarde.
Usa una cultura predeterminada para el enrutamiento, metadatos, sitemap y lógica de fallback.
No permitas que dos páginas tengan el mismo slug cultural.
Los enlaces centrales facilitan revisar colisiones accidentales de rutas.
No ocultes rutas de idioma solo en estado cliente.
Los rastreadores y usuarios necesitan valores href reales antes de que Blazor sea interactivo.
Validación
Verifica cada ruta de cultura antes de publicar
Valida el HTML renderizado, no solo el código Razor.
- Abre al menos una URL para cada cultura soportada.
- Verifica las etiquetas canonical y hreflang en el código fuente renderizado.
- Confirma que el esquema FAQ coincida con las preguntas y respuestas visibles.
- Rastrea redirecciones para que las culturas no soportadas no generen bucles.
- Revisa títulos traducidos, descripciones, texto H1 y palabras clave.
Preguntas frecuentes
¿Son las URLs con cultura mejores que las cookies para SEO?
Sí. Las URLs con cultura crean páginas rastreables y compartibles.
¿Cuál es la diferencia entre idioma y región?
El idioma controla el texto. La región controla ejemplos y ofertas locales.
¿Sigo necesitando hreflang con rutas de cultura?
Sí. Las rutas de cultura aclaran las URLs. hreflang las conecta.
¿A qué debe apuntar el canonical en páginas localizadas?
Normalmente, el canonical apunta a la misma página localizada.
¿Cómo evito bucles de redirección?
Redirige culturas no soportadas una vez y luego detente.