LandPage für Wordpress

Mittwoch, August 19th, 2009

LandPage ist ein simples Plugin um raus zu finden ob der User von einer Suchmaschine kommt. Es existier ein fertiges Wordpress Plugin “landingsites“, doch er ist etwas Komplex für mich und so entwickelte ich eine Lösung die mir nur das nötigste gibt. Was mir sehr Wichtig war, das der Plugin keine Ressourcen verschwendet und so kam ein kleiner PHP Script raus, welcher meine Erwartungen völlig erfühlt.

Das LandPage Plugin wird in den Wordpress Plugin Ordner rein geschmißen und in der Plugin Verwaltung aktiviert. Jetzt kann man überall im Code folgenden Schnipsel einbauen um den Usern die von einer Suchmaschine kommen, speziellen Content zu zeigen wie zum Beispiel Werbung.

if(class_exists('Xelaz_LandPage') && Xelaz_LandPage::isLanding())  {
  // Ich komme von einer Suchmaschine
}

Ich hab kurze Zeit meine Referer beobachtet und Suchmaschinen rausgesucht über die User auf meinen Seiten landeten. So kam eine kleine Liste raus mit Suchmaschinen jeglichen Ursprungs.
Die Überprüfung bezieht sich nur auf einen Schnipsel aus der Referer URL. Wenn der User von google.com, google.de oder images.google.de kommt suche ich nur nach dem Schnipsel “google.” und das reicht mir vollkommen.
Wer natürlich das nicht so sieht, kann nach seinen Wünschen die Suchmaschinen Liste im Quellcode bearbeiten.

Hier sind die Suchmaschinen Schnipsel:

$_searchMachine = array(
	'google.',
	'lycos.',
	'yahoo.',
	'msn.',
	'live.',
	'icq.',
	't-online.',
	'yandex.',
	'ixquick.',
	'freenet.',
	'abacho.',
	'altavista.',
	'metager',
	'gmx.',
	'web.de',
	'fireball.',
	'alltheweb.',
	'excite.',
	'lycos.',
	'allteweb.',
	'aol.',
	'aolsvc.de',
	'iwon.',
	'ask.',
	'cometsystems.',
	'hotbot.com',
	'overture.com',
	'metacrawler.',
	'netscape.',
	'looksmart.',
	'webcrawler.',
	'earthlink.',
	'viewpoint.',
	'gigablast.',
	'startpagina.',
	'mamma.',
	'seznam.',
	'scroogle.org',
	'conduit.',
	'babylon.',
	'searchand.'
);

Wenn ich was Vergessen hab, könnt ihr das in den Kommentaren hinterlegen.

Im Herzen des Plugins benutze ich die Funktion “str_replace” die ohne Reguläre Ausdrücke auskommt. Wie hier im Beispiel:

 
$list = array(
  'google',
  'yahoo'
);
 
$count = null;
 
$str = str_replace($list , '#', $_SERVER['HTTP_REFERER'], $count);
 
if($count>0)	
  'User kommt von einer Suchmaschine';

Download: LandPage.php