WordPress auf eine neue Domain umziehen

umzug.jpgJeder der diesen Beitrag nicht über den Feedreader sondern im Blog liest, wird feststellen, dass wir umgezogen sind – ich und der Blog. Die alte Subdomain blog.helmschrott.de leitet nun automatisch um auf helmschrott.de/blog.

Die Gründe für diesen Umzug sind schnell erklärt: Ich plane die Website in Zukunft etwas um den Blog herum auszubauen und habe gerne alles kompakt integriert. Der Blog wird dann nur ein Teil der Website sein. Damit das (egal mit welcher Software) ohne große Umstände möglich ist, will ich alles auf einem Host (also der selben Domain/Subdomain) laufen haben.

Um dem ein oder anderen behilflich zu sein, der in Zukunft irgendwann mal seinen WordPress-Blog umziehen will, halte ich hier mal die Schritte fest, die ich durchgeführt habe und die bei vermutlich jedem anderen Umzug nahezu identisch sein werden. Gut möglich, dass es für den ein oder anderen Schritt ein Plugin gibt. Ich habe das nicht geprüft. Wenn ihr diesbzgl. was wisst, gebt einfach in den Kommentaren bescheid, dann ergänze ich den Beitrag entsprechend.Damit der Umzug reibungslos funktioniert spielen mehrere Komponenten eine Rolle. Eine der wichtigsten ist dabei die Software – in diesem Fall WordPress – entsprechend auf die neuen gegebenheiten einzustellen. Im Falle von WordPress ist das leider schwieriger als bei anderen Systemen, da WordPress z.B. den Permalink zu einem Beitrag inklusive der kompletten URL in der Datenbank ablegt. Neben den Permalinks wird auch in den Optionen von WordPress zweimal die URL abgelegt. Diese beiden Änderungen lassen sich mit entsprechendem Zugang zur Datenbank und geringfügigen Kenntnissen leicht durchführen. Aber von Anfang an…

Ich glaube eigentlich nicht, dass ich das noch sagen muss, aber… doch, vermutlich muss ich es sagen: Vor dieser ganzen Aktion sollte natürlich ein Backup von Dateien und Datenbank angefertigt werden!

Wenn also dieses Backup angefertigt ist und die Daten an ihrem neuen Bestimmungsort angekommen sind, sollten folgende Schritte durchgeführt werden:

Konfiguration anpassen

In die Konfigurationsdatei von WordPress müssen ggf. neue Datenbank-Daten eingetragen werden. Sie nennt sich wp-config.php und liegt im Hauptverzeichnis von WordPress. Weiterhin muss die in der Datenbank gespeicherte URL des Blogs auf die neue angepasst werden. Das geht am einfachsten über ein Webfrontend zur Datenbankverwaltung wie z.B. phpMyAdmin. Der passende SQL-Query hierfür wäre z.B.

UPDATE wp_options SET option_value = replace(option_value, 'http://www.alte-blog-url.de/blog', 'http://neue.blog.url') WHERE option_name = 'home' OR option_name = 'siteurl';

Damit sollte der Blog schonmal über den Browser erreichbar sein und es kann überprüft werden ob die neuen Datenbankdaten stimmen. Vermutlich wird aber noch einiges im Blog nicht funktionieren. Dazu gehören z.B. die Links zu den einzelnen Beiträgen oder die in das Blog eingebundenen Bilder, sofern diese auf die alte Blog-Adresse zeigen.

Permalinks updaten

WordPress speichert leider zu jedem Beitrag den vollständigen Permalink in der Datenbank. Warum das so ist kann ich nicht sagen, andere Systeme kommen ohne diesen Schritt aus, und leider bietet WordPress auch keine einfache Möglichkeit die URLs zu ändern, weshalb wir auch hier wieder auf einen SQL-Query zurückgreifen:

UPDATE wp_posts SET guid = replace(guid, 'http://www.alte-blog-url.de/blog','http://neue.blog.url');

