smart | Webentwicklung
Alles rund um HTML5, PHP, WordPress & Co.

WordPress: SEO mit Bordmitteln und ohne Plugin

6. Februar 2013
Stephan
SEO für WordPress ohne Einsatz eines Plugins

WordPress ist bereits „out of the box“ relativ suchmaschinenfreundlich eingestellt. Trotzdem kann man auch hier noch ein wenig Feintuning betreiben.

Im Normalfall verwenden die meisten von euch wahrscheinlich eines der bekannten SEO-Plugins, wie z.B. wpSEO oder All in One SEO Pack, die ohne großes Hand anlegen euren WordPress Blog sehr gut optimieren.

Ich selbst benutze hier im Blog jedoch kein SEO-Plugin, da man im Grunde die wichtigsten Optimierungen hinsichtlich SEO auch ohne Plugin umsetzen kann. Das ist zudem gar nicht so schwierig, wie jetzt vielleicht einige von euch denken, was ich euch in diesem Artikel auch zeigen möchte.

Optimierung der Title-Tags

Der Titel einer Webseite ist ein wichtiger Faktor, wenn es um OnPage-SEO geht. Deswegen sollte der Titel kurz & prägnant sein und vorallem die wichtigsten Keywords enthalten.

Auch wenn im Twenty Twelve Theme, also dem Standard-Theme von WordPress, bereits gute Title-Tags generiert werden, so könntet ihr diese noch nach euren Wünschen anpassen bzw. verfeinern. Je nachdem, welches Theme ihr verwendet, kann das jedoch varrieren.

Um also selbst zu bestimmen wie die Titel-Tags aussehen sollen, öffnet die header.php in eurem Theme. Hier können wir nun folgende Anpassung vornehmen:

<?php
global $paged;
$page_title = wp_title('', false, 'right');
$page_title = preg_replace('/\s+/' , ' ' , trim($page_title));
$blog_title = get_bloginfo('name');
$blog_description = get_bloginfo('description');
$paged_title = $paged && $paged >= 2 ? 'Seite ' . $paged . ' - ' : '';
?>
<?php if(is_home()) { ?>
    <title><?php echo $paged_title . $blog_title . ' - ' . $blog_description; ?></title>
<?php } elseif(is_category()) { ?>
    <title>Kategorie: <?php echo $paged_title . $page_title.' - '.$blog_title; ?></title>
<?php } elseif(is_archive()) { ?>
    <title>Archiv: <?php echo $paged_title . $page_title.' - '.$blog_title; ?></title>
<?php } elseif(is_search()) { ?>
    <title>Suche: <?php echo $paged_title . $page_title.' - '.$blog_title; ?></title>
<?php } else { ?>
    <title><?php echo $paged_title . $page_title; ?></title>
<?php } ?>

Je nach Seitentyp wird unser Titel nun immer individuell gestaltet. Außerdem erhalten wir keine identischen Titel, wenn eine paginierte Seite aufgerufen wird.

Meta-Tags individuell vergeben

Inwieweit die Meta-Tags für die Keywords und Description noch wirklich SEO relvant sind sei mal dahingestellt. Schaden kann es aber nicht sie anzugeben. Damit wir für jeden Artikel bzw. jede Seite eine individuelle Description und optimierte Keywords angeben können, werden wir WordPress Custom Fields nutzen.

Als erstes passen wir wieder unsere header.php an:

<?php // die Title-Tags lasse ich hier der Übersicht halber weg ?>
<?php if(is_home()) { ?>
    <meta name="description" content="<?php echo $pagedTitle; ?>Hier die Description für die Startseite eintragen." />
    <meta name="keywords" content="Keyword1, Keyword2" />
<?php } elseif(is_category()) { ?>
    <meta name="description" content="<?php echo $pagedTitle; ?>Hier gibt es einen Überblick über alle Artikel zur Kategorie <?php echo $page_title; ?>." />
    <meta name="keywords" content="<?php echo $page_title; ?>" />
<?php } elseif(is_archive()) { ?>
    <meta name="description" content="<?php echo $pagedTitle; ?>Hier gibt es einen Überblick über alle Artikel für: <?php echo $page_title; ?>." />
    <meta name="keywords" content="<?php echo $page_title; ?>" />
<?php } elseif(is_search()) { ?>
    <meta name="description" content="<?php echo $blog_title; ?> Suchergebnisse" />
    <meta name="keywords" content="<?php echo $blog_title; ?>, Suchergebnisse" />
<?php } else { ?>
    <meta name="description" content="<?= get_post_meta($post->ID, 'description', true); ?>" />
    <meta name="keywords" content="<?= get_post_meta($post->ID, 'keywords', true); ?>" />
<?php } ?>

