站内搜尋几乎是标配功能:訪客輸入關鍵詞,站点返回一列结果。它對訪客有用,但對搜尋引擎来说,這類頁面既没有稳定主题,也没有固定内容,属于典型的動態结果頁。运营时如果不加区分地放開抓取,這些地址會一点点占掉本该留给正文頁的抓取時間。
站内搜尋頁常见的問题
把搜尋结果頁單獨拿出来检查,通常會看到几類現象:
- 地址随參數無限扩展:同一個搜尋功能可以拼出成千上萬個 URL,彼此内容高度重复。
- 頁面主题不固定:今天返回這一類结果,明天可能返回另一類,标题和描述随查询词變化,很难稳定表達一個主题。
- 空结果頁返回正常狀態:搜尋词没有匹配内容时,頁面依然返回 200,看起来像正常頁面,實际没有有效信息,接近软 404。
- 站内入口互相串联:搜尋结果里带上“相關搜尋”或篩選項,頁面之間互相連結,數量越滚越多。
先分清:搜尋功能要,搜尋頁不一定要
需要明确的是,受影响的只是“搜尋结果頁能不能被抓取”,而不是搜尋功能本身。搜尋框、搜尋接口、结果展示都可以保留,訪客体驗不受影响。真正要决定的是:這些由輸入触發的動態地址,要不要進入搜尋引擎的索引。多數内容型站点的答案是不需要。
常见的處理方式與取舍
robots.txt 屏蔽
在 robots.txt 里禁止抓取搜尋路径,是最省事的一種做法。好處是蜘蛛不會在搜尋頁上消耗時間;代價是蜘蛛看不到頁面里的 noindex 指令,如果站内其他地方有連結指向這些地址,仍可能被索引成没有描述的條目。
meta robots noindex
在搜尋结果模板里輸出 noindex,允许抓取但明确要求不索引。這種方式更可控,配合 follow 還能让蜘蛛從搜尋頁繼續走到正文頁。缺点是蜘蛛仍會訪問這些地址,抓取次數並不會因此减少。
保留少量可索引的固定頁面
如果某些搜尋词的组合确實有稳定需求,可以考虑把它們做成固定的专题頁或聚合頁,單獨设定标题、描述和正文,再正常開放抓取。這里的關键是“固定”,而不是让參數随时生成新頁面。
自查清單
- 確認站内搜尋的 URL 结构,看看结果是否能被參數無限拼接。
- 检查搜尋结果模板是否輸出了 noindex,或者是否有對應的 robots.txt 規則。
- 检查站内導航、面包屑、正文内鏈是否直接指向搜尋结果頁,如果有,考虑換成固定栏目頁。
- 確認搜尋结果頁没有出現在 XML 站点地图里。
- 检查空结果頁的狀態碼和文案,给出清晰的“没有找到”提示和替代入口。
- 检查排序、篩選、翻頁參數是否产生了大量近似地址。
- 用訪問日誌观察這些地址被訪問的频率,判断是否需要進一步收口。
- 改版或更換搜尋组件後,重新核對以上几項,模板很容易被覆盖。
把搜尋日誌用起来
處理完抓取問题,搜尋日誌本身還有另一层價值:它记錄的是訪客真實輸入過的词。哪些词反复出現却没有匹配内容,往往就是内容缺口;哪些词搜出来一堆無關结果,說明站内标簽或分類需要整理。
訪客愿意自己敲進搜尋框的词,是最直接的需求表達。與其凭空猜選题,不如定期翻一遍搜尋日誌,把高频、無结果的词整理進選题池。
小结
站内搜尋结果頁不是坏東西,只是它的形態不太适合作為被索引的頁面。把抓取邊界划清楚,保留搜尋功能,把有稳定需求的词轉成固定頁面,既不浪費蜘蛛的訪問次數,也不影响訪客使用。