Samstag, 11. Februar 2012


Artikel

Februar 2008 | Artikel

Besser finden lassen

(Link zum Artikel: http://www.entwickler.de/php//001525)

Effektive Suchmaschinenoptimierung für das neue phpBB3

Text: Steven Broschart
  • Teilen
  • kommentieren
  • empfehlen
  • Bookmark and Share
Das beliebte Forumsystem phpBB steht nun nach einigen Verzögerungen in der Version 3 in den Startlöchern und wartet mit vielen Detailverbesserungen und auch völlig neuen Features auf. Dennoch kann das vollständig runderneuerte System immer noch nicht so recht bei den Suchmaschinen punkten. Der Artikel erschließt die möglichen Maßnahmen, die für eine effektive Suchmaschinenoptimierung erforderlich sind und eingepflegte Artikel zu Hauptakteuren des Online-Marketings werden lässt.

Sicherlich mag es einige „eingeschworene“ Foren geben, die lieber unentdeckt bleiben möchten und sich deshalb mit dem Thema Suchmaschinenoptimierung (engl.: SEO für Search Engine Optimization) nicht auseinandersetzen. So scheint es zumindest, denn Foren, die nur nach Anmeldung eingesehen werden können, sind für ein Auffinden über Suchmaschinen gänzlich ungeeignet. Dabei ist ein Forum mit vielen Besuchern und ständig wechselnden Inhalten eigentlich eine ideale Plattform, die „normale“ Internetpräsenzen in Bezug auf den Marketingeffekt locker hinter sich lassen könnte – wenn das System auf Suchmaschinen vorbereitet ist.

Leider bietet auch das neue phpBB3 keine eingebaute Suchmaschinenoptimierung ab Werk.  Es gibt zwar bereits einige Erweiterungen und sogar entsprechend vorkonfigurierte Komplettpakete, allerdings konzentrieren sich diese nur auf einzelne Aspekte, die im Rahmen einer SEO zu beachten sind. Im Folgenden möchte ich deshalb – ausgehend von den theoretischen Ansätzen – die notwendigen Modifikationen am PHP-Code entwickeln und besprechen. Um die beschriebenen Änderungen nachvollziehen zu können, nutzen Sie am Besten eine frische Installation des Systems auf einem Apache-Server. Alle beschriebenen Änderungen beziehen sich auf das prosilver-Layout.

Installation

Die Installation des „Neuen“ geht leicht von der Hand und setzt mindestens PHP 4.3.3 und MySQL 3.23 voraus. Alternativ können auch noch andere Datenbankserver, wie bspw. PostgreSQL oder Oracle verwendet werden. Der Installer wird nach dem Upload aller benötigten Files durch Aufruf der Startseite automatisch gestartet. Hier erfolgen nun einige Systemprüfungen und Kompatibilitätschecks, die obligatorische Eingabe der Zugriffsdaten für die Datenbank, die Einrichtung eines Administrator-Account, sowie die Einstellung vitaler Board-Parameter. Abschließend muss noch das Installationsverzeichnis install gelöscht werden. Fertig.

Zur Überführung alter Foren aus der 2er-Reihe steht praktischerweise ein Konverter bereit, der seine Arbeit zuverlässig verrichtet. Lediglich das Passwort muss nach der Konvertierung neu beantragt werden. 

Es geht los: MetaTags

Die Bedeutung der allseits bekannten und oft missbrauchten Meta-Tags, hat für die Wertigkeit eines HTML-Dokumentes in den letzten Jahren stark abgenommen, sodass man auf Keyword und Description beinahe vollständig verzichten kann. „Beinahe“ nur deshalb, weil Suchmaschinen, insbesondere Google, den Parameter Description zur Bestückung der Suchergebnisanzeige nutzten. Fehlt diese Angabe, sucht ein Algorithmus eigenständig nach passenden Textpassagen und baut diese ein. Description avanciert damit durchaus zu einem Marketingparameter. Vorsicht ist allerdings geboten, wenn jede der bereitgestellten Seiten die gleiche Description enthält. In einem solchen Fall sollte man doch eher die vollständige Streichung dieses Parameters in Erwägung ziehen.

Aufgrund der nur eingeschränkten Bedeutung dieser Parameter für eine SEO, wird hier auf eine weitere Behandlung verzichtet.

Pfade & doppelter Content

Damit eine Suchmaschine eine Seite für relevante Begriffe gut bewerten kann, muss der Robot zunächst einen Weg zur Seite finden. Bereits bei dieser eigentlich banalen Anforderung zeigt das neue phpBB3 in der „Ab-Werk“-Ausführung erste Schwächen, an denen auch schon der Vorgänger krankte: Suchmaschinen vermeiden in den meisten Fällen die Indexierung der Seiten, die über einen Link mit teilweise endlosen Parameterketten verbunden sind. Denn von außen ist es für einen Robot nicht immer eindeutig, ob es sich bei dem Parameter um eine Session-ID handelt oder eine neue Seite spezifiziert wird. Im Zweifel folgt dieser dem Link nicht und indexiert damit auch nicht die Zielseite. Wäre dem nicht so, könnte es durchaus sein, dass der Robot hunderte Male die gleiche Seite indexiert – und das nur, weil sich die Session-ID bei jedem Besuch ändert und damit eine jeweils neue, noch nicht bekannte Seite impliziert.
Suchmaschinen versuchen also ökonomisch zu indexieren, denn einen Grund für redundante Datenspeicherung gibt es nicht und würde irgendwann auch in wirtschaftlicher Hinsicht zu einem Problem werden. In diesem Zusammenhang ist auch die Bereitstellung doppelter Seiten unterhalb einer Domain ein ganz wichtiger Punkt: Für eine Suchmaschine kann die Seite, die unter www.meinedomain.de aufgerufen wird, eine völlig andere Seite darstellen, als die, die der Server über www.meinedomain.de/index.php zurückliefert. Und das, obwohl es sich aus technischer Sicht um ein und das selbe Dokument handelt. Dies gilt übrigens auch, wenn eine Domain mit und ohne führendes www. erreichbar ist. Es kann also zu Indexierungsproblemen führen, wenn http://meinedomain.de und http://www.meinedomain.de die gleiche Seite ausliefern.

phpBB3 bietet ab Werk keine Möglichkeit der statischen Abbildung von URLs. Alle internen Links werden grundsätzlich mit diversen Parameterketten versehen – einer der Hauptgründe der schlechten Indizierbarkeit.

Um diesem Parameterkettenwust beizukommen, klinken wir uns nun in die Template-Engine ein. Dafür muss zu Beginn der Funktion assign_block_vars in der Datei /includes/template.php die Zeile =seo_former(); eingefügt werden. Dadurch werden alle relevanten Template-Inhalte vor der weiteren Verarbeitung erstmal zur Funktion seo_former geschickt, die dynamische in statische Links umwandeln soll. Diese Funktion muss nun noch unter /includes/seo_former.php mit dem folgenden Code definiert werden:

  1. <?
  2. if (!defined('IN_PHPBB')){exit;}
  3. function seo_former($vararray){
  4. global $user;
  5. if ($user->data['user_id'] == ANONYMOUS OR $user->data['is_bot'] )
  6. {
  7. $felder=array( 'U_LAST_POST','U_VIEWFORUM','U_NEWEST_POST','U_VIEW_TOPIC', 'U_VIEW_FORUM');
  8. foreach($felder as $k=>$v)
  9. {
  10. $url_comp=parse_url($vararray[$v]);
  11. unset($f); unset($t); unset($p); $anchorsplit=array(); $params=array();
  12. $anchorsplit=split("#",$vararray[$v]);
  13. $params=split("&amp;",$url_comp['query']);
  14. foreach($params as $par){parse_str($par);}
  15. if(isset($p) && isset($f)){$corarray="./f".$f."/p".$p;}
  16. elseif(isset($f) && isset($t)){$corarray="./f".$f."/t".$t;}
  17. else {$corarray="./f".$f;}
  18. if(isset($anchorsplit[1])){$corarray.="#".$anchorsplit[1];}
  19. $vararray[$v]=$corarray;
  20. }
  21. }
  22. return $vararray;
  23. }
  24. ?>

Damit phpBB auf diese neue Funktion zugreifen kann, muss diese noch in der Datei /common.php unterhalb des Kommentars // Include files mit dem Befehl require( . 'includes/seo_former.' . ); eingebunden werden. Dann ist noch die Einbettung eines BASE-Tags erforderlich. Dazu muss in das Template-Array der Datei /includes/functions.php unterhalb des Kommentars // The following assigns all ... die Zeile 'U_BASE_URL' => ['server_protocol'] . ['server_name'] . ['PHP_SELF'], eingefügt werden.

'U_BASE_URL' kann nun in /styles/prosilver/template/overall_header.html verwendet werden. Dazu wird <base href="{U_BASE_URL}" /> einfach unterhalb des Titels platziert. Anschließend muss noch das Anhängen der Session-ID für Gäste und – ganz wichtig – für Robots unterbunden werden. Dazu muss in der Datei /includes/functions.php unterhalb der Zeilen

  1. // Assign sid if session id is not specified
  2. if ($session_id === false) {$session_id = $_SID;}

folgender Code hinzugefügt werden:

  1. global $user;
  2. if ($user->data['user_id'] == ANONYMOUS OR $user->data['is_bot'] ) {$session_id = false;}
 

Damit das nun neu definierte Pfadformat auch vom Server verstanden und korrekt umgeschrieben werden kann, ist noch folgende Ergänzung in der .htaccess-Datei notwendig:

  1. RewritEengine on
  2. RewriteRule ^f([0-9]+)$ viewforum.php?f=$1
  3. RewriteRule ^f([0-9]+)/t([0-9])$ viewtopic.php?f=$1&t=$2
  4. RewriteRule ^f([0-9]+)/p([0-9])$ viewtopic.php?f=$1&p=$2

 
Zur Eingrenzung doppelter Inhalte fügen wir hier noch folgende Zeilen ein:

  1. RewriteCond %{http_host} ^meinedomain.de [nc]
  2. RewriteRule ^(.*)$ http://www.meinedomain.de/$1 [r=301,nc]

Diese sorgen dafür, dass der Aufruf  http://meinedomain.de über eine 301-Weiterleitung (moved permanently) zu http://www.meinedomain.de überführt wird. Diese Art der Weiterleitung ist grundsätzlich für alle Seiten zu empfehlen, die die gleichen Inhalte anzeigen sollen. Die Suchmaschinen erhalten mit ihr die Information über den ursprünglichen Aufenthaltsort und identifizieren das Weiterleitungsziel als zentralen Datenlieferanten. So wird nicht nur eine komplikationslose Indexierung sichergestellt, sondern auch die gewünschte Domain(schreibweise) für die Anzeige in den Suchergebnissen selektiert.
Auch intern provoziert phpBB noch doppelten Content, denn die URLs http://www.meinedomain.de/index.php und http://www.meinedomain.de/ liefern ein identisches Dokument zurück. Um dieses Problem zu unterbinden, nehmen wir der Suchmaschinen einfach den Grund, unter der /index.php nachzusehen. Dazu entfernen wir einfach den entsprechenden Link und ersetzen in der Datei /includes/functions.php die Zeile 'U_INDEX' => append_sid("{}index."), mit 'U_INDEX' => append_sid("{}"),.

Die hier beschriebene Lösung der statischen Abbildung zeigt nur eine von diversen Möglichkeiten. Denkbar ist bspw. auch das Umschreiben in sog. selbstsprechende URLs, in denen der Name des Forums und des Topics erscheint. Da für die SEO der Pfadname allerdings nur eine untergeordnete Rolle spielt – und der Platz an dieser Stelle natürlich auch  begrenzt ist – wurde hier dieser zwar wenig ressourcenoptimierte, aber dafür knappe und schnell zu implementierende Ansatz gewählt.

Informationsstruktur und interne Verlinkung

Grundsätzliches Problem vieler Web-2.0-Community-Systeme ist die mehrstufige Informationsstruktur mit mangelnder interner und themenbezogener Verlinkung. An vorderster Front steht die Startseite, die nicht nur für den Besucher als Einstiegsseite, sondern auch für die Suchmaschine eine besondere Rolle spielt. Am anderen Ende der Struktur stehen die Seiten, die den eigentlichen Inhalt, die Postings tragen. Diese Seiten sollten leicht und ohne Umwege von der Suchmaschine zu finden sein, denn genau diese sollen später ja bei einer Suchanfrage gut platziert werden.

phpBB3 bietet mit einem neuen Feature die Möglichkeit, Foren in Foren abzulegen und damit mehrstufig zu organisieren. Bei einer tiefen Verschachtelung wäre es also durchaus denkbar, dass sich der Robot zunächst durch eine gehörige Menge an Links kämpfen muss, bevor er dann irgendwann zum eigentlichen Inhalt gelangt.

Da es bereits bei einer dreistufigen Informationsstruktur (Startseite -> Themen -> Artikel), wie man sie auch in der Vorgängerversion oder diversen Blogsystemen antrifft, zu einer spürbaren Ausbremsung der Indexierung kommen kann, besteht nun insbesondere bei Nutzung dieses neuen Features dringender Handlungsbedarf. Je nachdem welche Strukturtiefe vorliegt, ist es durchaus denkbar, dass die Internetpräsenz niemals vollständig indexiert wird, da der Robot niemals bis „ganz unten“ durchdringt.

Ein weiterer Schwachpunkt ist die unzureichende und kaum themenbezogene interne Verlinkung. Ein Dokument, welches sich bspw. mit dem Thema PHP-Programmierung beschäftigt, profitiert von Links, die einen themenbezogenen Linktext tragen, wie bspw. PHP Programmierung. Um diesem Problem entgegenzuwirken, bietet sich die Integration einer Footernavigation an, also einer Direktnavigation im Fußbereich der Seite. Das ist momentan nicht nur ungeheuer hipp, sondern führt auch zu extrem kurzen Zielverlinkungen und erhöht gleichzeitig die themenbezogene Verlinkungsdichte. Die Footernavigation sollte in jede Seite eingebunden werden.

Zur Implementierung muss zunächst ein entsprechender Platzhalter in die Datei /style/prosilver/template/overall_footer.html eingefügt werden:

  1. <div class="navbar"><div class="inner"><span class="corners-top"><span></span></span>
  2. {FOOTERNAVIGATION}
  3. <span class="corners-bottom"><span></span></span></div></div>

Im Ordner /includes wird nun eine neue Datei mit dem Namen footernavigation.php und dem folgenden Code angelegt:

  1. <?php
  2. if (!defined('IN_PHPBB')) {exit;}
  3. function footernavigation() {
  4. global $db;
  5. // Parameter
  6. $fn_params=array("lines"=>20,"chars"=>33);
  7. $fn_header=array("Letzte Themen","Meistgesehen","Meiste Antworten auf","Wichtig");
  8. $fn_words=array("php", "programmierung");
  9. $fn_count=0;
  10. $fn_sql[0] = 'SELECT t.topic_id, t.topic_title, t.forum_id '.
  11. 'FROM ' . TOPICS_TABLE . ' t, '.FORUMS_TABLE.
  12. ' f WHERE t.forum_id=f.forum_id AND t.topic_approved=1 '.
  13. 'ORDER BY t.topic_time DESC LIMIT '.$fn_params['lines'];
  14. $fn_sql[1] = 'SELECT t.topic_id, t.topic_title, t.forum_id '.
  15. 'FROM ' . TOPICS_TABLE . ' t, '.FORUMS_TABLE.
  16. ' f WHERE t.forum_id=f.forum_id AND t.topic_approved=1 '.
  17. 'ORDER BY t.topic_views DESC LIMIT '.$fn_params['lines'];
  18. $fn_sql[2] = 'SELECT t.topic_id, t.topic_title, t.forum_id '.
  19. 'FROM '. TOPICS_TABLE . ' t, '.FORUMS_TABLE.
  20. ' f WHERE t.forum_id=f.forum_id AND t.topic_approved=1 '.
  21. 'ORDER BY t.topic_replies DESC LIMIT '.$fn_params['lines'];
  22. $wherestring=array();
  23. foreach($fn_words as $fnw){$wherestring[]="topic_title LIKE \"%".$fnw."%\"";}
  24. $wstring=implode(" OR ",$wherestring);
  25. $fn_sql[3] = 'SELECT t.topic_id, t.topic_title, t.forum_id '.
  26. 'FROM ' . TOPICS_TABLE . ' t, '.FORUMS_TABLE.
  27. ' f WHERE (t.forum_id=f.forum_id AND t.topic_approved=1) AND '.
  28. '(topic_type=2 OR ('.$wstring.')) '.
  29. 'ORDER BY t.topic_type DESC, topic_title DESC LIMIT '.$fn_params['lines'];
  30. $linkblock="<div class=\"fn_linkblock\">";
  31. foreach($fn_sql as $query)
  32. {
  33. $result = $db->sql_query($query);
  34. $linkblock.= "<ul class=\"fn_column".$fn_count."\">".
  35. "<li class=\"fn_cheader\">".$fn_header[$fn_count]."</li>";
  36. while ($row = $db->sql_fetchrow($result))
  37. {
  38. $link= "./f".$row['forum_id']."/t".$row['topic_id'];
  39. $linkblock.= "<li><a title=\"".strip_tags($row[topic_title])."\"".
  40. "href=\"$link\">".substr($row[topic_title],0,$fn_params['chars']).
  41. "</a></li>";
  42. }
  43. $linkblock.="</ul>";
  44. $fn_count++;
  45. }
  46. $linkblock.="</div>";
  47. return $linkblock;
  48. }
  49. ?>

Diese Funktion gibt nun eine vierspaltige Footernavigation zurück. Die Links der ersten drei Spalten verweisen dabei ausschließlich auf aktuelle, bzw. gut besuchte Artikel und sind damit eher dynamischer Natur. Die vierte Spalte beinhaltet hingegen statische(re) Links, die auf Ankündigungen und besonders wichtige Artikel verweisen. In diesem Zusammenhang gilt ein Artikel als besonders wichtig, wenn dieser im Titel ein oder mehrere ausgewählte Begriffe enthält. Durch diesen Mechanismus wird gewährleistet, dass viele der relevanten Postings permanent und direkt von überall aus erreichbar sind. Für die Suchmaschinen wird durch diese Fokussierung das Kernthema der Internetpräsenz leichter erkennbar.

Zur Konfiguration: Das Array fn_params enthält die Anzahl der auszugebenden Zeilen (lines), sowie die maximale Anzahl der Zeichen (chars) des Linktextes. Über fn_header werden die Spaltenüberschriften definiert. Die in fn_words aufgeführten Keywords werden für die beschriebene, vierte Spalte genutzt. Die Ausgabe muss nun noch ins Template-System eingespeist werden. Damit die neue Funktion genutzt werden kann, muss diese zunächst in der Datei /common.php inkludiert werden Dazu wird unter // Include files der Code require( . 'includes/footernavigation.php' . ); eingefügt.

Nun fehlt nur noch die Einbindung in die Ausgabelogik. Dazu wird in der Datei /includes/functions.php ins Template-Array, direkt unterhalb von // The following assigns all _common_ variables, die Zeile 'FOOTERNAVIGATION' => footernavigation(), eingefügt. Die Formatierung kann mit entsprechendem CSS-Code erfolgen, der in die Datei /style/prosilver/theme/common.css (folgendes Listing) eingefügt werden kann:

  1. .fn_cheader {font-size: 14px; font-weight: bold; padding-bottom: 4px;}
  2. .fn_linkblock ul {list-style-type: none;}
  3. .fn_column0, .fn_column1, .fn_column2, .fn_column3 {
  4. float: left; margin: 8px; padding-right: 8px; width:210px;
  5. }
  6. .fn_column0 {margin-left: 0; border-right: 1px dotted #444;}
  7. .fn_column0, .fn_column1, .fn_column2 {border-right: 1px dotted #444;}

Die Footernavigation lässt sich natürlich noch funktionell und optisch an die eigenen Bedürfnisse anpassen. Grundsätzlich sollte man jedoch darauf achten, dass man eine HTML-Seite auf diesem Wege mit nicht zu vielen Links spickt.

Animationsprogramm für Suchmaschinen

Suchmaschinen besuchen sich inhaltlich regelmäßig ändernde Seiten häufiger als andere, da diese eine größere Aktualität implizieren. Deshalb sollten insbesondere mit der Startseite als zentrales Dokument stets wechselnde Inhalte angeboten werden. Da aber – wie in vielen anderen Forum-Systemen auch – die Startseite meist nur die Kategorien und Foren als Übersicht abbildet, ändert sich dort für gewöhnlich nicht viel.

Um den Suchmaschinen trotzdem permanente Unterhaltung und Abwechslung bieten zu können, integrieren wir für die Startseite noch eine Teaser-Funktion, die jeweils die ersten 200 Zeichen der letzten 4 Beiträge anzeigen soll. Da diese nicht nur für den Besucher in optischer Hinsicht eher im oberen Seitenbereich interessant ist, sondern auch für die Suchmaschinen im Quellcode  recht weit oben stehen sollten, wird der folgende Code in der Datei /style/prosilver/template/index_body.html vor dem Marker <!-- INCLUDE forumlist_body.html --> integriert:

  1. <div class="navbar">
  2. <div class="inner"><span class="corners-top"><span></span></span>
  3. <strong>Letzte Posts</strong><br />{TEASER}
  4. <span class="corners-bottom"><span></span></span></div>
  5. </div><br />

Anschließend wird im /includes-Verzeichnis die Datei teaser.php mit dem folgenden Code angelegt:

  1. <?
  2. if (!defined('IN_PHPBB')) {exit;}
  3. function teaser() {
  4. global $db;
  5. $sql = 'SELECT t.topic_id, t.topic_title, f.forum_id, p.post_text, p.post_subject '.
  6. 'FROM '.FORUMS_TABLE.' f, '.POSTS_TABLE.' p, '.TOPICS_TABLE.' t WHERE '.
  7. 't.topic_id=p.topic_id AND f.forum_id=p.forum_id ORDER BY p.post_time DESC LIMIT 4 ';
  8. $result = $db->sql_query($sql);
  9. $teaser="";
  10. $teaser_id=0;
  11. while ($row = $db->sql_fetchrow($result))
  12. {
  13. $ttext=preg_replace("/\[.*\]/U","",$row['post_text']);
  14. $linktext1=$row['topic_title'];
  15. if($row['post_subject'] && $row['topic_title']!=$row['post_subject'])
  16. {$linktext2="<br />> ".$row['post_subject'];}
  17. else {$linktext2="";}
  18. $link= "./f".$row['forum_id']."/t".$row['topic_id'];
  19. $teaser.="<div class=\"teaser".$teaser_id."\"><h4><a style=\"color: #a00;\" href=\"".$link."\">".$linktext1.$linktext2."</a></h4>".strip_tags(substr($ttext,0,200));
  20. $teaser.="<br /><a href=\"".$link."\"><strong>mehr ...</strong></a></div>";
  21. $teaser_id++;
  22. }
  23. return $teaser;
  24. }
  25. ?>

Diese Funktion wird, wie bei der Footernavigation beschrieben, über die Datei /common.php inkludiert und anschließend über das Template-Array der /index.php eingebunden. Dazu muss dort die Zeile 'TEASER' => teaser(), eingefügt werden. Auch die Ausgabe des Teaser-Blocks wird über die /style/prosivler/theme/common.css formatiert:

  1. .teaser0, .teaser1, .teaser2, .teaser3
  2. {float: left; margin: 8px; padding-right: 8px; width:210px;}
  3. .teaser0 {margin-left: 0; border-right: 1px dotted #444;}
  4. .teaser1, .teaser2 {border-right: 1px dotted #444;}

Wichtiges Finetuning: Title und Headline

Eines der wichtigsten Seitenelemente für Suchmaschinen sind die Tags für den Titel (<title>) und die Überschriften (<h1>, <h2>, <H3>, ...). Das prosilver-Layout zeigt zwar durch die Abkehr vom tabellenorientierten Layout hin zur stylesheetbasierten Formatierung eine deutliche Weiterentwicklung der HTML-Strukturierung, trotzdem empfehle ich auch hier noch ein paar Änderungen. Insbesondere die Startseite sollte man sich nochmals zur Brust nehmen. Diese bietet ab Werk lediglich ein aus SEO-Sicht eher schlecht platziertes <h1>. Viel wichtiger wäre hier eine <h1>-Einkleidung der Kategorie-Bezeichner. Topic-Übersicht und Postingseite kommen insgesamt besser weg. Allerdings können die Links der Postingseite, die die Überschriften <h2> und <h3> umschließen, ohne Bedenken gelöscht werden.

Abschließend sollte man noch einen Blick auf den Seitentitel werfen, der über die Datei /styles/prosilver/template/overall_header.html gerendert wird. Hier kann in der Zeile <title>...</title> der Platzhalter {PAGE_TITLE} an die Stelle von {SITENAME} treten. Dadurch erscheinen die relevanten und individuellen Seiteninformationen im Titel an erster Stelle. Der Titel eines Postings erscheint somit garantiert an erster Stelle des Titels und wird ebenso garantiert von den Suchmaschinen ausgelesen und bewertet.

Spätestens jetzt sollten Sie mal den Cache durchlüften, damit die durchgeführten Änderungen auch wirklich angezeigt werden. Manuell geht dies durch Löschen der Daten im Ordner /cache.

Weitere Maßnahmen

Die grundlegenden Arbeiten der suchmaschinenfreundlichen Systemaufbereitung wären damit abgeschlossen. Allerdings gibt es noch einige weitere Dinge, die man unbedingt beachten sollte, die im folgenden aber nur angeschnitten werden können:

  • Doppelte Domains: Die sorgfältigsten Vorbereitungen können nicht helfen, wenn weitere Domains existieren, die direkt auf die Startseite zeigen (Response 200) und damit identischen Inhalt ausliefern. In solchen Fällen sollte unbedingt die bereits beschriebene 301-Weiterleitung zum Einsatz kommen.
  • Grundsätzlich sollte man auf validen Code achten. Nicht alle Warnungen eines Validators sind für eine SEO von Bedeutung. Allerdings sollten Fehler, die den Titel, Überschriften oder Links betreffen, in jedem Fall korrigiert werden.
  • Zu empfehlen ist auch die Einrichtung eines Google Webmaster Tool-Accounts, der über den aktuellen Indexierungsstatus informiert und über den sich Sitemap-Dateien verwalten lassen. Vorsicht: Sitemaps entbinden in keinem Fall von einer sinnvollen internen Verlinkung.

Was noch?

Für ein erfolgreiches Betreiben des Forums fehlt noch ein wenig Pressearbeit, damit Suchmaschine und Besucher von der Existenz Ihres Forums erfahren. Außerdem werten die Suchmaschinen viele externe Links als objektives Qualitätsmerkmal und stufen dadurch Ihre Seite höher ein (Stichwort: PageRank). Also: Je mehr externe Links, desto besser.

Anders als noch  häufig gedacht, müssen neu beantragte Domains nicht mehr bei den Suchmaschinen angemeldet werden. Hier reicht ein externer Link einer bereits erfassten Internetseite völlig aus. Zum Aufbau externer Verlinkungen eignen sich freie Presseportale, wie openpr.de, prcenter.de oder online-artikel.de ideal. Hier können selbstverfasste Presseartikel mit einem Link auf Ihre Domain kostenfrei veröffentlicht werden.

Die Aufnahme in das Directory Mozilla, besser bekannt als DMOZ, ist ebenfalls leicht beantragt und für das Ranking der eigenen Seite sehr empfehlenswert. Allerdings verlangt die redaktionelle Struktur des Systems den Antragstellern einiges an Geduld ab, denn diese müssen teilweise mehrere Monate, in Einzelfällen sogar Jahre warten, bis der Link zur eigenen Domain im Verzeichnis erscheint. Eine Aufnahmegarantie gibt es nicht.

Neben der Pressearbeit ist ebenfalls noch die Bereitstellung der Artikel als RSS-Feed zu empfehlen, damit die Inhalte des Forums auch von den diversen Blogsuchmaschinen gefunden werden. Entsprechende Erweiterungen sind für phpBB3 bereits verfügbar.

Zu guter Letzt darf man auf keinen Fall das Wichtigste vergessen: Den Inhalt. Dazu gehört eine durchdachte Struktur und eine aussagekräftigen Betitelung der Kategorien und Foren. Auf die Postings einer Community-Plattform hat man in redaktioneller Hinsicht zwar nur sehr eingeschränkten Einfluss, oft reicht aber schon eine sinnvolle Betitelung eines einzelnen Postings innerhalb einer Diskussion aus, die der Suchmaschine den Weg zum „Sinn“ der Konversation aufzeigen kann.

Fazit

Forumsysteme sind im Hype des Web 2.0 etwas in den Schatten der Blogs geraten. Zwar hatten sie zu keinem Zeitpunkt ihre Daseinsberechtigung verloren, als (Selbst-)Marketingtools für Jedermann schienen sie jedoch für oft sinnloses Geschwafel einfach die falsche Plattform zu sein. Mit den entsprechenden Modifikationen meldet sich das Forum jetzt aber bei den Suchmaschinen zurück und zeigt damit eine neue Präsenz, die selbst neben den schnell indizierbaren Blogs bestehen kann.

Leider konnte der Artikel nicht alle Seiten des Themas im Detail besprechen. Es sollte aber klar geworden sein, welche technischen Aspekte im Rahmen einer Suchmaschinenoptimierung von Bedeutung sind und wie diesen mit phpBB3 begegnet werden kann, damit ein Forum nicht länger eine „geschlossene Gesellschaft“ bleibt.

Über den Autor: Steven Broschart ist bereits seit mehreren Jahren als Core-Programmierer und Senior SEO Consultant für den Online-Marketing-Spezialisten cyberpromote tätig.

  1. http://www.phpbb.com/
  2. phpbb.de – das deutsche Supportforum

Kommentare

Gravatar edhardy 01.04.2010
um 04:57 Uhr
ed hardy shoes
Links london
links of london jewellery
Tiffany Jewelry
#zitieren
Gravatar edhardy 01.04.2010
um 04:58 Uhr
http://www.edhardyestore.com/
http://www.linksoflondononsale.com/
http://www.elinkslondons.com/
http://www.eswissewatches.com/
#zitieren