Wie aktualisiert man URLs in der WordPress-Datenbank beim Domainumzug?
DE

Wie aktualisiert man URLs in der WordPress-Datenbank beim Domainumzug?

Zuletzt überprüft: 6. August 2026
4 Min. Lesezeit
Leitfaden
Serverarchitektur

Der Umzug einer WordPress-Website (z. B. von dev.site.de auf site.de) scheint einfach zu sein: Einfach “Suchen und Ersetzen” in der Datenbank ausführen, oder?

FALSCH.

Wenn Sie versuchen, eine rohe SQL-Abfrage wie diese auszuführen: UPDATE wp_options SET option_value = replace(option_value, 'alt.de', 'neu.de')

…werden Sie Ihre Website beschädigen. Konkret: Sie verlieren Widgets, Theme-Optionen und die Konfiguration vieler Plugins.


#WordPress-URL in der Datenbank ändern: der sichere Weg

Der sichere Weg, die WordPress-URL in der Datenbank zu ändern, ist ein einziger WP-CLI-Befehl, ausgeführt nach einem Backup:

wp search-replace 'https://old.com' 'https://new.com' --all-tables --precise

Der Befehl aktualisiert siteurl und home in wp_options, jede URL in Inhalten und Metadaten und behandelt serialisierte Daten korrekt. Wenn Sie keinen Shell-Zugang haben, gilt diese Reihenfolge: zuerst ein Plugin, das Serialisierung versteht (Better Search Replace), danach phpMyAdmin, aber ausschließlich für die beiden Zeilen siteurl und home in wp_options, und niemals ein rohes SQL REPLACE() über alle Tabellen. Der Rest dieses Leitfadens erklärt, warum die letzte Methode Websites beschädigt, und führt Sie Schritt für Schritt durch jede Alternative.


#Der häufige Fehler: Einfaches “Suchen & Ersetzen”

Viele Entwickler (und sogar einige Hosting-Anbieter) schlagen vor, eine einfache SQL REPLACE()-Funktion zu verwenden, um URLs zu aktualisieren. Dieser Ansatz scheint logisch, ist aber im WordPress-Ökosystem grundlegend fehlerhaft.

Die Versuchung:

-- Das sieht sicher aus, ist es aber NICHT
UPDATE wp_options 
SET option_value = REPLACE(option_value, 'https://alt.de', 'https://neu.de');

Was passiert:

  • Einige URLs werden korrekt aktualisiert (z. B. im Beitragsinhalt).
  • Serialisierte Daten werden beschädigt.
  • Widgets verschwinden.
  • Theme-Optionen werden zurückgesetzt.
  • Plugin-Einstellungen gehen verloren.
  • Die Website wird teilweise unbrauchbar.

Warum es scheitert: WordPress speichert nicht alle Daten als reinen Text. Vieles davon wird als serialisierte PHP-Daten gespeichert, was eine spezielle Behandlung erfordert.


#Serialisierung verstehen: Das Kernproblem

#Was ist Serialisierung?

WordPress speichert komplexe Datenstrukturen (Arrays, Objekte) in der Datenbank als Serialisierte Strings. Die Serialisierung wandelt PHP-Datenstrukturen in eine Zeichenkette um, die in der Datenbank gespeichert werden kann.

Beispiel für serialisierte Daten:

// Originales PHP-Array
array(
    'home' => 'https://alt.de',
    'siteurl' => 'https://alt.de',
    'admin_email' => '[email protected]'
)

// Serialisierter String (in der DB gespeichert)
a:3:{s:4:"home";s:14:"https://alt.de";s:7:"siteurl";s:14:"https://alt.de";s:11:"admin_email";s:13:"[email protected]";}

#Den serialisierten String aufschlüsseln

Lassen Sie uns s:14:"https://alt.de" entschlüsseln:

  • s = String (Zeichenkette)
  • 14 = Länge des Strings (Anzahl der Zeichen)
  • "https://alt.de" = der Wert

Der kritische Teil: Die Zahl 14 repräsentiert die exakte Zeichenanzahl des Strings "https://alt.de".

#Was passiert beim einfachen Ersetzen?

Original:

s:14:"https://alt.de"

Nach einfachem SQL-Replace (alt.de -> neue-domain.de):

Das Problem:

  • Die Stringlänge hat sich von 14 auf 22 Zeichen geändert.
  • Die Serialisierung sagt immer noch s:14 (erwartet 14 Zeichen).
  • PHP versucht, 14 Zeichen zu lesen: "https://neue-dom"
  • Das Ende fehlt.
  • Das gesamte Array wird ungültig.
  • Die Daten sind korrupt.

Ergebnis: WordPress kann die Einstellungen oder Widgets nicht lesen, also werden sie ignoriert oder zurückgesetzt.


#Wo befinden sich serialisierte Daten?

#Häufige Orte

1. wp_options Tabelle:

  • siteurl und home.
  • Widget-Daten (sidebars_widgets).
  • Theme-Modifikationen (theme_mods_*).
  • Plugin-Optionen.

2. wp_postmeta Tabelle:

  • Benutzerdefinierte Felder (Custom Fields).
  • ACF-Daten.
  • Anhang-Metadaten.

#Die Lösung: Serialisierungs-bewusste Tools

Sie benötigen ein Tool, das:

  1. Daten entserialisiert (String zurück in PHP-Array wandelt).
  2. Text innerhalb der Datenstruktur ersetzt.
  3. Zeichenanzahl neu berechnet.
  4. Daten neu serialisiert.
  5. Die Datenbank aktualisiert.