Nun können wir jedem Artikel eine Beschreibung (Description) und Keywords zuordnen. Das macht ihr einfach über die benutzerdefinierten Felder:

WordPress SEO: Meta-Tags mittels Custom Fields

Anstatt die Keywords immer per Hand zu setzen, könntet ihr natürlich auch einfach die Tags als Keywords nutzen. Oder ihr nutzt die Tags als Fallback, falls ihr mal vergessen solltet die Keywords per benutzerdefinierten Feld zu setzen. Analog dazu könntet ihr als Fallback für Description den Artikel-Auszug (Excerpt) nutzen.

Duplicate Content vermeiden bzw. vorbeugen

Um Duplicate Content gar nicht erst entstehen zu lassen, empfiehlt es sich bestimmte Seitentypen, wie z.B. die Archive, nicht indexiieren zu lassen. Dafür nehmen wir wieder eine Anpassung vor:

<?php // die Title- & Meta-Tags lasse ich hier der Übersicht halber weg ?>
<?php if(is_home()) { ?>
<?php } elseif(is_category()) { ?>
    <meta name="robots" content="noindex,follow" />
<?php } elseif(is_archive()) { ?>
    <meta name="robots" content="noindex,follow" />
<?php } elseif(is_search()) { ?>
    <meta name="robots" content="noindex,follow" />
<?php } else { ?>
<?php } ?>

Zusätzlich können wir noch Canonical-Tags für die Startseite sowie die Archivseiten einfügen:

<?php // die Title- & Meta-Tags lasse ich hier der Übersicht halber weg ?>
<?php
$canoncical_url = 'http://' . $_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"];
?>
<?php if(is_home()) { ?>
    <link rel="canonical" href="<?php echo $canonical_url; ?>" />
<?php } elseif(is_category()) { ?>
    <link rel="canonical" href="<?php echo $canonical_url; ?>" />
<?php } elseif(is_archive()) { ?>
    <link rel="canonical" href="<?php echo $canonical_url; ?>" />
<?php } elseif(is_search()) { ?>
<?php } else { ?>
<?php } ?>

Für normale Seiten bzw. Artikelseiten scheint es so, als werden die Canonical-Tags automatisch gesetzt. Falls nicht, dann einfach beim letzten else noch einen Canonical-Tag einfügen.

Permalinks – schöne URLs

Standardmäßig erzeugt WordPress URLs die nicht sehr SEO-freundlich sind. Aus diesem Grund sollte ihr die Struktur der Permalinks anpassen. Das könnt ihr ganz einfach im Admin-Bereich unter EinstellungenPermalinks erledigen.

Ich habe mich z.B. für die Struktur Monat und Name entschieden:

WordPress SEO: Permalink Struktur anpassen

Fazit

Mit leichten Anpassungen kann WordPress auch mit Bordmitteln sehr leicht SEO-feingetuned werden. Natürlich bieten SEO-Plugins wahrscheinlich noch weitere hilfreiche Funktionen, aber die Basics sind auch ohne zusätzliches Plugin machbar.

Da ich bisher wirklich gute bis sehr gute Positionen in den Suchmaschinenergebnissen habe, sehe ich derzeit für mich auch keinen Grund auf ein SEO-Plugin umzusteigen.

Wie ist eure Erfahrung mit WordPress & SEO? Verwendet ihr ein spezielles SEO-Plugin oder legt ihr lieber selbst Hand an?

Kommentare  
11 Kommentare vorhanden
1 JonasB schrieb am 7. Februar 2013 um 08:21 Uhr

Hi Stephan,

gute Erklärung, die die SEO-Plugins ein wenig entmystifiziert, viel mehr machen die eigentlich auch nicht.

Man könnte beim Title noch überlegen, ob man diesen nicht auch über ein Custom Field vergibt, dann könnte man diesen von der Überschrift unabhängig machen, z.B. wenn man unter den 60 Zeichen bleiben möchte.

Ich nutze momentan das izioSEO-Plugin, bin damit allerdings nicht mehr so ganz glücklick. Andererseits scheue ich auch den Aufwand umzusteigen und die Title etc. neu eintragen zu müssen.

Schöne Grüße,
Jonas

2 Stephan L. schrieb am 7. Februar 2013 um 11:18 Uhr

Hey Jonas,

stimmt, für den Titel wäre es auch denkbar/sinnvoll diesen über ein entsprechendes Custom Field (bei Bedarf) noch zu verfeinern.

Das izioSEO-Plugin ist mir bisher noch nicht über den Weg gelaufen. Scheint aber auch nicht mehr wirklich aktualisiert/gepflegt zu werden!?

Gruß

Stephan

3 Marco Alexander Klemm schrieb am 9. Februar 2013 um 16:51 Uhr

Wirklich ein schöner Artikel, aber mit Plugins bekommt man doch noch einiges mehr geliefert. Für WordPress-Projekte benutze ich immer Yoast WordPress SEO – ein wunderbares Plugin 🙂

4 Viktor schrieb am 14. Februar 2013 um 19:09 Uhr

Hi Stephan,

wie immer gut beschrieben, und sehr gute alternative für Plug-ins.

Ich nutze All in One SEO Pack seit anfang an, bisschen zu spät für Umstieg, werde beim nächsten Projekt berücksichtigen.

SEO Plugins auch sehr starke Perfomans fresser.
Mfg

5 Pascale schrieb am 21. Februar 2013 um 21:13 Uhr

Hey Jonas,

Pass auf, izioSEO ist eine dreiste und schlecht programmierte Kopie von wpSEO von Sergej Müller. Hier findest du weitere Informationen dazu: http://playground.ebiene.de/wpseo-wird-beklaut/ .

Ich kann dir nur empfehlen, ein anderes Plugin zu verwenden, Alternativen gibt es ja genug. Ich setzte derzeit WordPress SEO von Yoast ein, aber die beschriebenen Methoden mit Boardmitteln reichen allemal.

6 Michael schrieb am 8. März 2013 um 13:06 Uhr

Super! Ganz herzlichen Dank für deine Arbeit. Wenn du noch «$canonical_url» überall richtig schreibst, ist sie perfekt!

7 Stephan L. schrieb am 8. März 2013 um 13:44 Uhr

Hallo Michael,

Danke dir – habe ich gleich mal korrigiert.

Grüße

Stephan

8 Ralf K. Herzig schrieb am 1. März 2014 um 12:04 Uhr

Hallo Stephan,
danke für Deine Tips. Ich bin totaler PHP-Laie, aber habe mal auprobiert Deine Optimierung der Title-Tags einzubauen. Hat auch funktioniert, aber jetzt erhalte ich als Seitentitel immer nur das eine Wort des Seitentitels aus dem Menü. Und wenn ich die Seiten mit ausführlicheren Beschreibungen benenne, ändert sich auch mein Menü. Da will ich ja keine langen Wortketten haben. Was mach ich falsch? Wie bekomme ich ne längere Beschreibung in den Seitentitel ohne mein Menü zu verändern?
Danke und Gruß
Ralf

9 Cora schrieb am 5. September 2014 um 17:28 Uhr

Hi,
ich frage mich, was passiert, wenn ich auf einer laufenden WP-Seite die Permalinks von dieser ?456-Form in sprechende Titel ändere: verlieren dann nicht bereits auf bestimmte Posts gesetzte Links von außen Ihre Gültigkeit? Z.B. verlinke ich von meiner Facebook-Seite auf meinen BLOG. Laufen diese Links dann ins Leere?
Oder ändert WP ab der Umstellung nur die neuen Beiträge?
Danke!
Cora

10 Paul schrieb am 30. September 2014 um 07:35 Uhr

Danke ich habe das ganze mal in meinem Blog aufgefasst und einen Link zu dir gesetzt. Ich Frage mich allerdings, warum WordPress das nicht generell mit einarbeitet.

11 Xenia schrieb am 10. Juni 2015 um 03:00 Uhr

Ich hoffe, die Seite wird noch betreut…? Super Beschreibung, danke!
Wie macht man das Gleiche (Meta-Tags individuell vergeben) mit Kategorien?

0 Trackbacks/Pingbacks vorhanden
Du bist herzlich eingeladen auch ein Kommentar zu hinterlassen!
Kommentar schreiben

Vielen Dank für dein Kommentar!