Warum eine Migration gut geplant sein will

Ein schlecht geplanter Server-Umzug endet mit downtime, kaputten Links, fehlenden E-Mails und einem Wochenende, das du stattdessen mit firefighting verbringst. Das muss nicht sein.

Der kritische Punkt bei jeder Migration: der DNS-TTL. Solange deine alte DNS-Konfiguration noch in den Caches der Welt liegt, zeigen einige Besucher noch auf den alten Server — während andere bereits auf dem neuen landen. Das erzeugt Inkonsistenz: jemand bestellt, aber die Bestätigung kommt nicht an. Ein Formular wird zweimal abgeschickt. Bilder fehlen.

Mit der richtigen Sequenz — erst alles auf dem neuen Server verifizieren, dann DNS umstellen, dann den alten Server abschalten — vermeidest du all das.

48h
Typische DNS-Propagationszeit
0 min
Ziel-Downtime bei korrekter Planung
14 Tage
Alte Server parallel halten (empfohlen)

Vorbereitung: Was du auf dem neuen Host brauchst

Bevor du irgendetwas umstellst, richte den neuen Server vollständig ein. Das bedeutet:

Test-URL statt Live-URL nutzen

Nutze /etc/hosts (Mac/Linux) oder die hosts-Datei unter Windows, um die neue IP vorübergehend auf deinen Domainnamen zu lenken. So kannst du den neuen Server testen, bevor du DNS umstellst. Auf dem Mac:

sudo nano /etc/hosts
# Füge hinzu:
# 123.456.78.90  www.deine-domain.de
# 123.456.78.90  deine-domain.de

Schritt 1: Vollständiger Datenexport vom alten Server

Der erste Schritt: alles exportieren. Files, Datenbank, E-Mails, Konfigurationen — nichts darf auf dem alten Server bleiben, das nicht dokumentiert ist.

Dateien per rsync übertragen

rsync ist das Mittel der Wahl für große Dateimengen. Es überträgt inkrementell, ist resumable, und zeigt Fortschritt:

# Trockentest (was würde übertragen werden):
rsync -avzn --delete /var/www/html/ user@neuer-server:/var/www/html/

# Tatsächliche Übertragung (inkrementell, resumable):
rsync -avz --delete /var/www/html/ user@neuer-server:/var/www/html/

# Nur bestimmte Verzeichnisse:
rsync -avz /var/www/html/wp-content/ user@neuer-server:/var/www/html/wp-content/
rsync -avz /var/www/html/media/ user@neuer-server:/var/www/html/media/

Datenbank exportieren und importieren

MySQL-Dump auf dem alten Server erstellen, auf den neuen übertragen und einspielen:

# Export (alter Server):
mysqldump -u db_user -p --single-transaction --quick db_name > db_dump.sql
gzip db_dump.sql

# Auf neuem Server importieren:
gunzip < db_dump.sql.gz | mysql -u db_user -p db_name

# Oder direkt via Pipe (kein Zwischenspeicher):
mysqldump -u db_user -p db_name | ssh user@neuer-server "mysql -u db_user -p db_name"

Große Datenbanken:注意点

Bei Datenbanken über 1 GB bricht ein einzelner Dump leicht ab oder braucht zu lange. Nutze --quick (Zeilenweise statt kompletter Memory-Buffer), --single-transaction (konsistente MyISAM-Snapshot), und komprimiere die Ausgabe: mysqldump ... | gzip | ssh ... | gunzip | mysql. Bei über 5 GB: erwäge pt-online-schema-change oder einen Replikations-Ansatz.

Schritt 2: DNS-TTL vorbereiten

Mindestens 48 Stunden bevor du umstellst, setze die DNS-TTL auf den niedrigsten möglichen Wert (meist 300 Sekunden = 5 Minuten). Das verkürzt die Propagationszeit nach der Umstellung:

# Vor der Migration: TTL auf 300 setzen
# A-Record TTL: 300

# Nach der Migration: TTL zurück auf 3600 oder höher
# Das reduziert DNS-Queries an deinen Server

Warte nach dem TTL-Update die alte TTL-Dauer ab (z.B. 24 Stunden, wenn sie vorher auf 86400 stand). Erst dann stellst du die DNS-Records um. Andernfalls cached die halbe Welt noch den alten Wert und du bekommst eine verlängerte Split-Brain-Phase.

Schritt 3: SSL-Zertifikat umziehen

Wenn du Let's Encrypt nutzt: auf dem neuen Server einfach neu ausstellen — kein Aufwand. Wenn du ein kommerzielles Zertifikat hast (Wildcard, Extended Validation), brauchst du den Private Key und das Zertifikat+Paket:

# Alten Server: Key und Zertifikate sichern
sudo tar -czf ssl-backup.tar.gz /etc/letsencrypt/
sudo tar -czf ssl-backup.tar.gz /etc/ssl/private/ /etc/ssl/certs/

# Auf neuem Server entpacken und Webserver neu starten
sudo tar -xzf ssl-backup.tar.gz -C /
sudo nginx -t && sudo systemctl reload nginx

