Blazor-Lokalisierung
SEO-freundliche Culture-URLs in Blazor erstellen
Nutze /en-us/page-name/-Routen für direkten Zugriff.
Das Ziel ist ein stabiles URL-System, nicht nur übersetzter Text.
Warum es wichtig ist
Culture-URLs helfen Menschen und Crawlern, die richtige Seite zu wählen
Ein Cookie kann die Sprache nach einer Anfrage ändern.
Eine URL kann geteilt, gecrawlt, indexiert, gecacht und geprüft werden.
Culture-Routen passen zu öffentlichen Artikeln, Produktseiten, Doku und Tools.
Inhaltsverzeichnis
Grundlagen
Sprache, Region, Route und Inhaltsversion trennen
Trenne diese Begriffe, bevor du Routing-Code schreibst.
Nutze Sprache für lesbaren Text.
Englisch, Deutsch und Französisch sind Sprachentscheidungen.
Nutze Region für lokale Absicht.
en-us und en-gb können andere Schreibweisen, Beispiele und Angebote brauchen.
Nutze Routen für Auffindbarkeit.
Eine Route wie /de-de/blazor/ gibt allen eine stabile Adresse.
Nutze eigene Inhalte, wenn die Suchabsicht abweicht.
Schreibe eine eigene Version, wenn Rechtshinweise, Preise oder Beispiele abweichen.
SEO-Signale
Culture-Routen mit Canonical- und hreflang-Regeln verbinden
Die URL ist nur ein Signal. Metadata muss dazu passen.
Canonical-URL
Verweise jede lokalisierte Seite auf ihre eigene bevorzugte URL.
hreflang-Tags
Verbinde jede echte Sprach- oder Regionsversion mit hreflang.
x-default-Fallback
Nutze x-default für einen neutralen Selector oder globalen Fallback.
BreadcrumbList-Schema
Halte Breadcrumbs culture-aware, damit Schema und sichtbare Hierarchie zusammenpassen.
Passende Referenz
Metadata und Schema müssen dieselbe Geschichte erzählen
Nutze diese Guides, wenn du Metadata und strukturierte Daten ergänzt.
Implementierung
Routenregeln in kleinen Schritten aufbauen
Starte mit einem Service, einer Weiterleitung und einem Routenmuster.
Culture-Service-Vertrag
Zentralisiere unterstützte Cultures und URL-Auswertung.
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";
}
}Culture-Redirect-Endpunkt
Setze das Cookie und kehre dann zur Culture-Route zurück.
[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);
}
}Program-Setup
Registriere Lokalisierung, bevor du Controller-Routen mappst.
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();Seitenroute
Mache das Culture-Segment zum Teil jeder öffentlichen Route.
@page "/{Culture}/pricing/"
<a href="@BuildCultureLink(PageRegistryKey.Blazor)">
Blazor guides
</a>Routenrealität
Blazor kann Inhalte lokalisieren, aber keine Route-Templates übersetzen
Das Culture-Segment wechselt; der Slug bleibt stabil. Übersetzte Slugs brauchen eine eigene Routing-Schicht.
Razor-@page-Routen verwenden feste Templates. Localization übersetzt nur Seitentext. PageRegistry- und @page-Strings bleiben Code-Verantwortung.
/de-de/seo-friendly-culture-links-in-blazor/
Nur die Culture ändert sich.
/de-de/seo-freundliche-culture-links-in-blazor/
Übersetzte Slugs brauchen eine Slug-Tabelle. Sie brauchen außerdem Redirects, Canonicals, Sitemaps und hreflang.
BuildCultureLink(PageRegistryKey.Blazor)
BuildCultureLink ändert die Culture, nicht Slugs.
Häufige Fehler
Die meisten Culture-URL-Fehler sind Routing-Abweichungen
Das Routen-Template ist selten der schwierige Teil.
Halte jedes Signal nach einem Sprachwechsel konsistent.
Leite eine gültige Culture nicht endlos weiter.
Normalisiere die Culture einmal und stoppe, wenn die Route bereits passt.
Errate die Default-Culture nicht erst spät.
Nutze eine Default-Culture für Routing, Metadata, Sitemap und Fallback-Logik.
Lass nicht zwei Seiten denselben Culture-Slug besitzen.
Zentrale PageRegistry machen versehentliche Routenkollisionen leichter prüfbar.
Verstecke Sprachrouten nicht in reinem Client-State.
Crawler und Nutzer brauchen echte href-Werte, bevor Blazor interaktiv wird.
Validierung
Jede Culture-Route vor der Veröffentlichung prüfen
Prüfe gerendertes HTML, nicht nur Razor-Code.
- Öffne mindestens eine URL für jede unterstützte Culture.
- Prüfe Canonical- und hreflang-Tags im gerenderten Quelltext.
- Bestätige, dass FAQ-Schema zu sichtbaren Fragen und Antworten passt.
- Crawle Weiterleitungen, damit nicht unterstützte Cultures nicht endlos laufen.
- Prüfe übersetzte Titel, Beschreibungen, H1-Texte und Keywords.
Häufige Fragen
Sind Culture-URLs besser für SEO als Cookies?
Ja. Culture-URLs erzeugen crawlbare und teilbare Seiten.
Was ist der Unterschied zwischen Sprache und Region?
Sprache steuert Text. Region steuert lokale Beispiele und Angebote.
Brauche ich hreflang trotz Culture-Routen?
Ja. Culture-Routen machen URLs klar. hreflang verbindet sie.
Worauf sollte canonical bei lokalisierten Seiten zeigen?
Meist zeigt canonical auf dieselbe lokalisierte Seite.
Wie vermeide ich Redirect-Loops?
Leite nicht unterstützte Cultures einmal weiter und stoppe dann.