站点运营

站点运营:站内搜尋頁自查,別让搜尋结果的空頁面耗光抓取预算

站内搜尋是给訪客用的工具,却常被蜘蛛当成入口,把大量带查询參數的低價值地址抓走。本文從返回狀態、robots.txt 規則、noindex、空结果處理、站点地图等角度,整理一份站内搜尋頁自查清單,並說明如何用日誌驗證調整是否生效。

站点运营

站点运营:站内搜尋頁自查,別让搜尋结果的空頁面耗光抓取预算

站内搜尋本来是方便訪客找内容的功能,但如果没做限制,它也可能變成蜘蛛的迷宫。訪客搜一次就關掉,蜘蛛却會把每個搜尋结果地址都当成一個獨立頁面,一路抓下去。

為什么站内搜尋頁容易被抓

大多數站内搜尋结果是動態生成的,地址形如 /search?q=xxx。蜘蛛顺着頁面上的搜尋框、热门搜尋词、搜尋结果里的相關推荐,很容易拼出成千上萬個组合。這些頁面大多内容重复、價值低,却和正常内容抢抓取预算。

自查清單

  • 搜尋结果頁是否可抓取:用不带登入態的浏览器打開 /search?q=測試,看返回狀態碼和頁面内容。
  • 结果為空时返回什么:如果搜不到内容仍返回 200 和一堆推荐,等于给蜘蛛發了一張空头门票。
  • 是否有 robots.txt 規則:確認是否已屏蔽搜尋路径,且没有誤伤正常栏目。
  • 搜尋结果頁是否带 canonical:检查它是否指向自己,而不是指向首頁或某個栏目頁。
  • 站内搜尋入口是否全站可见:頁脚、侧栏的热门搜尋词、搜尋歷史連結,都是蜘蛛的入口。
  • 搜尋结果是否進了 sitemap:站点地图里不该出現带查询參數的搜尋地址。

別忽略搜尋建议接口

輸入框的自動补全接口往往返回 JSON 或跳轉連結,如果它也接受 GET 請求並生成頁面,同样會留下抓取痕迹。检查一下這個接口有没有暴露给未登入訪客。

几種常见處理方式

  1. 用 robots.txt 屏蔽搜尋路径,例如 Disallow: /search,這是最简單的一层。
  2. 搜尋结果頁加 noindex,避免已抓取的頁面進入索引。
  3. 把空结果和無效關鍵詞直接返回 404 或 410,而不是 200。
  4. 站内搜尋改為 POST 提交或前端渲染,减少可被抓取的地址。
  5. 如果确實希望部分搜尋结果可被索引,限制在少數固定入口,比如专题聚合頁。

注意別屏蔽過头

屏蔽規則寫得太宽,可能把 /search-engine-optimization 這類正常文章也一起挡掉。上线前用抓取工具或日誌驗證几條典型地址。

看日誌確認效果

規則調整後,隔几天翻一下服務器日誌,看搜尋引擎蜘蛛還在不在訪問 /search 路径,以及訪問频率是否下降。如果量没變化,可能是缓存、CDN 或者舊連結還在引流。

站内搜尋是给訪客用的工具,不是给蜘蛛准备的目錄。把它管好,抓取预算才能留给真正的内容頁。

這件事不需要复杂改造,通常一次規則調整加一次日誌复查就能收敛。關键是別让它一直躺在那里没人管。