Als zusätzlicher Schritt kann es nötig sein im Adminbereich von WordPress unter Einstellungen -> Permalinks einmal die dortigen Werte zu speichern. Danach sollten die Links zu den Beiträgen auf dem neuen Blog funktionieren.

Bilder und Links in Beiträgen reparieren

Wird ein Bild im Beitrag eingebunden, so passiert dies oftmals über die vollständige URL des Bildes. Selbst wenn nicht, kann es beim Wechsel des Verzeichnisses zu Problemen kommen. Auch das lässt sich über eine Datenbankabfrage recht einfach korrigieren:

UPDATE wp_posts SET post_content = replace(post_content, 'http://www.alte-blog-url.de/blog', 'http://neue.blog.url');

Damit sollten die eingebauten Links und Bilder wieder funktionieren. Je nach Situation ist für jede dieser Datenbankabfragen eine Anpassung nötig. Bitte klärt das ab bevor ihr sie durchführt und macht das am besten auch nur, wenn ihr halbwegs wisst was ihr macht.

Umleitung der Aufrufe

Um uns mit Google & Co. und natürlich auch mit unserem Stammbesuchern so gut wie möglich zu stellen, müssen wir nun noch die Aufrufe auf die alte URl möglichst sauber umleiten. Für Google ist der Idealfall ein HTTP-Redirect (Permanent – 301). Den erreichen wir über einen einfachen Eintrag in der .htaccess-Datei unter der alten URL. In meinen fall sieht das so aus:

RewriteEngine on
RewriteRule (.*) http://helmschrott.de/blog/$1 [R=301,L] 

Die Umleitung am besten direkt testen – auch mit alten Beitrags-URLs. Idealerweise sollten alle Inhalte 1:1 sauber umgeleitet werden. Durch die Umleitung sollte Google normalerweise eingehende Links zur alten URL entsprechend weiterhin für die neue URL werten. Sicher ist das jedoch nie – in Sachen Google ist das immer ein Stück weit ein Spiel mit dem Feuer. Auf jeden Fall sollte darauf geachtet werden, dass die Umleitung dauerhaft bestehen bleibt – alte Links tun dies ja in der Regel auch.

Anpassung statischer Links, Plugins und anderen Diensten

Zum Schluss müssen wir nun noch die Templates des Themes nach evtl. händisch eingetragenen Links zum Impressum, zum Feed oder zu anderen Zielen durchsuchen um diese entsprechend anpassen zu können. Außerdem muss z.b. bei Feedburner (falls vorhanden) und ggf. anderen Diensten die URL des Feeds oder der Link zum Blog entsprechend angepasst werden.

Weiterhin müssen ggf. die Optionen der diversen eingesetzten Plugins kontrolliert werden, da es auch hier welche gibt, die die URL oder das Verzeichnis auf dem Server an diversen Stellen speichern.

