permalinks ändern
-
Hallo zusammen,
Die verlinkte Website ist von meinem Host auf einen Anbieter umgezogen. Das hat alles soweit geklappt.
Und jetzt meine Frage zum allgemeinen Verständnis:
Die permalinks stehen auf [b]Einfach[/b] und ich würde sie jetzt gern auf [b]Beitragsname[/b] umstellen. Das dürfte viele interne Verlinkungen schreddern, denke ich.
Ich nehme nicht an, dass man das mit Better Search Replace fixen kann.
Gibt es da eine Lösung?
Die Seite, für die ich Hilfe brauche: [Anmelden, um den Link zu sehen]
-
Hallo,
Sicherung vorher ist nicht verkehrt.
Grundsätzlich sollte das überhaupt kein Problem sein (ich habe das gerade auch noch mal sicherheitshalber auf einer lokalen Entwicklungsumgebung getestet). Da muss man keine weiteren Einstellungen mehr vornehmen bzw. zusätzliche Plugins verwenden.Nachtrag: Bezogen auf SEO könnte das allerdings ein Nachteil sein, wenn du eine Umstellung vornimmst. Die Permalinks auf „Beitragsname“ umzustellen, ist aber sicher grundsätzlich vernünftig.
Viele Grüße
Hans-Gerd- Diese Antwort wurde geändert vor 1 Jahr, 11 Monaten von Hans-Gerd Gerhards.
Und noch ein Nachtrag:
Wenn die Permalinks schon vor der Migration auf „Beitragsname“ eingestellt waren, dann ist auch das (SEO) kein Problem.- Diese Antwort wurde geändert vor 1 Jahr, 11 Monaten von Hans-Gerd Gerhards. Grund: Korrektur Erläuterung
Was sind Permalinks und was sind vor allem Pretty Permalinks?
Wenn du mit einem Content Management System arbeitest, werden die von dir erstellen Beiträge und Seiten in der Datenbank gespeichert. Bei Aufruf einer URL wird der Eintrag aus der Datenbank abgerufen und mit Hilfe des Themes zu einer hübschen Webseite zusammengesetzt (gerendert), wobei sich „hübsch“ darauf bezieht, dass nicht nur ein Datenbankeintrag ausgegeben wird.
Damit Besucher für die Webseiten ein Lesezeichen (Bookmark) setzen und die Seite Freunden weiterempfehlen können, muss der Abruf über eine permanente Verbindung erfolgen, was als Perma(nent)Link, also Permalink, bezeichnet wird. Dabei wird die Datenbank-ID des Beitrags oder der Seite als GET-Parameter der URL angehängt, z.B.
https://example.com/?p=42
für den Beitrag („post“) mit der ID 42.Leider sind Menschen furchtbar schlecht darin sich solche IDs zu merken und viel hübscher ist es, dem Beitrag einen Titel zu geben und – in Kleinbuchstaben und mit Bindestrichen aneinandergereiht – der URL anzuhängen:
https://example.com/ueber-mich
. Hübsch heißt auf Englisch Pretty und spätestend jetzt (wahrscheinlich schon vorher) weißt du, wieso wir von Pretty Permalinks sprechen.Wieso wird das dann nicht gleich so eingestellt?
Während die Übermittlung von GET-Parametern zum Standard eines Apache2-Webservers gehört, brauchst du für die Weiterleitung (englisch Rewrite) einer URL mit einem Slug (den Kleinbuchstaben mit Bindestrich) ein zusätzliches Server-Modul
mod_rewrite
, das nicht automatisch bei der Installation von Apache2 eingerichtet wird. Damit WordPress wirklich auf allen Webservern läuft, wird die einfachere Variante mit dem GET-Parameter verwendet – die läuft überall.OK, jetzt will ich aber umstellen. Was passiert mit den Links?
Erst einmal musst du sicherstellen, dass
mod_rewrite
auf deinem Server funktioniert. Das lässt sich prüfen, indem du in Einstellungen > Permalinks die URL-Struktur von „einfach“ auf z.B. „Beitragsname“ änderst. Mit dieser Änderung erfolgen zwei Dinge gleichzeitig:Erstens wird eine Serverkonfigurationsdatei
.htaccess
angelegt, in der die nötigen Weiterleitungsregeln eingetragen werden. Die besagen sinngemäß „wenn du zu einer URL keine Datei oder Verzeichnis findest, öffne dieindex.php
und gib die URL weiter. WordPress ordnet dann den Slug intern zu, damit die gewünschten Seiten aufgerufen werden können.Zweitens wird das Navigationsmenü, das du vielleicht schon angelegt hast, so geändert, dass die Links zu Seiten und Beiträgen einen Slug statt des GET-Parameters enthalten. Nur bei „individuellen Links“ wird der GET-Parameter beibehalten. Schlimm? Iwo, weil der GET-Parameter, wie wir gelernt haben, immer funktioniert. Das gilt auch bei interner Verlinkung, die leider nicht automatisch angepasst wird: der Link funktioniert weiterhin, sieht nur nicht so „pretty“ aus.
Ja und muss ich jetzt was bezüglich SEO beachten?
Wenn du von „einfach“ zu „Beitragsname“ wechselst, nicht, weil die URLs mit dem GET-Parameter weiter funktionieren. Umgekehrt wäre blöd, z.B. wenn du aus Kostengründen auf einen sehr einfachen Server wechseln müsstest, der
mod_rewrite
nicht implementiert hat (Frage an die Redaktion: gibt es sowas überhaupt noch?). Dann würden nämlich die Slugs nicht in eine Weiterleitung aufgelöst und Suchmaschinen würden für all die schönen Seiten und Beiträge nur ein „404 – File not found“ notieren.Bist du dir da ganz sicher, dass das mit dem GET-Parameter immer klappt?
Ja und dazu gibt es einen kleinen Test, den du bei deiner Website machen kannst: Du erstellst einen Beitrag und verwendest darin den Begriff „Hommingberger Gepardenforelle„. Anschließend rufst du die URL deiner Startseite mit dem GET-Parameter
?s=Hommingberger%20Gepardenforelle
auf (sinngemäß sowas wiehttps://example.com?s=Hommingberger%20Gepardenforelle
Wetten, dass du als Suchergebnis einen Link zum gerade erstellten Beitrag angezeigt bekommst? qed.Aber, aber … Better Search & Replace?
… kannst du gerne für einzelne Links verwenden, wenn du z.B. auf 42 Seiten den Link
https://example.com
/?p=42 verwendet hast und mithttps://example.com/impressum
ersetzen möchtest.Keine Ahnung, ob es ein Plugin gibt, dass die GET-Parameter mit dem Slug ersetzt. Das wäre aber wie gesagt sowieso nur etwas „für die Optik“, damit die URL der Links, die in der Statuszeile des Browsers ausgegeben wird, hübscher aussieht.
Vielen Dank für die Antworten und die ausführliche Erklärung. Ich habe die verlinkte Seite mal kurz umgestellt.
Das hat soweit funktioniert, bis auf die Einträge im Blog. Die wurden nicht angezeigt. Also wieder auf Einfach gestellt. Da die Seite ja produktiv ist, werd ich auch nicht mehr weiter dran rumfummeln. 😉
Auf dem Apachen, den ich betreibe (v 2.4.55) gibt es noch einen mod_rewrite.
- Diese Antwort wurde geändert vor 1 Jahr, 11 Monaten von draal.
Wenn Pretty Permalinks für Seiten funktionieren, sollten sie genauso für Blogbeiträge verwendbar sein.
Mitunter gibt es Probleme, dass bestimmte Inhalte nicht angezeigt werden. Das liegt in den meisten Fällen daran, dass ein Plugin eine eigene Inhaltsart einrichtet, teilweise einfach um bestimmte Informationen zu speichern. Viele Entwickler vergessen, dass mit Einrichtung eines Custom Post Type auch die Permalink-Einstellungen geleert („flushed“) werden müssen. In den meisten Fällen reicht dann zum erneuten Einlesen der Permalink-Einstellungen das Menü Einstellungen > Permalinks aufzurufen. Du brauchst dabei nicht einmal Änderungen vornehmen.
Websites, die keine Pretty Permalinks verwenden, haben bei der Suchmaschinenoptimierung bereits einen Nachteil. Du solltest also nochmal schauen, ob du das nicht doch noch irgendwie hinbekommst.
- Das Thema „permalinks ändern“ ist für neue Antworten geschlossen.