Session-ID elegant abschneiden

Aus SEO-Gründen sollte man ja immer versuchen, die Session-ID (unter Verwendung von PHP i.d.R. PHPSESSID) abzuschneiden, damit kein Duplicate Content entsteht. Dafür gibt es mit PHP (aber natürlich auch mit vielen anderen Mitteln) eine einfach Möglichkeit: Man startet die Session erst gar nicht, wenn es sich um einen Bot handelt.

Diese Sache hat aber natürlich einen Haken. Sehr oft brauch man aber die Session, z.B. um die Sprache der aktuellen Seite zu speichern, wenn intern Sprachdateien geladen werden oder für diverse andere Zwecke. Aus diesem Grund musste ich mir etwas anderes einfallen lassen.

Ich habe die Sache dann (hoffentlich elegant) erledigt:


function isBot() {
   // Erkennen ob es ein Bot ist, z.B. mit Auswertung von $_SERVER['HTTP_USER_AGENT']
   if(true === xyz()) {
      return true;
   }

   return false;
}

if(true === isBot()) {
	ini_set("url_rewriter.tags", "");
}

Dadurch wird die Session zwar gestartet, aber an die Links der Seite, wird keine Session-ID mehr angehängt.
Um nun ganz zu vermeiden, dass Suchmaschinen noch auf (alte) URLs mit Session-ID zugreifen, kann man sie mit entsprechenden mod_rewrite-Regeln oder robots.txt-Anweisungen fernhalten.

Mit der robots.txt z.B. so *:

User-agent: Googlebot
Disallow: /*PHPSESSID=

* Ob Suchmaschinen in den URLs das Sternchen als Wildcard erlauben ist wohl noch nicht so eindeutig geklärt. Angeblich sollen Googlebot und Yahoo! Slurp es können. Ich übernehme da keine Garantie. ;-)

War dieser Artikel hilfreich für Sie?
[Gesamt: 0 Durchschnitt: 0]

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *