Früher oder später ist es so weit: Der Kunde wechselt den Hoster und die WordPress-Installation soll vom einen Server zum anderen umziehen. Oder eine neu entwickelte Seite liegt in einer lokalen Umgebung (localhost) und soll auf den Server hochgeladen werden.

Wer nur die Inhalte von Beiträgen und Seiten vom einem ins andere Blog transferieren möchte, kann auch mit der WordPress-internen Import/Export-Funktion sein Glück versuchen. Eine Anleitung dazu findet Ihr hier.

WordPress auf dem neuen Server installieren

Zuerst müsst Ihr Euch die Daten des neuen Servers besorgen, die Ihr für die Installation von WordPress braucht. Das ist der Name der Datenbank, der Datenbank-Nutzer, das Passwort für die Datenbank und die Host-Bezeichnung.
Dann installiert Ihr WordPress auf dem Server, auf den die Seite umziehen soll. Die Installation ist nicht schwer: WordPress in 5 Minuten installieren.

WordPress-Seite samt Datenbank umziehen

Wenn man die Seite mit allen Einstellungen bewegen möchte, reicht der Weg über den XML Export/Import nicht aus. Die Einstellungen von PlugIns oder die Theme-Options würden verloren gehen und auch die Widgets erscheinen nicht im neuen Backend. Das heißt, man muss die komplette Datenbank mit allen Inhalten sichern und in die neue WordPress-Installation wieder einlesen.

Aus dem WordPress-Backend heraus hat man keinen Zugang zur Datenbank. Dazu muss man auf eine andere Oberfläche wechseln. Normalerweise ist die Datenbank über das Kundenmenü Eures Providers erreichbar. Wenn Ihr Euch dort anmeldet, findet Ihr sehr wahrscheinlich ein Tool namens PHPMyAdmin vor. Damit kann man die Datenbanken verwalten und bearbeiten.

In PHPMyAdmin wählt Ihr die Datenbank aus, die Ihr bewegen wollt und klickt auf „exportieren“. Es erscheint meist ein Formular, in dem Ihr noch weitere Einstellungen machen könnt, beispielsweise den Datenbank-Dump komprimieren, z.B. als .zip-Datei. Diese Datei wird anschließend auf Eurem Rechner gespeichert. Nach dem Entpacken solltet Ihr eine Datei mit der Endung .sql haben. Diese Datei könnt Ihr dann in die neue Datenbank importieren. Das funktioniert ebenso über PHPMyAdmin und über den Button „importieren“. So weit die Theorie.

datenbanken

Der Teufel liegt im Detail

Wenn beide Installationen unter demselben Domainnamen laufen und Ihr in beiden Fällen dassselbe Datenbank-Prefix benutzt habt, ist es damit getan. Sind die Namen aber unterschiedlich, weil der erste Server zum Beispiel eine lokale Installation ist (localhost) und der zweite Server einen ganz normalen Domainnamen hat (beispieldomain.de), muss man diese Angaben in der sql-Datei ändern, genauso, wie Ihr das Datenbank-Prefix anpassen müsst.
Ihr könnt das in einem Texteditor machen und die URLs per Suchen & Ersetzen austauschen. Oder Ihr verwendet das Plugin Search and Replace von Frank Bültge. Damit kann man die Änderungen direkt aus dem WordPress Backend machen.
Jetzt könnt Ihr die sql-Datei in die neue Datenbank importieren. Möglicherweise müsst Ihr davor die Datenbank-Tabellen der neuen Installation leeren. Die Daten würden so oder so überschrieben.
In manchen Fällen werden nicht alle Daten transportiert. Dann fehlen beispielsweise die Widgets und ihre Inhalte. Das hat den Grund, dass WordPress diese Daten in einer speziellen Weise abspeichert, das Stichwort heißt „serialized data“. Es wird nicht nur der Inhalt, sondern auch die Länge eines Strings abgespeichert. Hat der neue Domainname eine andere Zeichenanzahl als der alte (aus beispiel.de wird neuesbeispiel.de), kommen die Daten nicht an. Otto (aka Samuel Woods) hat das in einem Thread auf stackexchange erklärt.

Es gibt spezielle PHP-Scripte (zum Beispiel das hier), die dieses Problem beheben. Wie man sie anwendet, ist im oben verlinkten Thread auf Stackexchange erklärt.

Warum kompliziert, wenn es auch einfach geht?

Jetzt mache ich mal ausnahmsweise Werbung für ein PlugIn, das man kaufen muss. Zwar gibt es eine kostenlose Version WP Migrate DB, aber die richtig schicken Funktionen bekommt man erst, wenn man 29$ in die Hand nimmt. Die 29$ ist das PlugIn WP Migrate DB Pro aber allemal wert. Es sorgt für einen reibungslosen Transfer aller Inhalte und Einstellung von einer WordPress-Installation zur anderen.

WP Migrate DB Pro macht einem das Leben denkbar einfach. Mit einem einzigen Klick werden die Daten von einer Installation zu anderen geschickt. Die Übertragung dauert nur wenige Sekunden und es kommt alles, aber auch wirklich alles an. Sogar die Anmeldedaten, also nicht wundern, wenn plötzlich das alte Passwort nicht mehr funktioniert.

Die Entwickler von delicousbrains sind übrigens sehr hilfsbereit und freundlich. Ich habe mir eine Developer-Lizenz geleistet und nutze WP Migrate DB Pro inzwischen bei allen unseren Projekten.