Um die URL einer WordPress-Website zu ändern – beispielsweise wenn eine ganz andere Domain genutzt oder auch nur das Protokoll von http://
auf https://
umgestellt werden soll – gibt es mehrere Lösungen. Zwei davon stelle ich hier vor.
Wichtige Infos, bevor ihr beginnt
- Die neue Domain sollte bereits auf den Ordner der Installation zeigen, damit ihr sie nach der Änderung direkt unter der neuen Adresse erreichen könnt – andernfalls könnt ihr die Website nach der Änderung nicht mehr aufrufen (außer, ihr ändert nur das Protokoll – dann erhaltet ihr ohne gültiges SSL-Zertifikat aber eine Warnung vom Browser).
- Erstellt am besten vorher ein Backup, nur zur Sicherheit.
- Ändert in der Datenbank nicht den Wert der
guid
-Spalte (dadurch würden für Feedreader alle eure alten Artikel wieder als neu gekennzeichnet).
URL mit einem Plugin anpassen
Es gibt verschiedene Plugins, die euch die Änderung der URL in der Datenbank erlauben. Ich nutze hierfür gerne Better Search Replace. Nachdem ihr das Plugin installiert habt, findet ihr unter dem Punkt Werkzeuge den neuen Menüpunkt Better Search Replace. Hier könnt ihr jetzt eingeben, nach welchem String gesucht und womit dieser ersetzt werden soll – im folgenden Screenshot ist das beispielhaft einmal für den Wechsel meiner .de-Domain auf die .com-Domain gemacht.
Unter dem Punkt Tabellen auswählen könnt ihr die Tabellen angeben, in denen die Domain ersetzt werden soll – im Regelfall sollten hier alle ausgewählt werden. Standardmäßig ist der Haken bei Testlauf? gesetzt, wodurch nicht direkt etwas ersetzt sondern nur angezeigt wird, wie viele Vorkommen ersetzt werden würden. Wenn das Ergebnis des Testlaufs sinnvoll aussieht, entfernt den Haken und startet das Suchen und Ersetzen ein weiteres Mal.
Danach solltet ihr mit der Anpassung der Domain fertig sein.
URL mit dem WP-CLI ändern
Wenn ihr das WP-CLI auf eurem Server installiert habt, könnt ihr auf ein Extra-Plugin verzichten und den wp search-replace
-Befehl nutzen. Wenn ihr euch in der Shell im Verzeichnis der Installation befindet, kann das beispielsweise so aussehen:
Code-Sprache: Bash (bash)wp search-replace https://florianbrinkmann.de https://florianbrinkmann.com --skip-columns=guid
Um vorher einen Testlauf zu machen, könnt ihr den Aufruf um die --dry-run
-Option erweitern:
Code-Sprache: Bash (bash)wp search-replace https://florianbrinkmann.de https://florianbrinkmann.com --skip-columns=guid --dry-run
Und wenn ihr alle Tabellen einer Multisite behandeln möchtet, gibt es die --network
-Option:
Code-Sprache: Bash (bash)wp search-replace https://florianbrinkmann.de https://florianbrinkmann.com --skip-columns=guid --network
Wenn ihr die Domain versehentlich falsch geändert habt
Wenn ihr beim Ändern der Domain einen Fehler gemacht habt, kommt ihr wahrscheinlich nicht mehr ins Backend um ihn zu korrigieren. In diesem Fall braucht ihr einen SFTP-Zugang und könnt mit den folgenden zwei Zeilen in der wp-config.php
wieder die alte Domain als Site-Adresse einstellen:
define( 'WP_HOME', 'https://florianbrinkmann.de' );
define( 'WP_SITEURL', 'https://florianbrinkmann.de' );
Code-Sprache: PHP (php)
Das ist auch über das WP-CLI möglich – hier könnt ihr entweder direkt die Option in den Einstellungen ändern:
Code-Sprache: Bash (bash)wp option update home https://florianbrinkmann.de wp option update siteurl https://florianbrinkmann.de
Oder die Konstante in der wp-config.php
(--type=constant
sorgt dafür, dass der Eintrag hinzugefügt wird, wenn er noch nicht vorhanden ist):
wp config set WP_HOME https://florianbrinkmann.de --type=constant
wp config set WP_SITEURL https://florianbrinkmann.de --type=constant
Code-Sprache: Bash (bash)
Danach solltet ihr wieder ins Backend kommen und könnt den Fehler korrigieren. Ihr seht: theoretisch könnte auch über diese Wege die Domain geändert werden, ebenso über Einstellungen › Allgemein. In diesen Fällen werden aber nicht die Werte (beziehungsweise beim Ändern in den Einstellungen oder mit wp option update
nicht alle Vorkommen) in der Datenbank geändert. Die sauberste Lösung ist meiner Meinung nach daher die Nutzung eines Plugins oder des wp search-replace
-Kommandos vom WP-CLI.
Super Erklärung, danke dafür! 🙂
Hallo 🙂
Also der untere Teil war mir bekannt, allerdings stellt sich für mich noch die Frage, ob es nicht ausreichend ist nur den unteren Teil zu machen. Bisher habe ich mich kaum mit der CLI auseinandergesetzt. Das wird sich ändern - Für mich war es bisher immer ärgerlich, so eine Umstellung, weil man im Bereich Google SEO nahezu wieder von Vorne anfangen durfte. Vielen Dank, mit dem Better Search and Replace Plugin, spare ich mir künftig wohl viel Arbeit 🙂
Gruß
Björn
Hi Björn,
wie geschrieben, theoretisch würde auch die Änderung in der
wp-config.php
oder die Änderung der Einstellung ausreichen, mir kommt die Anpassung der Datenbank aber wie die bessere Lösung vor 🙂Zu dem Ranking: ist ja kein großes Problem, wenn man Weiterleitungen einrichtet und bei Google eine Adressänderung meldet 🙂
LG
Florian
Hi Florian,
Was mache ich denn, wenn auch das Better Search Replace-Tool keine Abhilfe schafft?
Unter der URL wird http://www.xn--rebstckchen-vfb.de angegeben, wir hätten aber gerne die Adresse http://www.rebstöckchen.de. Immer wenn ich das abändere, kommt man nicht mehr auf die Webseite. Und dieser Link "http://www.xn--rebstckchen-vfb.de" wird auch nur mobil angezeigt, hier am PC ist es richtig ("rebstöckchen.de").
Könntest du mir hier vllt. weiterhelfen?
(Wir benutzen Avada & soweit ich weiß die neueste WP-Version)
Grüße,
Lukas
Hi Lukas,
das liegt an dem Umlaut im Domainnamen. Wie das Browser handhaben könnt ihr nicht beeinflussen (glaube ich jedenfalls – ich kenne mich bei Umlaut-Domains nicht weiter aus) – im Firefox wird beispielsweise das mit
xn--
unten als Linkvorschau angezeigt, wenn ich mit der Maus über den Link in deinem Kommentar fahre, in der Adresszeile stimmt es dann.Mobil passt es bei mir in Chrome und Firefox auf Android auch.
Ich würde also sagen: so lassen, vermutlich ist das irgendwie die Version, damit auf jeden Fall alle Browser damit klar kommen, und die die es können stellen es korrekt als Umlaut dar.
Hoffe das hilft dir weiter.
LG
Florian
Hi Florian,
danke für deinen Artikel! Kurze Rückfrage: wenn ich in allen Tabellen nach "http://DOMAIN.tld" suche, bekomme ich 239 Ergebnisse weniger als wenn ich nach "DOMAIN.tld" suche. Können/sollen diese Einträge ohne "http://" ignoriert werden?
Danke und LG,
Emanuel
Hey Emanuel,
bekommst du diese 239 Ergebnisse eventuell, wenn du nach der https-Version der URL suchst? Ich würde – ohne jetzt genauer zu wissen, wofür diese Einträge sind – spontan sagen, dass du auch die ersetzen solltest. Aber dann auch die neue Domain ohne http/https angeben.
Viele Grüße
Florian
Hallo Florian
Dein Beitrag hat mir sehr geholfen, das Better Search Replace hat gut funktioniert.
Was noch zu ergänzen wäre: Falls Elementor eingesetzt wird, greift für diese Beiträge/Seiten das Better Search Replace nicht. Elementor hat aber ein eigenes URL ersetzen (Elementor -> Werkzeuge -> URL ersetzen) das zusätzlich verwendet werden muss.
Hallo Sven,
freut mich, dass der Beitrag hilfreich war. Danke für deine Ergänzung!
Viele Grüße
Florian