站点做大了以後,经常出現一種情况:URL 數量在涨,索引量却停在原地,甚至慢慢往下走。原因通常不是蜘蛛不来,而是站点自己没有把地址分清楚——哪些地址是希望被搜尋到的,哪些只需要被爬到、用来支撑導航和抓取鏈路就够了。
索引位置是有限资源,不是越多越好
索引里的每一個 URL,都意味着一份被评估過的内容。搜尋引擎愿意為它保留位置,前提是這個地址在被检索到的时候,有獨立且稳定的價值。把大量低價值地址推進索引,並不會让整体表現變好,反而會让站点内部各层級之間的差异變得模糊,也让真正重要的頁面更难被识別出来。
所以更實际的做法不是問“怎么让更多頁面被收錄”,而是先問“這個地址被搜到的时候,用戶是否希望直接落到這里”。
把站内地址分成三類看
需要進索引的頁面
- 詳情頁、文章頁、产品頁:有獨立内容主体,能對應一個具体需求;
- 栏目頁、专题頁:承担主题聚合,本身有稳定的内容列表;
- 必要的說明類頁面:關于我們、联系方式、售後政策等,内容稳定且可能被搜到。
只需要被爬到的頁面
- 分頁、篩選、排序參數頁:内容由列表派生,组合數量容易失控;
- 站内搜尋结果頁:内容随查询變化,不具备稳定主体;
- 登入、註冊、购物车、结算等流程頁:訪問路径有前置條件;
- 用戶中心、草稿、预览地址:只對特定人有意义。
這類地址不是要彻底封死,而是让它們可以被爬到、可以传递連結,但不進入索引。
邊界模糊的頁面
标簽頁、多語言版本、多地区版本、弱聚合頁通常属于這一類。判断方式很简單:把這個頁面的主体内容單獨拿出来,它是否還能回答一個具体問题,並且和已有頁面有明顯区別。如果答案是否定的,它更适合作為抓取入口存在,而不是索引對象。
noindex、robots.txt 與 canonical 各管一段
這三個工具经常被混着用,但它們解决的問题並不相同:
- noindex:頁面被抓取之後,不進入索引;
- robots.txt:阻止抓取,但被外鏈指向的 URL 仍可能出現在索引里,只是没有内容;
- canonical:同一份内容存在多個地址时,指向希望被保留的那一個。
需要注意的是:如果某個 URL 被 robots.txt 禁止抓取,頁面里寫的 noindex 也就不會被讀到。想让它登出索引,通常要先允许抓取、再让标簽生效。
站内連結决定實际優先級
蜘蛛主要依靠連結来分配抓取注意力。一個入口放在首頁或栏目首屏的頁面,和埋在三四层之後的頁面,被處理的频率往往不同。對不打算收錄的地址,把它從導航、面包屑、正文推荐位里撤下来,效果通常比只加一個 noindex 更直接。
反過来,如果某個頁面确實重要却迟迟没動静,先检查它有几個站内入口、入口在什么位置,比反复提交地址更有意义。
一套可以定期执行的检查
- 按模板把站内 URL 分组:詳情頁、列表頁、标簽頁、參數頁、功能頁;
- 從抓取日誌里統計每一组的抓取量,看占全部抓取的比例;
- 對照索引狀態,找出索引比例明顯偏低的分组;
- 区分两種情况:本来就不该被索引,還是應该被索引却没進去;
- 前者做收敛(内鏈、标簽、參數處理),後者回头看内容主体和站内入口。
收錄這件事,最终要落到“让该被搜到的地址被搜到”。先把地址類型分清,再谈數量,排查起来會清晰很多。