Rickoe... generalmente los motores de estadisticas, lo que hacen es guardar una lista de Buscadores con algunos datos que les sirven después para parsear los datos.
Buscador, dominio asociado ( puede ser un regex ), y variable de Query.
Entonces, tendrías algo asi :
Código PHP:
<?
$buscador["Google"]["dominio"] = "www.google.(.*)"; // Este es solo un ejemplo
$buscador["Google"]["query"] = "q";
$buscador["LWP"]["dominio"] = "lawebdelprogramador.com";
$buscador["LWP"]["query"] = "buscar";
?>
Entonces, cuando tienes un HTTP_REFERRER que proviene de un dominio del tipo
www.google.(cualquiercosa), te fijas entre todas las variables GET que posee el REFERRER y en la variable con nombre "q", tienes los "keywords" con los que te encontraron. Lo mismo pasaria para un Referrer que viene de "lawebdelprogramador.com" y donde el query está en la variable "buscar".
Una función que te va a dar más de una mano parseando URL's es
parse_url();