21 Gedanken zu „WordPress auf eine neue Domain umziehen“

  1. Sofern man die Datenbank ohnehin auf einen anderen Server hochladen muss, kann man die URL-Änderung auch machen, indem man den Inhalt in eine Textverarbeitung lädt und die URL mit „Ersetzen“ ändert. Funktioniert einwandfrei!

  2. ja, ne schöne Anleitung, allerdings würde ich es ebenso wie Ingo machen. Das ist dann halt schon etwas einfacher und vor allem schneller. – schönen Gruß – alex
    ps: steht die Küche fest? Ich hatte leider viel zu tun, aber nächstesmal vielleicht.. ;)

  3. Hmm naja schneller ist es vermutlich nur dann wenn man ohnehin den Dump runterlädt und wieder hochlädt. Bei mir hat die ganze Aktion auf dem selben Server stattgefunden, da ist so ein SQL-Query deutlich schneller als Dump ziehen, runterladen, korrigieren, hochladen, einspielen.

    Küche: Ja ist soweit alles im Griff – übernächste Woche gehts los. Hilfe brauchen wir wohl erstmal keine mehr, aber danke der Nachfrage.

  4. Vielen Dank für diese prima Anleitung. Ein Umzug steht bei mir zwar aktuell nicht an, aber beruhigend wenn man weiß es gibt eine Anleitung nach der man vorgehen kann :-) Ein toller Betrag zum Thema „weniger Stress“ :-D

  5. Hi Frank,

    da meine .cn Domain in China meistens gesperrt ist läuft unser Blog auf einem Verzeichnis meiner alten Webdesignklitsche. Die Folge daraus ist natürlich eine absolut unsexy URL, die demnächst ausgetauscht werden soll. Deshalb besten Dank für die Anleitung und den Denkanstoss das doch die Tage mal zu machen ;-)

    Cheers aus Chongqing,
    Sven

  6. Eine sehr hilfreiche Beschreibung, die aber leider nicht 1:1 umsetzen kann. Vor mir steht die Aufgabe, eine gehackte Version 2.0.5 zu retten. Durch das Hacken wurden die Seiten mit SPAM verseucht und ich glaube, es wird auch SPAM versendet.
    Deshalb dachte ich mir, unter einem anderen Pfad auf dem Server WP aktuell zu installieren und die (gesäuberten) Beiträge, Kommentare und Userdaten zu übernehmen. Aber das scheint gar nicht so einfach zu sein. Vielleicht hat ja jemand Tips für diese Aufgabenstellung?

    Danke schon mal sagt Wolfgang.

  7. Ich bin vor ner Weile auch mit meinem WordPress-Blog umgezogen, nur wollte ich gleichermaßen die Permalink-Struktur (ohne Blogid, ohne Unterverzeichnis) beim Update verändern. Das war da schon ein bisschen problematischer, da leider die ganzen Redirect Plugins nicht funktionierten und ich so manuell einen regulären Ausdruck entwickeln musste, den ich in einen RedirectMatch gepackt habe.

  8. Perfektes Timing. Musste auch einen Blog von einer Subdomain auf die Hauptdomain umziehen und musste dank deiner Anleitung nicht lange suchen.

    Hat alle super geklappt, Danke schön!

  9. Da ich nicht fließend MySQL spreche, ist mir die Anleitung leider ein Stück weit zu hoch. Vielleicht kannst du die Geschichte mit den SQL-Querys und Datenbankabfragen ja irgendwann nochmal für Dummies wie mich erklären.

  10. Hi Stefan
    An sich brauchst du einen Zugriff zu deiner MySQL-Datenbank, in der Regel läuft sowas mit phpMyAdmin, welcher dir dein Hoster zur Verfügung stellt. (Meist irgendwo im ControlPanel vom Webhoster)
    Anschliessend die Datenbank von WordPress auswählen (heisst in der Regel wordpress ;) ), und die obengenannten angepassten Ausführungsbefehle (Query) als SQL-Befehl ausführen…

    Die Sprache heisst so nebenbei SQL, da MySQL „nur“ eine implementierte Datenbank ist, welche eben diese Datenbankbefehlssprache beherscht. Daneben gibt es noch MSSQL, Oracle, Postgress, uvm…

    Eine Warnung zum Schluss: Wenn du das machen willst, zuerst ein Backup deiner Datenbank ziehen, wenn du nicht genau weisst, was du da machst. Ansonsten gibt es zig Bücher zu SQL.

  11. Toll! Das war jetzt das zweite Mal. Viel besser als irgendwelche umständlichen Plugins und irgendwelche komplizierten Beschreibungen. Mit ein klein wenig Vorbereitung dauert der Ausfall zwischen alter und neuer Domain keine halbe Minute, zackzack und schon fertig. Dankeschön!

  12. So, sicher ist sicher, ich habe mir diese Seite erst einmal in meinen Favoriten abgespeichert. Vielen Dank für die detailgenaue Beschreibung.

    Auch wenn ich ein paar Monate hinter der Zeit dieses Posts bin, eine Frage habe ich: Mit welchem Plugin erzeugt Dein WP so hervorragende URL´s?

    @Hippie
    In Deinem Eigenen Blog hast Du aber ganz schön über die WordPress-Konfiguration geflucht.

Kommentar verfassen