首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 相關知識

PHP 獲取搜索引擎來訪關鍵詞完整解析(百度、Google、360、搜狗、搜搜)

     編輯:PHP 相關知識

分析用戶從搜索引擎點擊進入網站時攜帶的關鍵詞,是 SEO 優化、內容推薦、用戶畫像的重要數據來源。本文提供一個通用的 PHP 函數,支援主流中文搜索引擎的 Referer 解析。

核心解析函數

<?php
function search_word_from() {
    $referer = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : '';
    
    // 百度
    if (strstr($referer, 'baidu.com')) {
        preg_match("|baidu.+wo?r?d=([^&]*)|is", $referer, $tmp);
        $keyword = urldecode($tmp[1]);
        $from = 'baidu';
    }
    // Google (含 .com/.cn)
    elseif (strstr($referer, 'google.com') || strstr($referer, 'google.cn')) {
        preg_match("|google.+q=([^&]*)|is", $referer, $tmp);
        $keyword = urldecode($tmp[1]);
        $from = 'google';
    }
    // 360 搜索 (so.com)
    elseif (strstr($referer, 'so.com')) {
        preg_match("|so.+q=([^&]*)|is", $referer, $tmp);
        $keyword = urldecode($tmp[1]);
        $from = '360';
    }
    // 搜狗
    elseif (strstr($referer, 'sogou.com')) {
        preg_match("|sogou.com.+query=([^&]*)|is", $referer, $tmp);
        $keyword = urldecode($tmp[1]);
        $from = 'sogou';
    }
    // 搜搜
    elseif (strstr($referer, 'soso.com')) {
        preg_match("|soso.com.+w=([^&]*)|is", $referer, $tmp);
        $keyword = urldecode($tmp[1]);
        $from = 'soso';
    }
    else {
        $keyword = '';
        $from = '';
    }
    
    return array('keyword' => $keyword, 'from' => $from);
}

// 測試調用
$word = search_word_from();
if (!empty($word['keyword'])) {
    echo '關鍵字:' . $word['keyword'] . ' 來自:' . $word['from'];
}
?>

技術原理解析

  1. HTTP Referer 機制:瀏覽器請求時自帶 Referer 頭,包含來源頁面 URL
  2. 搜索引擎 URL 參數規律:
    • 百度:wd=關鍵詞 或 word=關鍵詞
    • Google:q=關鍵詞
    • 360/搜狗/搜搜:各有特定參數名(q、query、w)
  3. 正則提取 + URL 解碼:提取參數值後用 urldecode() 還原中文

現實限制與應對策略

限制因素影響應對方案
HTTPS 加密搜索Referer 不傳遞或脫敏接入搜索引擎站長平台 API 獲取關鍵詞報表
用戶隱私模式/插件Referer 被清空結合站內搜索、落地頁參數追蹤
移動端 App 內瀏覽器Referer 格式不標準適配各大 App 的 User-Agent 與 Referer 特徵
搜索引擎改版參數名/域名變更建立可配置的規則庫,定期維護更新

進階擴展建議

  • 將解析規則提取為配置文件(JSON/YAML),新增引擎無需改代碼
  • 增加關鍵詞長度過濾、停用詞過濾、編碼異常處理
  • 結合 GeoIP 庫分析地域分布,構建關鍵詞熱力圖
  • 對接百度站長平台/Google Search Console API 獲取更完整數據

雖然 Referer 解析在全站 HTTPS 時代效果遞減,但作為輕量級、零成本的補充分析手段,仍具備實際價值。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved