如何确定搜索查询转发用户到我的网站?

时间:2010-02-13 10:40:04

标签: php javascript ruby search-engine

问候,

我正在尝试找出用于将人们转发到我的网站的查询。如果有人能告诉我我应该调查什么api,我会很感激。我确信这可以使用javascript以及ruby和php,所以任何技术都可以。

为了学习,我不介意知道我应该为所有三个人使用:)

5 个答案:

答案 0 :(得分:26)

使用搜索引擎超过5年,我可以告诉你,没有标准的方法来检索查询值。

正如其他答案已经告诉你的那样,第一步是检查HTTP_REFERER标题。假设您正在使用Rails,您可以从请求中获取

request.referrer

否则,您需要以其他方式从请求标头中提取它。

一旦你有推荐人,那么你就有三种主要可能性:

  1. 变量为空。对不起,你什么也做不了
  2. 变量不为空,它是搜索引擎
  3. 变量不为空,它不是搜索引擎
  4. 第一种选择很简单。您想知道的是推荐人是否是搜索引擎。如果是这样,那么您需要提取查询。

    最常见的方法是使用清单。核对表通常是键/值列表,其中键是搜索引擎域,值是包含查询值的查询字符串参数的名称。

    google.com,q
    yahoo.com,p
    ...
    

    这与Google Analytics使用的方法相同。来自ga.js文件

    g.T=l("daum:q,eniro:search_word,naver:query,images.google:q,google:q,yahoo:p,msn:q,bing:q,aol:query,aol:encquery,lycos:query,ask:q,altavista:q,netscape:query,cnn:query,about:terms,mamma:query,alltheweb:q,voila:rdata,virgilio:qs,live:q,baidu:wd,alice:qs,yandex:text,najdi:q,aol:q,mama:query,seznam:q,search:q,wp:szukaj,onet:qt,szukacz:q,yam:k,pchome:q,kvasir:q,sesam:q,ozu:q,terra:query,mynet:q,ekolay:q,rambler:words");
    

    第一个主机同时匹配键和值,首先获胜。

答案 1 :(得分:6)

检查访问者的HTTP请求标头Referer(PHP中的$_SERVER['HTTP_REFERER'])。在所有情况下,这将为您提供访问者来自的页面。如果它是搜索引擎页面,则需要解析引用查询字符串并从中解析数据(请注意查询字符串格式可能会更改)。

这比谷歌分析工作更多,而我给出的简单示例并没有给你带来那么多数据;但如果你不熟悉谷歌为你做数据收集,可以这样做。

答案 2 :(得分:3)

在ruby中,您可以通过

获取引荐来源
request.referrer

您的视图和控制器中提供了请求参数。如果您想查看request上提供的其他选项,请添加

<%= request.inspect %>

在您的一个视图中访问该页面以查看它们。

答案 3 :(得分:2)

我认为这对你来说非常有用。它详细解释了如何完成您要做的事情:

http://www.alistapart.com/articles/searchhighlight/

答案 4 :(得分:1)

试试Google Analytics。它将为您提供大量详细信息的搜索引擎,搜索条件和引用网站。