#Methode 1: WP-CLI (Empfohlen)

Der professionelle Weg: Wenn Sie SSH-Zugang haben, ist WP-CLI das beste Werkzeug.

Grundlegende Nutzung:

wp search-replace 'https://alt.de' 'https://neu.de' --all-tables

Erweiterte Optionen:

## Dry run (Vorschau ohne Änderungen)
wp search-replace 'https://alt.de' 'https://neu.de' --all-tables --dry-run

#Methode 2: Better Search Replace Plugin

Für Nicht-CLI-Nutzer: Wenn Sie keinen SSH-Zugang haben, nutzen Sie das Plugin Better Search Replace.

Anleitung:

  1. Installieren Sie das Plugin.
  2. Gehen Sie zu Werkzeuge > Better Search Replace.
  3. Geben Sie die alte und neue URL ein.
  4. Wählen Sie die Tabellen aus.
  5. Wichtig: Haken Sie zuerst “Run as dry run?” an.
  6. Klicken Sie auf “Run Search/Replace”.

#Zusammenfassung

Im Jahr 2026 ist der korrekte Umgang mit serialisierten Daten keine Option, sondern Pflicht bei der WordPress-Migration.

  • Verwenden Sie niemals einfaches SQL REPLACE.
  • Bearbeiten Sie niemals Datenbank-Dumps mit einem Texteditor.
  • Verwenden Sie immer WP-CLI oder Tools wie Better Search Replace.

Dies stellt sicher, dass Ihre Widgets und komplexen Einstellungen den Domainumzug überleben.

Mehr über unsere WordPress-Migrationen zu Astro und Next.js.

Nächster Schritt

Machen Sie aus dem Artikel eine echte Umsetzung

Dieser Block stärkt die interne Verlinkung und führt Nutzer gezielt zum nächsten sinnvollen Schritt im Service- und Content-System.

Soll das Thema auf Ihrer Website umgesetzt werden?

Wenn Sie aus dem Artikel konkrete Maßnahmen für Website, Relaunch oder Weiterentwicklung ableiten wollen, definiere ich den Scope und setze ihn um.

Relevanter Cluster

Weitere WordPress-Dienste und Wissensbasis entdecken

Stärken Sie Ihr Unternehmen mit professionellem technischen Support in den Kernbereichen des WordPress-Ökosystems.

Warum kann ich URLs nicht einfach mit SQL REPLACE() aktualisieren?#
Ein einfaches SQL REPLACE() zerstört serialisierte Daten, weil es die in der Serialisierung gespeicherte Zeichenanzahl nicht anpasst. WordPress legt komplexe Daten wie Arrays und Objekte als serialisierte Strings mit Längenpräfix ab. Ändert sich die URL-Länge, liest PHP die falsche Anzahl Zeichen und die gesamte Datenstruktur wird beschädigt.
Was sind serialisierte Daten in WordPress?#
Serialisierte Daten sind PHPs Weg, Arrays und Objekte in Strings umzuwandeln, die sich in einer Datenbank speichern lassen. WordPress nutzt das ausgiebig für Widget-Daten, Theme-Optionen, Plugin-Einstellungen und Post-Metadaten. Das Format enthält Typkennzeichen und Längenpräfixe (etwa s:17:string), die korrekt bleiben müssen, damit die Daten lesbar sind.
Welche Methode eignet sich am besten für große WordPress-Websites?#
WP-CLI ist für große Websites die beste Methode: schnell, korrekt im Umgang mit Serialisierung, batchfähig und ohne die Timeout-Probleme webbasierter Plugins. Bei einer Datenbank ab 1 GB ist WP-CLI in Minuten fertig, während Plugins abbrechen oder in ein Timeout laufen.
Was tun, wenn nach der Migration Widgets verschwinden?#
Verschwundene Widgets bedeuten beschädigte serialisierte Daten. Spielen Sie sofort Ihr Backup mit wp db import backup.sql zurück. Führen Sie die Migration dann erneut mit einem serialisierungsfähigen Werkzeug wie WP-CLI oder Better Search Replace durch. Versuchen Sie niemals, serialisierte Daten von Hand zu reparieren.
Muss ich URLs auch beim Wechsel von HTTP zu HTTPS aktualisieren?#
Ja. Aktualisieren Sie alle URLs in der Datenbank von HTTP auf HTTPS, um Mixed-Content-Warnungen zu vermeiden und alle Ressourcen sicher zu laden. Verwenden Sie dieselben Search-Replace-Methoden aus diesem Leitfaden und ersetzen Sie http:// durch https:// in allen Tabellen.
Wie gehe ich mit mehreren Domainwechseln um (Staging, Dev, Produktion)?#
Führen Sie bei Mehr-Umgebungs-Setups für jeden Übergang ein eigenes Search-Replace aus. Nutzen Sie immer zuerst einen Dry-Run zur Vorschau. Umgebungsspezifische wp-config.php-Konfigurationen mit WP_HOME und WP_SITEURL erleichtern künftige Migrationen.

Sie brauchen ein FAQ für Branche und Zielmarkt? Wir erstellen eine Version passend zu Ihren Business-Zielen.

Kontakt aufnehmen

Ähnliche Artikel

WordPress Hosting Benchmarks 2026

Kevin Ohashis Review-Signal-Tests sind 2026 nach drei Jahren Pause zurückgekehrt, getragen von einer brandneuen Open-Source-Lasttest-Plattform. Wir zerlegen die fünf Preisstufen plus WooCommerce, benennen die Sieger, benennen die Hoster, die nicht angetreten sind, und übersetzen die Daten für europäische Agenturen.