Wordpress SEO - Teil 2

Dies ist der zweite Teil einer Serie von Artikeln über die Möglichkeiten, die Wordpress einem SEO bietet. Wordpress hat sich in den letzten Jahren nicht nur erfolgreich als Plattform für Blogs etablieren können, sondern läßt sich mittlerweile auch als “normales” CMS einsetzen.

Inhaltsverzeichnis:

Die Struktur der Permalinks
Optimierung des Templates

Optimierung des Templates

Im Wordpress-Template selbst lassen sich noch verschiedene Optimierung vornehmen. Die wichtigsten möchte ich hier vorstellen. Die meisten beziehen sich auf die Usability der Seiten, aber ich betrachte die Usability als einen wichtigen Faktor - auch und gerade was SEO anbelangt.

Überschriften
Nicht jedes Template setzt dies von Haus aus um, also müssen wir in vielen Fällen direkt in die Templatedateien eingreifen. Betroffen sind für die Überschriften der Blogposts die Dateien page.php und post.php im Templateverzeichnis.
Der Posttitel sollten als <h1>-Überschrift ausgezeichnet sein. Im Blogpost selbst sollte für Abschnitte und Zwischenüberschriften die Tags <h2>-<hx> eingesetzt werden, je nach Wichtigkeit der Überschrift.

Geschwindigkeit ist Trumpf
Die Ladezeit der Seite ist nicht für die User von entscheidender Bedeutung. Nicht jeder User hat eine 16MBit-Anbindung und ist gewillt, mehrere Sekunden zu warten, bis sich die Seite endlich aufbaut. Auch Suchmaschinen machen zum Teil die Anzahl der Seiten, die der Crawler indiziert davon abhängig, wie langer er auf die Inhalte warten muss. Bei mehreren Milliarden Seiten, die moderne Suchmaschinen regelmäßig besuchen, wirkt sich die eine zusätzliche Sekunde massiv aus. Bei langsamen Seiten, werden daher weniger Seiten gespidert, als bei schnellen.

Wordpress bietet hier eine Reihe von Ansatzmöglichkeiten. Wenn wir uns zum Beispiel die Datei header.php anschauen, so werden dort eine Reihe von Daten bei jedem Seitenaufruf aus der Datenbank gelesen, die sich nur äußerst selten verändern:


<html xmlns="http://www.w3.org/1999/xhtml">
<head profile="http://gmpg.org/xfn/11">
<meta http-equiv="Content-Type" content="<?php bloginfo('html_type'); ?>; charset=<?php bloginfo('charset'); ?>" />
<title><?php bloginfo('name'); ?> <?php if ( is_single() ) { ?> » Archiv <?php } ?> <?php wp_title(); ?></title>
<link rel="stylesheet" href="<?php bloginfo('stylesheet_url'); ?>" type="text/css" media="screen" />
<link rel="alternate" type=\"application/rss+xml" title="<?php bloginfo('name'); ?> RSS Feed" href="<?php bloginfo('rss2_url'); ?>" />
<link rel="pingback" href="<?php bloginfo('pingback_url'); ?>" />

Vieles hiervon muss nicht bei jedem Seitenaufruf aus der Datenbank gelesen werden. Wie oft ändert sich denn die URL zum CSS-Stylesheet? Oder die RSS-URL? Ändern wir wirklich ständig den benutzten Zeichensatz?
NEIN Deshalb können wir hier einiges mit statischen Werten ersetzen und sparen so einiges an zeit, die vergeht, bevor der User die Seite zu Gesicht bekommt. An die Daten kommt man sogar ganz einfach heran. Einfach mal den Quelltext der Blogseite im Browser anschauen, dort finden sich die Werte, die Wordpress für uns aus der Datenbank gezogen hat. Diese tragen wir an die entsprechenden Stellen einfach ein und speichern die header.php wieder. Danach kann das z.B. so aussehen:


<html xmlns="http://www.w3.org/1999/xhtml">
<head profile="http://gmpg.org/xfn/11">
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-15" />
<title><?php bloginfo('name'); ?> <?php if ( is_single() ) { ?> » Archiv <?php } ?> <?php wp_title(); ?></title>
<link rel="stylesheet" href="http://www.blogdomain.de/css/style.css" type="text/css" media="screen" />
<link rel="alternate" type=\"application/rss+xml" title="Mein Blog RSS Feed" href="http://www.blogdomain.de/feed/" />
<link rel="pingback" href="http://www.blogdomain.de/xmlrpc.php" />

