使用referrer javascript从google获取查询参数

use*_*780 2 javascript

是否可以从google搜索中获取查询参数?

即,如果有人用谷歌搜索自行车,则网址将变为:

https://www.google.es/search?q=bicycles......
Run Code Online (Sandbox Code Playgroud)

如果您随后进入搜索结果并且有人点击您的页面,您将无法看到带有 document.referrer 的查询参数,它只会显示

 https://www.google.es/
Run Code Online (Sandbox Code Playgroud)

有没有办法知道访问者在访问您的网站之前搜索了什么?

Cli*_*ton 5

回复较晚,但我最近一直在做一些研究,并认为最终访问此页面的其他 stackoverflow 访问者可能会对这些信息感兴趣。

在 2016 年之前,当访问者使用服务器变量通过自然搜索访问您的网站时,您可以使用 PHP 从推荐数据中获取 url 参数:

function get_search_query(){
    $query = $_SERVER['QUERY_STRING'];
    return (strlen($query)? $query: 'none');
}
Run Code Online (Sandbox Code Playgroud)

或者

function get_search_query() {
    $query = false;
    $referrer = $_SERVER['HTTP_REFERER'];
    if (!empty($referrer)) {
        //Parse the referrer URL
        $parts_url = parse_url($referrer);
        // Check if a query string exists
        $query = isset($parts_url['query']) ? $parts_url['query'] : '';
        return (strlen($query)? $query: false);
    }
    return $query;
}
Run Code Online (Sandbox Code Playgroud)

然而,谷歌和其他搜索引擎从此无法从有机搜索中查看查询参数,并且任何类似上述的脚本都会返回空白查询字符串。无论您是否登录 Google,都是如此。

这是不幸的,因为这会删除有价值的信息,例如用于查找您的网站的关键字。这些信息仍然可以在 Google Search Console 中找到,但这提供了 Google 对您应该看到的内容的解释,并且不像访问者在有机搜索后点击页面时立即获取信息那么直接。

我不知道有什么方法仍然可以获得有机查询参数。