Besucherfreundliche und vor allem Suchmaschinenfreundliche URLs sind wichtig, zum einen um den Besucher nicht mit komischen Zeichenketten wieder zu verjagen und andererseits um seinen PageRank bei Suchmaschinen wie Google, Bing, Yahoo und Co zu verbessern.
Was aber tun, wenn schon viele Einträge vorhanden sind und diese bereits im Index der Suchmaschinen gelandet sind? Vielleicht hat man bereits einen guten PageRank oder will seinen derzeitigen nicht verlieren. Das Problem ist, das nicht sofort alle Seiten neu von den Suchmaschinen durchsucht werden, und somit veraltete Links in den Suchergebnissen stehen. Das wird von allen Suchmaschinen sofort bestraft und der Besuchertraffic geht flöten.
Mit diesem Problem hab ich mich heute auseinandergesetzt. Zum einen möchte ich meine URLs verändern, zum anderen meinen derzeitigen PageRank nicht verlieren. Die Permalinks in WordPress zu ändern ist einfach: Im Adminbereich unter Einstellungen – Permalinks einfach gewünschte Variante auswählen.
Was sind gute URLs?
Meine derzeitige URL Struktur ist die Standard Einstellung von WordPress gewesen. Das ganze sieht dann so aus:
http://www.gironimo.org/2010/10/blog-eintrag/
Das Datum anzugeben, könnte vor allem Besucher abschrecken und meinen lassen das der Artikel völlig veraltet ist und deswegen erst gar nicht angeklickt werden muss. Wichtiger ist doch viel mehr unter welche Kategorie der Eintrag erschienen ist. Der Besucher erkennt sofort womit der Blog post zu tun hat.
Der zweite und aus der SEO Sicht wichtigere Punkt: Dynamische Seiten werden schlechter in den Index aufgenommen als Statische Seiten. Aus diesem Grund hab ich mich dafür entschieden, hinter dem jeweiligen Eintrag in der URL, .html anzuhängen.
Meine Struktur ist demnach nun
http://www.gironimo.org/kategorie/blog-eintrag.html
Wie gesagt das zu ändern ist einfach, aber was mache ich damit von den alten URLs direkt auf die neuen weitergeleitet wird.
Permalink Redirect
Man könnte mit Regulären Ausdrücken arbeiten und diese in die .htaccess schreiben, was aber viel Arbeit ist und bei über 80 Artikeln mir zu umständlich war.
Aber dann fand ich das sehr hilfreiche Permalinks Migration Plugin for wordpress, das einem die ganze Arbeit abnimmt. Die Konfiguration ist simpel und funktioniert unter der neuesten WordPress Version 3.0.1 anstandslos. Allerdings mit einer kleinen Ausnahme. Im Sourcecode des Plugins findet sich ein kleiner, gemeiner Fehler, der eventuell 404 Fehler Seiten zur Folge hat. Durch die Freiheit von Open-Source soll uns das aber egal sein, und wir fixen das eben selbst
Öffnet die PHP Datei mit einem Texteditor und sucht die Funktion
dean_pm_post_rewrite_rules($rules)
ändert diese wie folgt ab.
function dean_pm_post_rewrite_rules($rules)
{
global $wp_rewrite;
global $dean_pm_config;
$oldstruct = $dean_pm_config['oldstructure'];
if ($oldstruct != NULL && $oldstruct != $wp_rewrite->permalink_structure)
{
$dean_pm_config['rewrite'] = $wp_rewrite->generate_rewrite_rules($oldstruct, false, false, false, true);
update_option("dean_pm_options",$dean_pm_config);
if ($dean_pm_config ['highpriority'] == true)
{
return array_merge($dean_pm_config['rewrite'],$rules);
}
else
{
return array_merge($rules, $dean_pm_config['rewrite']);
}
}
return $rules;
}
Es hat sich nicht viel am Code geändert, genauer gesagt wurde an ein Wort nur ein Buchstabe angehängt. Der Fehler liegt hier:
$wp_rewrite->generate_rewrite_rule($oldstruct, false, false, false, true);
Allerdings fehlt nach dem rule ein s. Also einfach das Plural bilden
$wp_rewrite->generate_rewrite_rules($oldstruct, false, false, false, true);
Nach der Änderung das Plugin aktivieren und in den Einstellungen des Plugins die derzeitige Permalink Struktur angeben. Nachdem das Plugin nun weiß wie die derzeitige Struktur der Permalinks ist, kann es ganz einfach Redirects anlegen und uns somit viel Arbeit abnehmen. Nun einfach ohne Bedenken in den Permalinks Einstellungen von WordPress die neue Struktur einstellen und glücklich sein.

Gute Idee! Das habe ich gleich mal bei mir übernommen!
Meine alten urls haben hinten ein .php . Wie kann ich denn die Permalinks bei WordPress so ändern das ich die alten Urls übernehmen kann, also http://www.meinedomain.de/artikel.php .
Im WordPress Backend unter Einstellungen – Permalinks folgendes eintippen:
/%postname%.phpZur Erklärung: nach dem Slash (/) wird der Artikelname als Permalink angegeben und dieser mit einem .php abgeschlossen. Allerdings werden so nur Blog Einträge, mit der Endung .php ausgegeben. Wie die statische Seiten ebenfalls auf diese Weise geändert werden können, kann ich dir leider nicht sagen. Unter http://codex.wordpress.org/Using_Permalinks findest du weitere Informationen zu diesem Thema.