SEO Optimierung in WordPress

Bereinigung des Spaghetti-Codes

Der sogenannte Spaghetti-Code bezieht sich auf offene style Formatierungen als Attribute im Quellcode. Einige Suchmaschinen interpretieren einen so aufgeschwämmten Code negativ, weshalb es ratsam ist alle CSS Formatierungen in Klassen zu definieren.

Leider ist dies in einigen Bereichen bei WordPress nicht so einfach und man kommt nicht umher den HTML Code der Beiträge manuell nachzuarbeiten, wenn man z.B. Einrückungen ausgleichen will. Welche stellen solchen Code enthalten findet man leicht heraus, wenn man sich den Quelltext im Browser ausgeben lässt und nach style= sucht. Anschließend kann man diese Teile entweder im eigenen Theme oder im Inhalt nacharbeiten.

Schwieriger wird es bei Widget oder Plugins. Als Beispiel gebe ich hier das Plugin Configurable Tag Cloud an, welches auf dieser Seite selbst Verwendung findet. Hier wird die Größe des Tag-Links in Abhängigkeit zur Häufigkeit des Auftretens berechnet und normalerweise direkt in einem style ausgegeben. Dies kann man leider nur umgehen, wenn man das Plugin ein wenig umschreibt.
In der Plugin-Datei configurable-tag-cloud-widget/base.php werden ab Zeile 270 die Werte berechnet und anschließend der Link ausgegeben. Folgende Änderung habe ich eingefügt:

$tag_size = round(100*($tag_weight));
if ($format=='list') {
$a[] = "<li class=\"ctc-tag-li\"><a href=\"$tag_link\" class=\"ctc-tag tag-link-$tag_id ctc-size-$tag_size\" title=\"".$tag."\"$rel>$tag</a>".('yes' == $showcount ? " $postcount" : "")."</li>"; }
elseif ($format=='drop') { $a[] = "<option value='$tag_link'>$tag".('yes' == $showcount ? " $postcount" : "")."</option>"; }
else { $a[] = "<a href=\"$tag_link\" class=\"ctc-tag tag-link-$tag_id ctc-size-$tag_size\" title=\"".$tag."\"$rel>$tag"."</a>".('yes' == $showcount ? " $postcount" : "");
}

Ich benutze den Wert $tag_weight, welcher die Schriftgröße in der Einheit em enthält und wandle diese in eine ganze Zahl um. Diese wiederum wird an einen CSS Klassennamen angehängt. Anschließend benötige ich nur noch eine Reihe von CSS Klassen mit den entsprechenden Schriftgrößen.

Eindeutige Verlinkungen und Links mit Title Attribute

Für die Suchmaschinen Optimierung ist auch die Verlinkung auf externe oder interne Seite wichtig. Um Verlinkungen unterscheiden zu können ist es grundsätzlich von Vorteil, wenn die Linktexte eindeutig sind. Zudem sollte jede Verlinkung ein Title Attribut erhalten. Für die Artikel in WordPress kann dies über den Editor geschehen. Sollte es ein externer Link sein, kann hier auch noch ein rel=nofollow angegeben werden, um das Page Rank nicht auf die externe Seite auszudehnen.

Im Theme selbst lassen sich durch die Verwendung von <?php the_title(); ?> einfach viele Title Attribute und Linktexte Beitragsbezogen setzen. Bei automatisch generierten Links, welche nicht von Haus aus diese Attribute erhalten, kann man in der functions.php des Themes nachhelfen.

More-Link mit Title Attribute

Um z.B. den More-Link abzuändern, um ein Title-Attribute anzuhängen, bietet sich folgendes Schnipsel für die functions.php an:

function my_more_link($more_link, $more_link_text) {
$offset = strpos($more_link, " href");
if($offset)
$more_link = str_replace(" href", " title=\"" . $more_link_text . "\" href", $more_link);
return $more_link;
}
add_filter('the_content_more_link', 'my_more_link', 2, 2);

Hier wird ein Filter eingesetzt und über ein Replace-Befehl der Link-Text in das Title Attribute eingesetzt. Um den Link für SEO auch noch eindeutig zu halten sollte im Theme der More-Link noch den Titel des Beitrags als Eindeutigkeit erhalten:

<?php the_content("Beitrag: " . the_title('','',false) . " weiterlesen...", 0); ?>

Title Attribute im Meta Widget

Den Effekt mit dem Filter für ein Title Attribut lässt sich auf die Registrierungs und Anmelde Buttons im Meta-Widget ausweiten. Folgende Schnipsel können dazu verwendet werden:

function my_loginout_link($link) {
$offset = strpos($link, " href");
if($offset)
$link = str_replace(" href", " title=\"An-/Abmelden\" href", $link);
return $link;
}
add_filter('loginout', 'my_loginout_link', 3, 1);

function my_register_link($link) {
$offset = strpos($link, " href");
if($offset)
$link = str_replace(" href", " title=\"Administration\" href", $link);
return $link;
}
add_filter('register', 'my_register_link', 4, 1);


Kommentare

Einen Kommentar schreiben