很多站点為了方便用戶,會在頁头或侧栏放一個站内搜尋框。功能本身没問题,但它生成的搜尋结果頁(通常是 /search?q=xxx 這類 URL)经常在不知不觉中被蜘蛛抓走,甚至進入索引。等到索引报告里出現一批带參數的頁面,才發現這些低價值 URL 已经在和真正的内容頁争位置。
站内搜尋结果頁為什么容易被收錄
這類頁面通常具备几個让蜘蛛愿意持續抓的特征:
- 入口多:搜尋框出現在几乎每個頁面上,结果頁之間還可能互相連結,形成數量近乎無限的 URL 空間。
- URL 可訪問:不需要登入,没有 robots 限制,返回 200 狀態碼和完整 HTML。
- 内容看着不一样:不同關鍵詞的结果頁文字组合不同,不容易被直接判定為重复模板。
- 被顺带提交:有些采集或生成工具會把抓到的 URL 一並塞進 sitemap 或提交接口。
被收錄之後,實际影响有哪些
- 索引膨胀:收錄量數字好看,但真正有业務價值的頁面被大量结果頁盖住。
- 占用抓取額度:蜘蛛在這些頁面上花時間,留给新頁面和更新頁面的份額就少。
- 产生空结果頁:搜尋無结果的頁面往往只有一句提示语加空白列表,属于典型的薄内容。
- 拉低整站质量判断:低價值頁面占比過高,對整站评估没有好處。
先確認:是抓取了,還是真的進了索引
這是两件事。日誌里出現蜘蛛訪問 /search?q=...,只能說明它抓過;是否進入索引,要另外核對索引报告或對具体 URL 做查询驗證。常见的誤判是看到日誌里有訪問量,就認為已经被收錄並開始處理,结果動作做在了不必要的地方。
被 robots.txt 挡住的 URL,仍可能因為没有 noindex 而留在索引里,标题和摘要由外鏈锚文本拼出。所以挡抓取和移出索引不是同一個動作。
收敛顺序:從入口控制到頁面級處理
- 先看入口:搜尋结果頁的連結通常是站内自動生成的,先判断是否真的需要让蜘蛛顺着走。若只是给用戶用,可以减少這些連結被發現和跟随的机會。
- 頁面級加 noindex:让蜘蛛仍能抓到頁面並讀到 noindex,是移出索引最直接的路径。前提是這個标簽能被讀到。
- 再考虑 robots:只有在頁面不再需要出現在索引里、且不希望繼續被抓时才用 Disallow。顺序反了,noindex 讀不到,移除會更慢。
- 清理 sitemap 與提交列表:確認 sitemap 中没有混入這類 URL,采集生成的提交清單也同步清理。
- 處理歷史存量:已收錄的頁面不會立刻消失,要等重新抓取後狀態才會更新。參數規范或 canonical 對這類頁面有一定作用,但不如從入口和頁面級處理直接。
處理之後看什么
不要只看一次查询结果就下结论。可以按周观察索引报告中该 URL 模式的數量變化,同时對比日誌里蜘蛛對這些路径的訪問频次是否下降。如果數量長時間不動,先確認 noindex 是否真的被讀到,再检查是否還有其他入口在持續产生連結。
站内搜尋是必要的功能,問题不在功能本身,而在于這些頁面是否被当成了可收錄内容来對待。把入口、标簽和提交三個环节理顺,通常比事後逐條清理省力得多。