Mit nur 2 Minuten Arbeit haben wir uns ganze 5 Datenbankabfragen gespart. Und das künftig bei jeden Seitenaufruf, der irgendwann erfolgt. Auch in der Datei footer.php finden sich manchmal solche Einträge. Oftmals wird dort auf den RSS-Feed verlinkt o.ä. Auch hier kann dann eine statische URL zum Feed hinterlegt werden, anstatt diese per Datenbankabfrage zu generieren.

11 Kommentare zu “Wordpress SEO - Teil 2”

  1. Alexander Klaus sagt:

    guter Beitrag. ich selbst nutze wordpress öfter als cms und nicht als blogsystem. nach meiner erfahrung lässt sich beides super damit verwalten und seo technisch mit den richtigen plug ins auch gut benutzen.
    deine vorschläge um die datenbankabfragen zu minimieren habe ich bei einem meiner seiten direkt umgesetzt.
    =)

  2. Jerome sagt:

    Wäre es nicht viel einfacher und effektiver einen Caching-Mechanismus zu verwenden? Beispielsweise wp-cache?

  3. Marco sagt:

    Ja, das könnte man natürlich tun. Würde ich zusätzlich empfehlen. Also nicht stattdessen, sondern gleich beides.

  4. Philipp sagt:

    Guter Beitrag, Marco - mehr davon ;-) Habe das mal direkt in einigen Blogs umgesetzt, zusätzlich habe ich noch das Archiv aus dem Header entfernt: - bei machen Seiten war da schon eine sehr, sehr lange Liste im Quelltext. Wird aber auch nicht in allen Themes angewendet…

  5. Monika sagt:

    Der Artikel erinnert mich stark an einem Artikel aus dem Schweizer WordPress Magazin und dort wie hier sage ich, dass das gar nichts bringt ;)

    1. das richtige Charset ist utf 8 wer noch ein anders einsetzt ist im Jahr 1990 daheim ;) und wird mit vielen Plugins Probleme haben,

    2. der angegebene title tag ist unklug, weil niemals der Blogtitel immer ganz vorne sein sollte..

    3. einfach mehr recherchieren und nicht immer solche Halbwahrheiten verkünden, die schaden auf die Dauer ..
    lg

  6. Marco sagt:

    @Monika:
    Die Code-Snippets waren als Beispiel gedacht und aus einem vorhandenen Theme entnommen. Hier ging es nicht um die Optimierung des <title>-Tags, sondern allein um die Einsparung von unnötigen Datenbankabfragen.

    Laß mir doch auch was für den nächsten Teil. :-)

  7. Adrian sagt:

    Du sagst du möchtest das Theme optimieren…
    Dann find ich den Post etwas kurz.

    Denn unter Theme-Optimierung verstehe ich auch die Sidebar(s) anzupassen, die Überschriften sinnvoller zu verteilen (und ggf. zu streichen), die META-Informationen zu verbessern, überflüssigen Schnick-Schnack (JavaScript, etc.) zu entfernen und und und…

    Datenbankabfragen sind sicherlich ein guter Anfang, aber längst noch nicht alles…

  8. Marco sagt:

    Adrian, Du hast ja recht. Es wird ja auch noch mehr Teile geben. :-)

  9. alte Kievotz sagt:

    Bringt das den soviel, dass es sich lohnt, solche anpassungen zu machen?

    Ich meine, wenn ein Server nicht mal mit 3 Datenbankzugriffen pro Seite klar kommt, kann man doch eh gleich zusperren?!

    Aber auf der anderen Seite frage ich mich sowieso, warum in einem Theme-Header ein variabler CSS-Pfad vorhanden ist. Ich meine, wenn man ein bestimmtes Theme benutzt, warum sollte ich dann den Pfad zur CSS-Datei aus der DB auslesen wollen? Diesen Pfad hätte man doch von Beginn an fest in das Theme schreiben können!

  10. Shlengo sagt:

    Auch wenn es nur 3 Datenbankzugriffe pro Seite sind, sind es zwei zu viel, da es ja laut Marco richtiger weise auch so geht.
    Von daher vielen Dank für den Tipp und ich freu mich schon auf auf die nächsten Wordpress SEOptimierungsvorschläge. :-D

  11. Bilder sagt:

    Hilfst du auch prviat ich hab nen selbstgemahtes theme und komme damit nit klar :(

Dein Kommentar