Zum Inhalt springen
CodeDock
← Zurück zu den Fallstudien
Case Study3 Wochen7 Min. Lesezeit

Migration einer Zahnklinik von Laravel zu Next.js + .NET 9 — 6 Sprachen, 1.333 URLs, null SEO-Verluste

The Clinic Praha ist eine renommierte Zahnklinik mit internationalem Patientenstamm. Die alte Laravel-Website bot nur 2 Sprachen, hatte fehlerhafte Meta-Descriptions und minimale strukturierte Daten. Wir haben einen vollständigen Neuaufbau geliefert: eine öffentliche Next.js-16-Website, ein React-Admin-Portal und ein .NET-9-Backend — alles in einem einzigen Docker-Image auf Azure. In 3 Wochen und 116 Commits.

Ich möchte eine ähnliche Lösung →The Clinic Praha ↗
6 Spracheninklusive RTL-ArabischCS · EN · DE · FR · RU · AR
1.333URLs in der Sitemap3× mehr als die alte Website (539)
97,6 %Redirect-Abdeckungkein Verlust von SEO-Rankings
3 Wochenvom ersten Commit bis zur Übergabe116 Commits
01 — Ausgangslage

Die alte Laravel-Website blockierte die Expansion zu ausländischen Patienten

The Clinic Praha betreut Patienten aus Deutschland, Frankreich, Russland und der arabischen Welt, aber die alte Website sprach nur Tschechisch und Englisch. Hinzu kamen technische SEO-Probleme, die das organische Wachstum bremsten — fehlende strukturierte Daten, defekte Canonical-URLs und Fallback-Meta-Descriptions mit dem Text „Seite nicht gefunden" auf Behandlungsdetailseiten. Die Migration durfte bestehende Google-Rankings und Backlinks nicht beschädigen.

Website-Sprachennur 2 (CS, EN)
Meta-DescriptionsFallback „Seite nicht gefunden"
Canonical-URLenthielt /public/-Präfix
Strukturierte Datennur JSON-LD auf der Startseite
Hreflang-Abdeckungunvollständig, nur CS + EN
Content-Updateserforderten einen Entwickler
Ausgangspunkt
539 indexierte URLsin 2 Sprachen, keine Rich Snippets, kein Self-Service-CMS
02 — Lösung

Monorepo in einem einzigen Docker-Image: Next.js 16 + .NET 9 + React-Admin

Wir haben das gesamte System von Grund auf neu gebaut. Ein .NET-9-Prozess hostet das Backend-API, liefert die statische Admin-SPA aus und leitet über einen YARP-Proxy die Root-URL zum Next.js-SSR. Weniger Container, einfacherer Betrieb, eine CI/CD-Pipeline.

01

.NET 9 + EF Core + PostgreSQL Backend

ASP.NET Core 9 REST-API auf Azure-verwaltetem PostgreSQL. Die Host-Anwendung liefert außerdem das statische Admin aus und leitet Anfragen über einen YARP-Proxy an den Next.js-SSR-Prozess weiter. Alles in einem einzigen Docker-Image aus der Azure Container Registry.

02

Öffentliche Website — Next.js 16 + React 19 + Tailwind 4

Vollständiges SSR über alle 6 Sprachen (25 Seitentypen × 6 Locales). Slugs pro Locale, dynamisch generierte OG-Bilder auf der Edge-Runtime und ein In-Memory-Redirect-Cache für null DB-Last bei jedem Request.

03

KI-gestützte Übersetzungs-Pipeline

Jede Entität hat tschechischen Quell-Content und N Übersetzungs-Datensätze. Eine tschechische Änderung löst einen TranslationBackgroundJob aus, der eine Batch-Anfrage an die Anthropic Claude API sendet, asynchron pollt und die Ergebnisse in die Datenbank übernimmt. Ein Übersetzungs-Audit-Dashboard zeigt Redakteuren, was noch fehlt.

04

KI-Sitemap-Matcher + Redirect-System

Ein LLM verglich 536 URLs der alten Website mit 1.333 auf der neuen und schlug für 97,6 % der Fälle Redirects vor. Eine Redirect-Datenbank mit 12-monatiger Aufbewahrung, Ketten-Flattening (keine A→B→C-Sprünge) und automatischen Redirects, wenn ein Redakteur einen Slug ändert. Middleware cached 308-Redirects mit 3 Minuten TTL.

05

SEO auf E-Commerce-Niveau

17 JSON-LD-Typen: MedicalOrganization, Physician, MedicalProcedure, FAQPage, JobPosting, BreadcrumbList und mehr. AggregateRating aus importierten Google-Bewertungen sorgt für Sterne-Bewertungen in den SERPs. Vollständiges Hreflang für 6 Sprachen plus x-default auf jeder URL.

06

Admin-Portal mit 14 CRUD-Bereichen

React 19 + Vite 8 + Material-UI 7. Ärzte, Behandlungen, Filialen, Preise, Q&A, Akademie, News, Bücher, Karriere, Bewertungen (automatisch aus Google importiert), Übersetzungen, Redirects, CDN-Dateien, Benutzer. Google OAuth 2.0 mit E-Mail-Allowlist plus Audit-Trail mit Point-in-Time-Recovery.

07

Analytics für PPC-Performance-Kampagnen

Google Tag Manager mit Consent Mode v2 (DSGVO). Conversion-Events newsletter_signup, phone_click, email_click und booking_click übergeben CZK-Werte für Google Ads Smart Bidding. Cookie-Banner und Rechtsseiten in 6 Sprachen.

