常见問题

蜘蛛池入口頁按 UA 给搜尋蜘蛛單獨輸出連結,會带来哪些風險

有人在蜘蛛池入口頁里按 User-Agent 返回不同内容:给搜尋蜘蛛一份带連結的頁面,给普通訪客另一份。本文說明這種做法容易被判定為隐藏内容的原因、几種常见變体各自的問题,以及對比两次返回内容、查抓取日誌和已抓取版本等排查方法,並给出更稳妥的入口頁處理思路。

常见問题

蜘蛛池入口頁按 UA 给搜尋蜘蛛單獨輸出連結,會带来哪些風險

先说清楚“按 UA 單獨輸出”是什么意思

所谓按 UA 輸出不同内容,就是入口頁在返回 HTML 之前先讀 User-Agent 請求头:如果看起来像搜尋蜘蛛,就返回一份带目标連結的頁面;如果是普通浏览器或未知爬虫,就返回另一份頁面,比如空頁、跳轉頁、驗證頁,或者干脆把連結去掉。做蜘蛛池的人常用這種方式把連結“藏”起来,希望不影响用戶侧的观感,同时让搜尋蜘蛛發現目标 URL。

但這里有一個基本前提:搜尋引擎看到的内容和用戶看到的内容,需要是同一份。這條要求在很多搜尋质量指南里都寫得很清楚,不是某一個具体算法的問题。

搜尋蜘蛛能不能察觉自己被“特殊對待”

單次請求层面,蜘蛛确實拿不到普通用戶看到的那一版内容,它只能看到你给它的那一版。所以從一次抓取的视角看,這件事不會立刻暴露。

但在長期、批量、可對比的维度上,問题會慢慢顯現:

  • 同一個 URL,蜘蛛抓到的版本和其他来源(第三方抓取、缓存快照、用戶反馈、站長後台的“已抓取頁面”)不一致;
  • 同一批入口頁全部對同一 UA 段返回同一類模板,特征過于整齐;
  • 只给蜘蛛的版本带連結,不带蜘蛛的版本内容极少,頁面本身没有實际信息量。

這些线索單獨看都不算什么,合在一起,就容易被当作作弊型頁面處理,而不是“没做好”。

几種常见做法各自的問题

只给搜尋蜘蛛輸出連結(隐藏連結)

這是最典型的一種。用戶打開入口頁什么都看不到,或者只看到一段無關文字,而對蜘蛛 UA 直接吐出一大串目标連結。這類頁面几乎没有任何獨立價值,一旦被抽查,被判為隐藏内容或纯連結頁面的概率很高,入口頁本身可能被降權、除名,目标 URL 也可能被牵连。

對普通用戶 302 跳到別處

入口頁對用戶跳轉、對蜘蛛不跳轉。搜尋蜘蛛對 302 的處理是跟着去目标地址看一眼,但不一定把權重和索引都轉移過去,同时它也會记住這個跳轉關系。如果入口頁向甲站跳、對蜘蛛又輸出乙站連結,前後不一致,這條鏈路的意义就很有限了。

直接屏蔽非搜尋蜘蛛

用 UA 或 IP 段把普通訪客全部 403,只放行蜘蛛。這種做法看起来“干净”,實际會带来两個問题:一是 UA 可以伪造,誤封真實用戶和正常工具是常態;二是蜘蛛的来源 IP 段會變,靠 IP 白名單维護成本越来越高。更重要的是,一個正常訪客永遠打不開的頁面,本身就不具备被稳定收錄的條件。

排查时可以按這几個点看

  1. 對比两份返回内容。用普通浏览器 UA 和蜘蛛 UA 各請求一次,把 HTML 存下来做對比,看差异是“正常适配”(移動端适配、压缩格式)還是“連結有無”這種结构性差异。
  2. 看入口頁的正文占比。除了連結列表,頁面是否有标题、說明、栏目结构。只有連結的頁面,即使不做 UA 判断,也很难長期稳定。
  3. 看日誌中的抓取结果。蜘蛛拿到 200 之後,是否繼續抓了頁面里的目标連結?如果入口頁被抓、目标 URL 長期没有抓取记錄,多半是入口頁的價值判断没過關,而不是 UA 的問题。
  4. 检查站長的“已抓取”版本。後台看到的渲染内容和你给蜘蛛的内容是否一致,是判断有没有被区別對待的最直接證據。
  5. 確認有没有誤伤。如果用了 UA 屏蔽,先確認正常用戶、常见浏览器、企业防火墙代理有没有被一起挡掉。

更稳妥的處理方式

把入口頁当成一個普通頁面来做:内容對所有人一致,連結用标准的 <a href> 輸出,頁面本身有可讀的标题和少量說明文字。需要控制被抓取的范围,用 robots.txt 或 meta robots 明确表達,而不是靠 UA 判断来“绕開會看到的人”。

入口頁的职责是让 URL 被稳定地發現,不是和搜尋引擎玩“你只能看到這一版”。能長期跑下去的入口頁,通常是给所有人看的正常頁面。

回到最初的問题:按 UA 给搜尋蜘蛛單獨輸出連結,短期可能看不到什么反應,但它把頁面的可信度建立在“對方不细看”這個假设上。這個假设一旦被打破,损失的不只是一個入口頁。與其研究怎么区分 UA,不如把入口頁本身做得像一個真實存在的頁面——這部分收益更稳定,也更好排查。