列表翻到第 2 頁、第 3 頁,或者用戶不断下拉的無限滚動頁面,都會牵扯出一批 URL。它們有的有獨立检索價值,有的只是同一個列表的另一種呈現。判断标准不是“能不能收錄”,而是“這個 URL 被搜到之後,對用戶有没有意义”。
翻頁 URL 的三個常见来源
- 传统分頁:/list?page=2、/list/page/2/ 這類带頁碼的地址。
- 無限滚動:URL 保持不動,内容靠脚本往下追加。
- “加载更多”按钮:点击後請求接口,把结果拼接到目前頁。
第一種是蜘蛛能直接顺着連結發現的獨立 URL;後两種在預設狀態下,新内容常常藏在脚本或接口里,蜘蛛看不到。
第 2 頁之後的内容有没有獨立價值
可以先問一個問题:這頁上的條目,能不能在別的地方被搜到?
- 商品列表、文章列表:每個條目都有自己的詳情頁,第 2 頁更多是導航作用,检索價值偏低。
- 论坛楼层、评论区:内容只存在于翻頁里,没有獨立地址,那它本身就是有價值的。
- 站内搜尋结果頁:由查询词動態生成,一般不适合放開收錄。
如果條目都有獨立的詳情頁,把第 2 頁之後的 URL 全部放開,通常是让索引里多了一批薄内容;關掉之後,用戶依然能通過詳情頁和内鏈找到東西。
而有一類站点绕不開分頁:内容本身没有獨立詳情頁,比如论坛楼层、長评论。這时翻頁就是内容唯一的 URL,放開收錄是合理的,但前提是翻頁連結可抓取,並且不出現空頁和重复頁。
三種形態的處理顺序
传统分頁
第 1 頁保持可抓取,後面的頁碼按上面的價值判断决定去留。不论收還是不收,都要保證每個條目在站内有稳定入口,不要让它只能靠一頁頁翻才能到達。
無限滚動
無限滚動的主要問题不是收錄多少,而是蜘蛛根本触發不了加载。常见的兜底办法是补一套分頁 URL:让脚本追加的内容同时存在一份可訪問的分頁入口。入口可以放得低調,但必须是真實可点的連結,而不是靠滚動事件生成。
加载更多
先看按钮是不是真正的連結。用 a 标簽指向一個带參數的 URL,比纯 JS 事件更容易被發現。接口返回的 JSON 本身一般不會被当成頁面收錄,但里面那些條目的 URL 能不能被蜘蛛拿到,取决于它們在別處還有没有入口。
可抓取性自查顺序
- 禁用 JavaScript 後打開頁面,看還能顯示几條内容。
- 查看網頁源碼,確認條目連結出現在 HTML 里,而不是渲染之後才有。
- 检查翻頁連結是否指向真實 URL,而不是空 href 或 javascript 伪协议。
- 抽查第 2、3 頁的狀態,分清是没被抓到,還是抓到了但没進索引。
- 確認核心條目有獨立 URL,並且從列表頁、詳情頁、站点地图中至少两條路径可達。
容易被忽略的變体問题
翻頁地址很容易被參數撑成很多形式:?page=2、?p=2,再加上排序參數就更多了。這些變体如果全部放開,同一批内容會出現多個入口。可以用規范标簽指回不带排序參數的分頁地址,或者干脆只保留一種翻頁形式。
翻頁處理的目标是让蜘蛛把有價值的條目發現出来,而不是让每一頁都進索引。收錄只是進入索引,能不能被搜到、排在哪里是另一回事,不必把翻頁數量当成收錄成绩。