03 — Architektur

Lösungsarchitektur

Das gesamte System läuft als ein Docker-Container — ein .NET-9-Prozess hostet das API, das statische Admin und leitet über einen YARP-Proxy die Root-URL zu Next.js-SSR. Die Datenbank ist Azure-verwaltetes PostgreSQL, Medien liegen in Cloudflare R2. Traefik übernimmt Reverse-Proxy und TLS, Cloudflare CDN + WAF wehrt Angriffe ab. Azure Pipelines automatisieren CI/CD.

Lösungsarchitektur
  1. Nutzer: Besucher (6 Sprachen)
  2. CDN: Cloudflare (CDN · DDoS · WAF)
  3. Proxy: Traefik (reverse proxy · TLS)
  4. Apps: Next.js 16 SSR (öffentliche Website); React admin (MUI 7 · Vite 8)
  5. Kern: .NET 9 API + YARP (ASP.NET Core)
  6. Daten: Azure PostgreSQL; Cloudflare R2 (Medien · WebP)
  7. Integrationen: KI & Inhalte (Claude API · Übersetzungen, Google Places · Bewertungen); Anmeldung & Marketing (Google OAuth 2.0, Ecomail · Newsletter, Google Tag Manager)
  8. Deployment: Azure DevOps → CI/CD pipelines → Docker · Azure
04 — Ergebnisse

Ergebnisse

3× größerer indexierter Footprint in Google

1.333 URLs in der Sitemap gegenüber 539 auf der alten Website. Neue Sprachvarianten öffnen Rankings auf Google.de, Google.fr, Google.ru und in arabischsprachigen Märkten.

Rich-Snippets-ready

17 JSON-LD-Typen strukturierter Daten, verifiziert im Google Rich Results Test. AggregateRating aus importierten Google-Bewertungen bringt Sterne-Bewertungen direkt in die Suchergebnisse.

Migration ohne SEO-Verlust

Der KI-Matcher schlug für 97,6 % der alten URLs Redirects vor. Ketten-Flattening stellt sicher, dass Redirects nie verkettet werden und Link-Equity erhalten bleibt.

6 Sprachen inklusive RTL-Arabisch

Vollständiges SSR über 25 Seitentypen in 6 Sprachen — inklusive korrektem RTL-Layout für Arabisch. Hreflang und x-default auf jeder URL.

Self-Service-Admin über 14 Bereiche

Der Kunde verwaltet Inhalte ohne Entwickler. KI-Übersetzungen in 6 Sprachen laufen asynchron im Hintergrund, Audit-Trail bietet Point-in-Time-Recovery, Slug-Änderungen erzeugen automatisch Redirects.

PPC-ready Analytics

Google Consent Mode v2 und wertbasierte Conversion-Events in CZK für Google Ads Smart Bidding. Cookie-Banner und Rechtsseiten lokalisiert in alle 6 Sprachen.

Technologien

  • .NET 9
  • ASP.NET Core
  • EF Core
  • C#
  • Next.js 16
  • React 19
  • TypeScript
  • Tailwind 4
  • Material-UI 7
  • Vite 8
  • PostgreSQL
  • Docker
  • Azure
  • Azure Container Registry
  • Azure DevOps Pipelines
  • Cloudflare R2
  • Cloudflare CDN
  • Traefik
  • Anthropic Claude API
  • Google Places API
  • Google OAuth 2.0
  • Ecomail
  • Google Tag Manager
  • Consent Mode v2

Weitere Fallstudien

Alle Fallstudien

Magistra a.s.

Data Warehouse auf Microsoft Fabric für eine Kette mit 200+ Apotheken

DataEnterpriseMicrosoft Fabric
Mehr erfahren

JUST CS spol. s r. o.

Vollständige Ablösung eines MLM-Vertriebsnetz-Managementsystems in 3 Monaten

EnterpriseSystemablösungAzure
Mehr erfahren

Netigo s.r.o.

Eine Anwendung zur Erfassung und Auswertung von Netzwerkverkehr mit Unterstützung für die Protokolle NetFlow v5/v9 und IPFIX, mit einem Hochleistungs-Storage-Backend auf PostgreSQL + TimescaleDB.

High-PerformanceDataNetwork
Mehr erfahren

Weiterlesen

Tiefere technische Notizen zu den Themen dieser Fallstudie.

KI & Automatisierung · 7 Min. Lesezeit

Claude Batch API für Übersetzungen: 50 % günstiger, aber es ist eine Queue

In der Übersetzungspipeline für The Clinic Praha sind wir von der synchronen Claude API auf die Batch API gewechselt. 50 % Rabatt plus Prompt Caching ergeben rund 80 % Ersparnis. Der Haken liegt in der Queue — und in ein paar Fällen, in denen Batch die falsche Wahl ist.

Artikel lesen
Migration & SEO · 9 Min. Lesezeit

Migration einer Laravel-Website zu Next.js 16 + .NET 9 — ohne SEO-Verlust

Eine Zahnklinik mit einer zweisprachigen Laravel-Website wollte Patienten in sechs Sprachen erreichen, ohne Google-Rankings zu verlieren. So haben wir es in drei Wochen geschafft — und wie der Redirect-KI-Matcher 97,6 % der alten URLs abgedeckt hat.

Artikel lesen
Ein Senior-Architekt in jedem Projekt · Über uns →

Brauchen Sie eine ähnliche Lösung?

Schreiben Sie uns — wir antworten innerhalb eines Werktags und vereinbaren einen ersten Call.
Unverbindlich schreiben