Localisation Blazor
Créer des URL culturelles optimisées SEO dans Blazor
Utilisez les routes /en-us/nom-de-page/ pour un accès direct.
L'objectif est un système d'URL stable, pas seulement un texte traduit.
Pourquoi c'est important
Les URL culturelles aident les utilisateurs et les crawlers à choisir la bonne page
Un cookie peut changer la langue après une requête.
Une URL peut être partagée, explorée, indexée, mise en cache et auditée.
Les routes culturelles conviennent aux articles publics, pages produits, docs et outils.
Table des matières
Concepts clés
Séparer langue, région, route et version de contenu
Gardez ces termes séparés avant d'écrire le code de routage.
Utilisez la langue pour le texte lisible.
L'anglais, l'allemand et le français sont des choix de langue.
Utilisez la région pour l'intention locale.
en-us et en-gb peuvent nécessiter une orthographe, des exemples et des offres différents.
Utilisez les routes pour la découverte.
Une route comme /de-de/blazor/ offre à tous une adresse stable.
Utilisez le contenu lorsque l'intention diffère.
Rédigez une version distincte lorsque les notes légales, les prix ou les exemples diffèrent.
Signaux SEO
Connecter les routes culturelles avec les règles canonical et hreflang
L'URL n'est qu'un signal. Les métadonnées doivent correspondre.
URL canonique
Pointez chaque page localisée vers sa propre URL préférée.
hreflang
Liez chaque version linguistique ou régionale réelle avec hreflang.
x-default
Utilisez x-default pour un sélecteur neutre ou un repli global.
BreadcrumbList
Gardez les fil d’Ariane sensibles à la culture afin que le schéma corresponde à la hiérarchie visible des routes.
Référence associée
Métadonnées et schéma doivent raconter la même histoire
Utilisez ces guides lorsque vous ajoutez des métadonnées et des données structurées.
Implémentation
Construisez les règles de routage en petites étapes
Commencez avec un service, une redirection et un modèle de route.
Contrat du service de culture
Centralisez les cultures prises en charge et l’analyse des 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";
}
}Point de terminaison de redirection de culture
Définissez le cookie, puis revenez à la route de culture.
[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);
}
}Configuration du programme
Enregistrez la localisation avant de mapper les routes des contrôleurs.
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();Route de la page
Intégrez le segment de culture dans chaque route publique.
@page "/{Culture}/pricing/"
<a href="@BuildCultureLink(PageLinks.Blazor)">
Blazor guides
</a>Réalité des routes
Blazor peut localiser le contenu, pas les modèles de route
Le segment culture change ; le slug reste stable. Les slugs traduits ont besoin de leur propre couche de routage.
Les routes Razor @page utilisent des modèles littéraux. La localisation traduit uniquement le texte des pages. PageLinks et chaînes @page restent sous contrôle du code.
/de-de/seo-friendly-culture-links-in-blazor/
Seule la culture change.
/de-de/seo-freundliche-culture-links-in-blazor/
Les slugs traduits nécessitent une table de slugs. Ils nécessitent aussi redirections, canonicals, sitemaps et hreflang.
BuildCultureLink(PageLinks.Blazor)
BuildCultureLink change la culture, pas les slugs.
Erreurs courantes
La plupart des bugs d’URL de culture sont des incompatibilités de routage
Le modèle de route est rarement la partie difficile.
Gardez chaque signal synchronisé après un changement de langue.
Ne redirigez pas indéfiniment une culture valide.
Normalisez la culture une fois, puis arrêtez-vous lorsque la route correspond déjà.
Ne devinez pas la culture par défaut tardivement.
Utilisez une seule culture par défaut pour le routage, les métadonnées, le sitemap et la logique de repli.
Ne laissez pas deux pages posséder le même slug culturel.
Les liens de page centralisés facilitent la revue des collisions accidentelles de routes.
Ne cachez pas les routes linguistiques uniquement dans l’état client.
Les crawlers et utilisateurs ont besoin de vraies valeurs href avant que Blazor ne devienne interactif.
Validation
Vérifiez chaque route de culture avant publication
Validez le HTML rendu, pas seulement le code Razor.
- Ouvrez au moins une URL pour chaque culture prise en charge.
- Vérifiez les balises canonique et hreflang dans la source rendue.
- Confirmez que le schéma FAQ correspond aux questions et réponses visibles.
- Explorez les redirections pour éviter que les cultures non prises en charge ne créent des boucles.
- Vérifiez les titres traduits, descriptions, textes H1 et mots-clés.
Questions fréquentes
Les URL culturelles sont-elles meilleures que les cookies pour le SEO ?
Oui. Les URL culturelles créent des pages explorables et partageables.
Quelle est la différence entre langue et région ?
La langue contrôle le texte. La région contrôle les exemples et offres locales.
Ai-je encore besoin de hreflang avec les routes culturelles ?
Oui. Les routes culturelles clarifient les URL. hreflang les relie.
Vers quoi doit pointer la balise canonical sur les pages localisées ?
En général, la canonical pointe vers la même page localisée.
Comment éviter les boucles de redirection ?
Redirigez une fois les cultures non supportées, puis arrêtez.