列表頁和分頁是站点里最容易被忽略的一類頁面。它們數量多、地址生成規則简單,一旦參數没管住,很容易在一次改版或一次篩選功能上线之後,悄悄多出成千上萬個地址。這些地址里的内容往往高度重复,却同样會消耗蜘蛛的抓取額度。
先算清楚多出来的地址有多少
自查的第一步不是改代碼,而是把數量摆出来。取一個内容較多的栏目,看看它現在能生成多少可訪問地址:
- 基础分頁:如果有 200 頁内容,至少就是 200 個地址;
- 排序參數:按時間、按热度、按评论各一份,數量立刻翻几倍;
- 篩選參數:分類、标簽、地区、價格区間任意组合,數量按乘法增長;
- 站内搜尋頁:每個搜尋词一個地址,而且用戶和外部連結都可能留下入口。
把這些加在一起,再和站点的實际内容量對比,就能判断抓取額度是不是被稀释了。
分頁本身的自查要点
- 分頁地址尽量使用固定路径形式,例如 /list/page/2/,而不是一串带 session、時間戳或追踪參數的地址。
- 每一頁都要有可被直接訪問的連結,不要只靠“点击加载更多”這類纯脚本交互来翻頁。
- 分頁頁面的标题和描述可以带上頁碼做区分,但不必為每一頁單獨堆關鍵詞。
- 最後一頁之後不要返回 200 的空頁面,空頁應返回 404 或 410,或者干脆不生成連結。
- 一般只需要把列表首頁提交到站点地图,後續分頁靠頁面上的連結被發現即可。
- 上一頁、下一頁用普通連結表達就够了,不必依赖早已不被主流搜尋引擎使用的 rel=prev/next 标记。
站内搜尋與篩選參數最容易失控
站内搜尋结果頁通常没有獨立價值:它只是把已有内容重新排列一遍,而且地址會随着用戶輸入無限增長。比較稳妥的處理方式是给這類頁面加上 noindex,同时在 robots.txt 中屏蔽搜尋路径,避免蜘蛛把時間花在無意义的组合上。
篩選參數則要区別對待。真正有搜尋需求、内容也足够丰富的篩選组合,可以保留並让它可被索引;纯粹為了切換视图、排序方式而存在的參數,最好统一收敛到主列表頁,或者用 canonical 指向不带參數的地址。
判断标准很简單:這個地址如果被用戶直接打開,看到的内容和主列表頁有多大差別?差別很小,就没有必要让它單獨存在。
列表頁的内容质量同样要過關
分頁數量合理,並不代表列表頁就有價值。可以检查几点:
- 列表是否至少展示了标题、摘要、時間等基础信息,而不是只有缩略图和按钮;
- 翻到很深的分頁时,是否仍然是有效内容,而不是空壳;
- 栏目内容不足时,是否過早地暴露了大量空分頁;
- 列表頁是否有清晰入口,以及回到上一級的路径。
最後用日誌驗證
調整之後,隔一段時間回看服務器日誌:蜘蛛訪問分頁和參數地址的比例是否下降,核心内容頁的抓取次數是否上升。如果没有明顯變化,可以再检查是不是還有其它入口在持續暴露這些地址,例如舊版頁面、RSS 輸出、站内推荐模块或外部連結。
分頁和列表頁管理的目标不是把所有地址都砍掉,而是让每一類地址都有明确的存在理由。