This may not be a good idea, but it works for us.

I wanted a easy way of finding out where our signups came from, so I just designed a small php script that inserts the following into our mysql database each time a unique IP comes to our website.

$time = time();
$ip = $_SERVER['REMOTE_ADDR'];
$page = $_SERVER['SCRIPT_NAME'];
$referer = $_SERVER['HTTP_REFERER'];

The insert code is on all of our main pages so I have a pretty good idea of where all of the people are comming from. I also run another table in the database with postback (signup) information from ccbill, and that way I can match up the signup IPs from referers, and get a nice output of where our signups are comming from.

You should see entries like:

http://www.google.com/search?hl=en&q=twink+hardcore

and you will be able to see what keywords are bringing in the best leads. You can then sort based on website URLs. The downside is that your tables grow in size rather fast if you get alot of trafffic, but can be rotated.