Inhaltsverzeichnis
WordPress auf eine neue Domain umzuziehen ist leider nicht ganz so einfach. Da ich jedoch des Öfteren danach gefragt werde, habe ich hier kleine Anleitung gemacht.
ACHTUNG: vorher unbedingt ein Backup der Datenbank und der kompletten Installation erstellen!!!
Wir ziehen WordPress von DomainA.com zu DomainB.com um! Für DomainB.com braucht es nur eine Datenbank und die DomainB.com muss im Hosting hinterlegt sein. Lade nun alle Dateien von der DomainA.com zuerst über FTP herunter und danach wieder in den Ordner der DomainB.com hoch. Wenn der Datenbankname, der benutzer der Datenbank oder das Passwort bei DomainB.com nicht gleich ist, wie bei DomainA.com dann musst du diesen vor dem Hochladen in der wp_config.php ändern:
Datenbank-Daten in der wp_config.php anpassen
1 2 3 | define( 'DB_NAME', 'db_name_ersetzen' ); define( 'DB_USER', 'db_user_ersetzen' ); define( 'DB_PASSWORD', 'dbPasswort' ); |
define( 'DB_NAME', 'db_name_ersetzen' ); define( 'DB_USER', 'db_user_ersetzen' ); define( 'DB_PASSWORD', 'dbPasswort' );
Über phpMyAdmin URL’s ändern
Wenn alle Daten geändert sind, logge dich ins phpMyAdmin ein. Das wird +/- so aussehen:
Klicke nun auf SQL und füge die unten stehenden Codezeilen ein. Kopiere jeweils den gesamten Block, ändere DomainA.com und DomainB.com auf die Domains, die du benötigst und führe den Befehl aus mit einem Klick auf OK unten rechts. Du kannst nicht alle Blöcke miteinander kopieren und ausführen. Es geht immer nur ein Block nach dem anderen.
Domain URL ändern
1 2 3 | UPDATE wp_options SET option_value = replace(option_value, 'https://domainA.com', 'https://domainB.com') WHERE option_name = 'home' OR option_name = 'siteurl'; |
UPDATE wp_options SET option_value = replace(option_value, 'https://domainA.com', 'https://domainB.com') WHERE option_name = 'home' OR option_name = 'siteurl';
Permalinks anpassen
1 2 | UPDATE wp_posts SET guid = replace(guid, 'https://domainA.com', 'https://domainB.com'); |
UPDATE wp_posts SET guid = replace(guid, 'https://domainA.com', 'https://domainB.com');
Bilder und Beiträge URL ändern
1 2 | UPDATE wp_posts SET post_content = replace(post_content, 'https://domainA.com', 'https://domainB.com'); |
UPDATE wp_posts SET post_content = replace(post_content, 'https://domainA.com', 'https://domainB.com');
Abgespeicherte Inhalte in der PostMETA ändern
1 2 | UPDATE wp_postmeta SET meta_value = replace(meta_value,'https://domainA.com', 'https://domainB.com'); |
UPDATE wp_postmeta SET meta_value = replace(meta_value,'https://domainA.com', 'https://domainB.com');
Kommentare anpassen
1 2 | UPDATE wp_comments SET comment_author = replace(comment_author, 'https://domainA.com', 'https://domainB.com'); |
UPDATE wp_comments SET comment_author = replace(comment_author, 'https://domainA.com', 'https://domainB.com');
Nun ist das Grundgerüst gelegt und wenn alles gut gelaufen ist, ist deine Webseite nun unter DomainB.com erreichbar.
In der Datenbank gibt es jedoch noch mehr Einträge, die man nach diesen einzelnen Einträgen mit einem Plugin schnell und einfach ändert. Ich nutze dazu das Plugin better search replace.
Mit better search and replace restliche Datenbankeinträge ändern
Wenn deine Webseite bereits unter domainB.com erreichbar ist, dann empfehle ich dir auf jeden Fall nochmals ein Backup der Datenbank zu erstellen, bevor du mit diesem Plugin die Suche startest. Diese Empfehlung wird dir auch nochmals beim Plugin angezeigt.
Nach der Installation findest du better search replace unter dem Menüpunkt Werkzeuge.
Trage ins erste Feld die bisherige DomainA.com ein und ins Zweite DomainB.com, wie auf dem Bild ersichtlich. Markiere nun alle Tabellen und starte den Testlauf
Das Tolle an diesem Plugin ist, dass standardmässig der Testlauf aktiviert ist. Möchtest du sofort mit der Änderung beginnen, kannst du den Haken entfernen bei „Beim Testlauf wird die Datenbank…“
Ist der Wechsel vollzogen, wird deine Webseite nur noch manuell hinzugefügte Links im Text oder allenfalls bei Buttons mit DomainA.com hinterlegt sein. Deswegen ist es wichtig, dass man interne Verlinkungen zu Seiten oder Blogbeiträgen immer über das Menü beim Hinzufügen eines Links auswählt.
Damit auch alle Links auf die neue DomainB.com zeigen von der DomainA.com (Weiterleitung 301) ist noch ein kleiner Eintrag in der .htaccess nötig. Die .htaccess findest du, wenn du dich per FTP einloggst, im Hauptverzeichnis von WordPress. Öffne diese zum Beispiel mit einem Textprogramm oder auch mit Sublime Text und ändere zuoberst den Eintrag folgendermassen:
1 2 3 4 | RewriteEngine On RewriteBase / RewriteCond %{HTTPS_HOST} !DomainA.com$ [NC] RewriteRule ^(.*)$ https://DomainB.com/$1 [L,R=301] |
RewriteEngine On RewriteBase / RewriteCond %{HTTPS_HOST} !DomainA.com$ [NC] RewriteRule ^(.*)$ https://DomainB.com/$1 [L,R=301]
Nun werden standardmässig alle Links umgeleitet auf die neue Domain. Da du einen kompletten Umzug auf DomainB.com gemacht hast und die Linkstruktur erhalten bleibt, werden nun alle Links korrekt von DomainA.com auf DomainB.com umgeleitet.
Google mitteilen, dass die Domain umgezogen ist
Als Allerletztes wäre es noch toll, wenn du Google über die Search Console mitteilst, dass die Domain umgezogen ist. Hier eine kurzknappe Anleitung:
erstelle zuerst eine neue Property für DomainB.com. Nach der Erstellung gehst du in die Property von DomainA.com, dort in die Einstellungen und unter Adressänderung kannst du die neue Property auswählen.
Natürlich macht das keinen Sinn, wenn du bisher keine Property in der Search Console angelegt hast. Aber es ist auf jeden Fall sinnvoll, diese Search Console anzulegen. Darin bekommst du noch viel mehr Informationen.
Fehlerbehebung
Wie ich eingangs geschrieben habe, ist es wichtig ein Backup zu erstellen. Sollte ein Fehler aufgetaucht sein, kannst du ihn dadurch beheben, dass du alle Daten hochlädst und die Datenbank ebenfalls mit dem Backup überschreibst.
DomainB.com falsch geschrieben
Fehler können entstehen, wenn zum Beispiel die Domain falsch geschrieben wurde. Dann bitte manuell kontrolliere, ob ein Schreibfehler vorhanden ist.
Datenbank zu gross
Evtl. ist die Datenbank zu gross gewesen und kann deswegen nicht korrekt hochgeladen werden. Dann muss man es manuell über SSH erledigen. Hier würdest du jedoch über phpMyAdmin informiert werden.
Daten fehlen nach Download von DomainA.com
Ebenfalls könnten nicht alle Daten heruntergeladen worden sein auf der DomainA.com dann hole Dir einfach die Daten nochmals runter und ebenfalls die Datenbank und beginne nochmals von Vorne.
Vor Upload Tabellen löschen und Dateien auf DomainB.com
Lösche die Datenbanktabellen der DomainB.com über phpMyAdmin und ebenfalls die Dateien in dem Ordner per FTP bevor du mit dem erneuten Upload beginnst.
Hilfe von mir direkt!
Solltest du damit überfordert sein, schreib mich einfach über den Chat auf meiner Webseite an. Ich helfe dir gerne.!