Посетитель моего сайта приходит из поисковой системы? Каковы были их условия поиска?
Я хотел бы по-разному отображать свою страницу для посетителя в зависимости от того, пришли они из поисковой системы или нет. Я думаю, что я обнаруживаю рефералов в поисковых системах? Я также хотел бы узнать, какие поисковые термины использовались, чтобы попасть на мой сайт.
Мое решение пока таково:
1) Фильтр по ссылкам HTTP-запросов, которые содержат общие URL-адреса поисковых систем, например http://www.google.com/search, http://www.bing.com/search или http://search.yahoo.com/search
2) Проанализируйте параметр строки запроса реферера для поисковых терминов, например, "q=search+term +for+my+website+go+here"
Я считаю, что это не самое надежное решение, потому что оно пропускает менее известные поисковые системы, и каждая поисковая система может иметь собственный параметр строки запроса для поисковых терминов. Например, параметры поиска Google и Bing оба - "q", а Yahoo - "p", насколько я могу судить. А как насчет специальных операторов, таких как +, - и т. Д.?
Есть ли более общий способ сделать это? Или есть библиотека, которая поможет мне справиться с большим количеством поисковых систем? Я работаю с Java, работающим на Tomcat, но приветствуются идеи любого языка и настройки сервера.
3 ответа
Посмотрите здесь: http://www.gdargaud.net/Hack/Searches.html
и здесь: http://search.cpan.org/perldoc?URI::ParseSearchString
2 немного разных подхода, но они охватывают гораздо более широкий круг поисковых систем и их строк реферера.
В случае PHP вы запрашиваете $_REQUEST["HTTP_REFERRER"] и анализируете строку поиска с некоторыми pregs или eregs.
Ваш подход - это лучшее, что вы можете сделать. Я запустил подобный модуль на Drupal,
http://drupal.org/project/search_engine_referers
Если вы посмотрите на код, он делает именно то, что вы сказали. Я не думаю, что у них есть версия, поддерживающая Bing.com.
Учитывая то, куда идет поисковая доля, вы получаете более 90% запросов, если справитесь с Google (AOL использует Google), Bing и Yahoo. Вам действительно нужно беспокоиться о других поисковых сайтах? Если вы находитесь в Китае, как я, добавьте baidu.com в список.
Есть странные маленькие поисковые сайты, с которыми вы просто не можете справиться. Они меняют свои параметры один раз. Некоторые даже используют POST для отправки запроса, поэтому он не доступен в реферере.