SSL-Erneuerung nicht vergessen

Wenn du das Zertifikat manuell umziehst, stelle sicher, dass der Erneuerungs-Cronjob auf dem neuen Server läuft. Let's Encrypt-Zertifikate laufen nach 90 Tagen ab — ein verpasster Renewal auf dem neuen Server bedeutet eine lapse und eine neue Ausstellung.

Schritt 4: Testen auf dem neuen Server

Bevor du irgendetwas in DNS umstellst, verifiziere everything auf dem neuen Server funktioniert:

Pre-Migration-Checkliste

Website lädt über neue IP (via /etc/hosts)
SSL-Zertifikat funktioniert, kein Zertifikatsfehler
Datenbank-Verbindungen funktionieren (MySQL/PostgreSQL)
Bilder und statische Assets werden korrekt ausgeliefert
Kontaktformular / Backend / API-Endpunkte erreichbar
PHP-Version korrekt (keine Deprecated-Warnings)
Cronjobs korrekt gesetzt und laufen
E-Mail-Weiterleitungen konfiguriert und testbar
WordPress: URLs in Datenbank korrekt (wp_options siteurl/home)
.htaccess / Nginx-Konfiguration übernommen

Schritt 5: DNS umstellen

Jetzt der eigentliche switch: ändere den A-Record auf die neue Server-IP. Nutze direkt das DNS-Panel deines Registrars (nicht ein intermediate DNS-Service — das fügt nur eine Schicht hinzu, die bei Problemen verwirrt):

# Prüfe aktuellen DNS-Status vor der Umstellung:
dig A deine-domain.de +short
# Sollte aktuell noch auf alte IP zeigen

# Nach der Umstellung prüfen:
dig A deine-domain.de @8.8.8.8 +short
# Sollte neue IP zeigen

# Für mehrere Subdomains:
dig A www.deine-domain.de +short
dig A mail.deine-domain.de +short
dig A api.deine-domain.de +short

Bei MX-Records: diese zeigen typischerweise auf den Mailserver-Hostnamen, nicht direkt auf die Server-IP. Falls der Mailserver auf demselben Server läuft, stelle sicher, dass der MX-Record auf den A-Record des neuen Servers zeigt.

Schritt 6: Post-Migration-Verifikation

Nach der DNS-Umstellung — und nach Ablauf der propagierten TTL — checke systematisch:

Schritt 7: Alten Server nicht sofort kappen

Halte den alten Server mindestens 14 Tage parallel. Während der DNS-Propagation landen immer noch einige Requests auf dem alten Server — diese Besucher sehen sonst einen Fehler. Nach 2 Wochen sind 99,9% aller DNS-Caches auf dem neuen Server:

# 14 Tage nach Migration: prüfe, wie viel Traffic noch auf altem Server ankommt
# Wenn <1% (typisch nach 2 Wochen): sicher abschalten

# Vor dem Abschalten: nochmal Everything sichern
sudo tar -czf final-backup.tar.gz /var/www/ /etc/nginx/ /etc/php/
# → Das ist dein Rettungsnetz, falls du etwas übersehen hast

WordPress-Migration: Besonderheiten

WordPress hat ein paar Fallstricke, die bei normalen HTML-Seiten nicht existieren:

Problem Ursache Lösung
CSS/JS lädt nicht /Mixed Content Hardcoded URLs in wp_options, posts, postmeta UPDATE wp_options SET option_value=REPLACE(option_value,'old-domain','new-domain') — oder Better Search Replace Plugin
Bilder werden nicht gefunden upload_path zeigt auf alten Server wp_options prüfen: upload_path, siteurl, home
Dashboard unreachable wp-config.php zeigt noch auf alte DB DB_HOST, DB_NAME, DB_USER, DB_PASSWORD prüfen
Plugins funktionieren nicht PHP-Version inkompatibel (z.B. PHP 8.2 vs. Plugin) Kompatibilitätsmodus oder Plugin updaten
Permalinks 404 .htaccess nicht übertragen oder Nginx rewrite-Regeln fehlen .htaccess prüfen, Apache mod_rewrite aktiv

WordPress-cli für zeitsparende Migration

Das WP-CLI-Tool macht Suchen/Ersetzen trivial und sicher: wp search-replace 'https://alter-server.com' 'https://deine-domain.de' --dry-run (erst Trockentest, dann ohne --dry-run ausführen). Es durchläuft alle Posts, Pages, Comments, Options — inkl. serialisierten Daten, die bei manuellem SQL-Replace kaputtgehen.

Fazit: Migration ist kein Hexenwerk

Server-Migration ist ein strukturiertes Projekt, kein Glücksspiel. Die kritischen Regeln:

Wenn du dich an diese Sequenz hältst, ist eine Hosting-Migration ein kontrollierter, fast langweiliger Prozess — genau wie es sein sollte.

Neues Hosting gefunden? Vergleiche Anbieter

VPS, Managed Hosting und Cloud-Server im Vergleich — mit Bewertungen, Preisen und Features.

Zum Hosting-Vergleich