Drupal suchmaschinenfreundlicher machen SEO für Drupal
Drupal ist schon Out-of-the-Box ganz gut suchmaschinentauglich. Mit ein paar Einstellungen, Installationen von Modulen und Anpassungen von Templates kann man für die Onsite Optimierung ganz gute Resultate erreichen. Ich werde hier eine kurze Einführung zur Suchmaschinenoptimierung mit Drupal vorstellen, was bei der Onpage-Optimierung beachtet werden sollte.
Das Ziel bei Suchmaschinenoptimierung ist, ein möglichst gutes Ranking in Suchmaschinen zu erreichen: idealerweise will man viele Seiten (SERPs = Search Engine Result Pages) im Index haben, ein hohes Ranking auf Keywords erziehen (die Position im Suchindex) und einen aussagekräftigen Link-Titel und Beschreibungstext für die SERPs.
Anders als SEM (Search Engine Marketing) ist SEO prinzipiell kostenlos. Allerdings ist dieses Thema so komplex und auch kurzlebig, dass es sich in den meisten Fällen lohnt, sich professionelle Unterstützung zu holen. Dieser Artikel soll gute Ansätze für eine Drupal SEO Optimierung aufzeigen, aber einen SEO Spezialisten wird er nicht ersetzen können.
Zuerst halten wir mal den IST-Zustand fest, damit wir wissen, was wir überhaupt zu optimieren haben. Danach gehen wir einen Schritt weiter, und integrieren durch weitere Drupal Module neue Funktionen, die von Suchmaschinen und von Benutzern (Usability) sehr gut angenommen werden.
Der IST Zustand eines Drupal Projektes mit dem Bluemarine als Templategrundlage, ohne SEO spezifische Einstellungen vorgenommen zu haben:
- fehlende Meta Description
- Seitentitel berücksichtigt keine Taxonomie
- 404 Seite ist nicht für Benutzer optimiert
- keine Sitemap zur Verbesserung interner Verlinkung
- robots.txt ist nicht optimal
- dynamische, nicht-sprechende URLs
SEO spezifische Einstellungen
- Clean URLs aktivieren
Clean URLs bedeutet, dass statische URLs verwendet werden. Damit diese Feature funktioniert, muss mod_rewrite auf dem Server aktiviert worden sein. - CSS Dateien zusammenfassen
Unter dem Menüpunkt Verwalten/Einstellungen/Leistung findet man die Option CSS-Dateien zusammenfassen und komprimieren. Diese Option sollte aktiviert werden, um ein schnelleres laden der Seite zu bewirken.
Diese Einstellung sollte man ausschalten, wenn man an der Seite arbeitet, da es sonst sehr schwierig ist, Fehler ausfindig zu machen. - Webseiten-Information
Im Beschreibungsfeld Verwalten/Einstellungen/Website-Informationen sollte man einen aussagekräftigen Text festlegen, der kurz die komplette Webseite beschreibt. Dieser Text wird auf der Startseite als erstes im HTML Body als Teaser angezeigt, daher ist er in einer Top-Position für Suchmaschinen.
Drupal Module, die für SEO essentiell sind:
- Page Title
Dieses Modul ermöglich das setzen des Page Title im HTML Header. Normalerweise verwendet Drupal den Node Title für den Page Title (was bedeutet node title = page title). Es kann für die Frontpage und und für die einzelnen Node-Types ein Standardmuster hinterlegt werden, aus welchen Phrasen der Title erstellt wird. Zusätzlich kann man den Title individuell für jeden einzelnen Node überschreiben.
Da der Titel des Textes und der HTML title unterschiedlich sind, kann das einen zusätzlichen Boost für die Webseite bedeuten. - pathauto
Erzeugt automatisch URL Aliases für Nodes, Taxonomy, Benutzer u.s.w. mit sprechenden URLs. Das Modul kann auch mit Umlaute umgehen und Stopwörter können ausgeschlossen werden.
Das Modul ist sehr mächtig und lässt sich sehr flexibel konfigurieren. Die URL Schemata lassen sich für alle möglichen Ausgabeseiten individuell definieren, z.B. für die verschiedenen Node-Types, Taxonomy oder Benutzern. Bei der Konfiguration der Schemata sollte man sich aber ein solides Konzept überlegen, welches einzigartige URLs garantiert, eine logische Hierarchie darstellt und so weit wie möglich auch Taxonomy-Terms in den URLs beinhaltet.
Auch kann pathauto mit Umlauten richtig umgehen, z.B. wird aus einem für in der URL ein fuer erzeugt. Dies funktioniert nur, wenn im Modulverzeichnis die Datei i18n-ascii.example.txt in i18n-ascii.txt umbenannt wird und die Option Umcodieren, bevor der Alias erstellt wird in der Modulkonfiguration aktiviert wurde. - Meta tags
Dieses Modul fügt die Meta Keywords und Description im HTML Header ein. Die Werte hierfür werden für jeden Node je nach Wunsch automatisch anhand des Inhaltes erstellt oder auch manuell zugewiesen.
Für die Keywords der seiteübergreifenden und Startseiten Konfiguration sollte man sorgfältige Keyword-Recherche betreiben. Beachten Sie dabei auch Tippfehler, Rechtschreibreform, unterschiedliche Begriffswelten und saisonale Schwankungen.
Hier einige Dienste, die für die Keyword-Recherche sehr hilfreich sind:- Google Adwords Keyword Tool
Interessant dabei ist wie oft nach einem Suchbegriff gesucht wird, welche Synonyme und Varianten für einen Suchbegriff in Frage kommen und mit wie vielen Webseiten man in Konkurrenz ist (Mitbewerberdichte). - Google Trends
- Keyword Suggestion Generator
- Google Adwords Keyword Tool
- XML Sitemap
Erstellt eine XML Datei mit Nodes, Terms und User, die von folgenden Suchmaschinen unterstützt wird: Google, Yahoo, Ask, Moreover
Die Sitemap muss bei der jeweiligen Suchmaschine angemeldet werden, dazu ist es notwendig einen Acccount bei den Suchmaschinenbetreibern anzulegen. - Global Redirect
URL Aliases sind sehr gut geeignet, da man sprechende URLs damit umsetzen kann. Das Problem dabei ist, dass über die ursprüngliche URL auch der gleiche Inhalt erreichbar ist - Suchmaschinen sehen dies als DC (Duplicated Content) an. Dieses Modul führt einen 301 Redirect auf das URL-Alias durch, wenn die Ursprungs-URL aufgerufen wird. Desweiteren wird die Startseite (frontpage) besonders beachtet: alle URLs, die auf die Frontpage verlinken, werden zur Projekt-URL weitergeleitet. Dabei werden u.a URL-Aliases, Views und ein Aufruf über die index.php berücksichtigt.
Dieses Modul bietet keine Konfigurationsmöglichkeit an, sondern wird durch Aktivierung des Moduls sofort scharf geschaltet. - Path Redirect
Mit diesem Modul können HTTP Weiterleitungen jeglicher Art eingestellt werden - sowohl projektbezogene als auch externe URLs. Desweiteren wird durch dieses Modul die Funktionalität des pathauto Modul erweitert, indem eine weitere Aktualisierungsmethode Erstelle einen neuen Alias. Umleiten von dem alten Alias zur Verfügung gestellt wird. Das bedeutet, wenn der Node Titel angepasst wird, wird dazu auch der URL-Alias aktualisiert. Das ist aus SEO Sicht eigentlich schlecht, da die Seite dann nicht mehr unter der bisherigen URL erreichbar ist. Weiterhin wird aber der alte Alias beibehalten und von diesem ein Redirect auf den neuen Alias durchgeführt - und das stellt die Ideallösung dar.
Abb.: Hier sieht man die Einstellungen zum Pathauto Modul mit Path redirect - Sitemenu
Dieses Modul erstellt anhand der vorhandenen Taxonomie-Terms eine Seitenübersicht, die eine typische Sitemap einer Webseite darstellt. Die Einstellungen erlauben bestimmte Vokabulare auszuschließen und weiterhin kann man einen einleitenden und abschließenden Text festlegen. - Google Analytics
Statistiken und Protokoll sind sehr wichtig für die Suchmaschinenoptimierung, da man nur so Schwachstellen ausfindig machen kann und gegebenenfalls schnell reagieren kann. Google Analytics ist ein kostenloser Dienst von Google, der einen sehr mächtigen Funktionsumfang liefert.
Mit dem Drupal Modul Google Analytics wird der Code-Snippet in den Ausgabeseiten eingebunden. Man hat über das Administrationsinterface die Möglichkeit, bestimmte Benutzerrolen vom Tracking auszuschließen, was sehr hilfreich ist, da Administratoren oder Entwickler die Statistiken stark verfälschen können.
Weitere interessante Drupal Module bzgl. SEO und Usability:
- search404
Dieses Modul bindet auf die 404er Seite eine Suchmaske ein, die automatisch mit einem Suchbegriff ausgeführt wird. Der Suchbegriff wird anhand der verwendeten URL ermittelt.
Abb.: Hier sieht man die Einstellungen zum Modul search404 - Similar Entries
Similir Entries stellt einen Block zur Verfügung, der ähnlich Themen zum aktuellen Thema vorschlägt. Für die Ermittlung der ähnlichen Themen werden Node Title und Body über die MySQL Volltextsuche verglichen, wobei auch die Taxonomie berücksichtigt wird.
Wenn eine große Anzahl von Nodes in der Datenbank vorhanden ist, muss ich von dem Modul abraten, da durch die aktuelle Umsetzung dies zu grösseren Performance-Problemen führen kann. - Alinks
Dieses Modul erlaubt es Keywörter zu definieren, denen man eine URL zuordnen kann. Wenn diese Keywords in einem Node gefunden werden, werde diese mit der hinterlegten URL assoziiert. Damit kann man sehr gut die interne Verlinkung verbessern. - Custom Breadcrumbs
Zu jedem Node-Type kann über dieses Modul ein benutzerdefiniertes Breadcrumb (Brotkrümel) zugeordnet werden. Das Modul greift auf das Token Modul zurück, dadurch stehen standardisierte Variablen zur Verfügung, die zum Aufbau der Breadcrumbs verwenden werden können. Durch das Modul kann die Usability und die interne Verlinkung verbessert werden. - Service links
Dieses Modul fügt zu jedem Node Links hinzu, mit denen man Einträge in Social Bookmarking Systemen setzen kann. - Digg this
Fügt einen Digg Button an jedem Node an und zeigt die Anzahl der Diggs an. Über die Konfiguration kann festgelegt werden, für welchen Node-Type der Digg Button angezeigt werden soll.
Duplicated content unterbinden
Alle Seiten sind über die URL www.meinedomain.de und meinedomain.de (also ohne www.) erreichbar, was bedeutet, dass jede Seite zweimal existiert -> DC. Um dies zu unterbinden, fügt man folgende Zeilen im mod_rewrite Abschnitt der .htaccess Datei ein:
RewriteRule ^(.*)$ http://www.MEINEDOMAIN.de$1 [L,R=301]
Natürlich muss der entsprechende Domainname eingesetzt werden. Falls eine Mulit-Site Installation vorliegt, kann man diese Optimierung nicht in die .htaccess Datei schreiben, da darüber Einstellungen für alle Projekte gleichzeitig setzten würde. Ein Ausweg ist hier die vhost Konfigurationsdatei zu verwenden.
Über die Google Webmaster Tools besteht eine weitere Möglichkeit, der Suchmaschine mitzuteilen, ob die Domain mit oder ohne www als Hauptdomain verwendet werden soll - allerdings wird diese Einstellung dann nur bei Google berücksichtigt, und von keiner anderen Suchmaschine.
Template Anpassungen
Drupal wird ab Version 5.0 standardmäßig mit dem Theme garland ausgeliefert. Im Gegensatz zu Bluemarin, welches zuvor als Standardtheme eingesetzt wurde, wird die Strukturierung der Site weitgehend mit CSS umgesetzt. Das ist eigentlich eine gute Sache, nur ist der Quellcode so konfuse und unübersichtlich aufgebaut, dass es für die Grundlage eigener Anpassungen geeignet wäre. Besser geeignet ist Bluemarin, welches eine einfache, klare HTML Struktur aufweisst, welches mit Hilfe von CSS leicht erweitert werden kann.
Aus SEO Sicht ist es am besten, man verwendet für die Strukturierung der Seite nur CSS, da der Flow des Textes ideal gesteuert werden kann und dadurch suchmaschinenrelevante Texte weiter oben innerhalb der Seite positioniert werden kann. So kann man den eigentlichen Content der Seite gleich nach dem Body TAG platzieren und die anderen, für die Suchmaschinen nicht so relevanten Teile wie Navigation, Informations-Boxen oder andere Hinweise, unten in der Seite anbringen. Auch aus Performance Gründen spricht einiges dafür auf ein CSS optimiertes Theme zu setzen - die Ladezeit der Seite verkürzt sich, da der CSS Code in externe Dateien ausgelagert werden kann, welche der Browser cachen kann. Durch die Wiederverwendbarkeit der CSS-Klassen und IDs wird auch der HTML Code "sauberer". Ein sehr gutes CSS basiertes Theme für Drupal ist Zen.
- Überschriften kennzeichnen mit: H1, H2, H3 u.s.w.
- Wichtige Keywords im Text hervorheben: strong, em, span
Idealerweise befinden sich diese Keywords auch im Page-Title und in den Meta-Tags. - Auf Kommentare im HTML Quelltext verzichten
Falls das, aus welchem Grund auch immer, nicht möglich ist, kann man durch das PHP Modul tidy eine automatische Ausfilterung der Kommentare erreichen. Allerdings das voraus, dass eine valide HTML Struktur vorliegt, da es andernfalls zu Fehlverhalten der Seite führen kann. - Aussagekräftigen Text innerhalb der Links verwenden, idealerweise Keywords
- Bilder mit aussagekräftigen ALT Tag versehen.
- Scripte im oberen Bereich einer Seite vermeiden oder in externe Dateien auslagern.
Robots Anweisungen
Mit Hilfe von Robots Anweisungen können bestimmte Seite gekennzeichnet werden, um den Bots (Robots der Suchmaschinen) mitzuteilen, diese Seiten von der Indizierung auszuschließen. Für die projektweite Festlegung dieser Anweisung muss im DOCUMENT_ROOT Verzeichnis eine robots.txt Datei angelegt werden.
Über HTML Header Anweisungen kann man auch gezielt für einzelne Seiten Anweisungen verwenden. Diese Funktionalität stellt das Modul Meta tags zur Verfügung (weitere Informationen zu diesem Modul sind weiter oben zu finden).
Sofern man eine Multi-Site Drupal im Einsatz hat, kann man über das Modul RobotsTxt für die einzelnen Projekt verschiedene robots.txt definitionen benutzen (falls man das braucht).
Allgemeine SEO Tipps
- Guten, einzigartigen Content bereit stellen
Das wichtigste ist, dass man "guten" Content anbietet. Es ist immer am besten wenn man selbst Texte verfasst oder verfassen lässt, anstelle sie sich aus anderen Quellen besorgt. Beispiel: jemand erstellt einen interessanten, neuen Artikel in seinem Blog. Der Text wurde selbst verfasst und durch einige Recherchen erstellt. Diesen Blogger nennt man Alpha-Blogger. Kurze Zeit später findet man diesen oder einen ähnlichen Beitrag in vielen anderen Blogs wieder, häufig auch mit Verlinkung auf das Original. - die Anzahl externen Links minimal halten
- bestehende Seiten nicht entfernen und die bestehenden URLs beibehalten. Falls man auf eine neue URL Struktur umstellen will, sollte man mit Hilfe einer 301 Weiterleitung der Suchmaschine mitteilen, dass diese Seite permanent umgezogen wurde.
- Tote Links entfernen
Regelmäßig auf nicht mehr funktionierende Links die Seiten überprüfen. Suchmaschinen lassen nicht funktionierende Link negativ im Ranking einfließen.
Für die Fehlersuche ist die Watchdog-Funktionalität von Drupal sehr hilfreich. Zum Beispiel werden unter admin/logs/page-not-found alle 404er Fehler aufgeführt (Seiten, die nicht gefunden wurden). - validen HTML Code
Der HTML Code sollte dem W3C Standard entsprechen. W3C stellt einen kostenlosen HTML Validator zur Nutzung bereit. - Long Tail-Optimierung (viele Content Seiten mit guter interner Verlinkung)
- kein Blackhat SEO

