Viele (um nicht “alle” sagen zu müssen) Suchmaschinenoptimierer (SEOs) versuchen “Doublicate-Content” (DC) zu vermeiden. Doublicate-Content also doppelte Inhalte machen sich in den Google-Bewertungen negativ bemerkbar. Dieser doppelte Inhalt kann einerseits entstehen wenn die eigene Seite über mehrere Domains erreichbar ist, fremde Seitenbetreiber Inhalte eins zu eins kopieren, oder wenn eine Seite mit www als auch ohne www die gleichen Inhalte liefert. Doublicate Content,eine inhaltlich (nahe zu) identische Seite, entsteht auch wenn eine Seite über mehrere Links (z.B. haus.html oder index.php?action=haus) erreichbar ist oder wenn Previews von Inhalten z.B. Artikeln den ganzen Artikel beinhalten. Heute möchte ich hier eine einfache Lösung präsentieren um DC zu vereiden. Dabei Konzentrieren wir uns auf Doublicate Content der entsteht wenn eine Seite über mehrere Addressen (URIs) erreichbar ist.
DC vermeiden via .htaccess
Die .htaccess Datei wird bei Apache-Servern unter anderem zur Steuerung der so genannten mod_rewrite URL Rewriting Engine verwendet. Mit Hilfe dieser (als Modul eingebundenen) engine kann man Anfragen an den Server manipulieren beziehungsweise umleiten. So kann man zum Beispiel festlegen dass eine Anfrage an test.html zur Datei index.php?menu=test umgeleitet werden soll. Das macht Sinn, da sich so parametrisierte PHP Dateien vermeiden lassen, welche sich auch schlecht auf die SERPSs (Search Engine Result Pages) auswirken. Mod_rewrite kann aber mehr! Mit Modrewrite kann man auch die Erreichbarkeit einer Seite auf genau eine Domain beschränken. Man kann sogar dafür sorgen dass die eigene Seite nur noch mit “www.” erreichbar ist, oder nur noch ohne” www.”.
RewriteCond %{HTTP_HOST} !^www\.deinedomain\.de$
RewriteRule .* http://www.deinedomain.de%{REQUEST_URI} [L,R=301]
Diese Code sorgt dafür das alle Anfragen, die die Weibseite erreichen nur nur noch über einen HTTP_HOST zu Content führen. Anfragen über einen anderen HTTP_HOST werden per HTTP Header umgeleitet. Status Code 301 steht hierbei für Moved Permanently. Status Code 302 ist auch für Redirects erlaubt, ergibt hier aber meiner Meinung nach wenig Sinn er steht für “MOVED TEMPORARILY”.
Fügt man diesen Code an den Anfang der .htaccess Datei kann man nachfolgend wie üblich rewrite-rules definieren. Zum Beispiel kann für Javascript Dateien die ja überlicherweise auf .js enden an eine PHP Datei verweisen.Die PHP Datei generiert das Script dann gegebenenfalls dynamisch.
#Für alle Dateien die auf .js enden die Ausgabe von libs/js/[DATEINAME].php zurückgeben.
RewriteRule ^(.*)\.js$ libs/js/$1.php [L]
Oft macht es auch Sinn den direkt Zugriff auf PHP Dateien zu verbieten und diesen beispielsweise an eine forbidden.html weiter zu leiten. So ist man geschützt, falls Serverseitig mal das PHP Modul nicht funktioniert. In einem solchen Fall ohne Schutz könnten PHP Quelltexte oder Config-Dateien ausgelesen werden. Zwar gibt es die Möglichkeit (sofern vom Webhoster erlaubt) Config-Dateien eine Ebene oberhalb des httpdocs Ordners abzulegen, allerdings könnten dann bei PHP Ausfällen immer noch Quelltexte gestohlen werden.
RewriteCond %{REQUEST_FILENAME} !^.*index\.php$
RewriteRule .*\.php forbidden.html [L]
DC vermeiden via PHP
Das Ganze lässt sich auch mit PHP Code realisieren. Eine PHP basierende Lösung ist komplexer bietet aber mehr Möglichkeiten. In der Regel werden sowieso PHP und .htaccess in Kombination verwendet. Die Frage ist nur wieviel regelt .htacces, wie sind die modrewrite Aufgaben zwischen .htaccess und PHP verteilt? Entweder .htaccess aktiviert für verschiedene Anwendungsfälle verschiedene PHP Dateien, oder .htaccess wählt je nach URI andere Parameter aus, die dann an eine PHP Datei, die index.php, übergeben werden. .htaccess kann den Ball ganz einfach ohne großes Tamtam an PHP abgeben, PHP macht dann die ganze Arbeit. Es gibt natürlich noch weitere ähnliche Möglichkeiten der gemischten Aufgabenverteilung, man sollte die Möglichkeit wählen mit der die eigenen Anforderungen am Leichtesten und am Besten gelöst werden. Natürlich kann man mod_rewrite auch mit anderen serverseitigen Sprachen, wie JSP oder ASP verwenden.
Im Folgenden möchte ich ein wenig Beispielcode zeigen, der das oben angesprochene DC-Problem PHP basierend löst. Außerdem wird hier vermieden dass die index.phhp oder index.html direkt aufgerufen werden kann. Ein Link wie index.php?action=new würde der folgende Code als blocken. Dazu bitte mal Feedback von SEOs mit Erfahrung
.
Tags: Google, Internet, SEO, Webhosting
