列表頁通常是站点里連結最密集的地方,也是蜘蛛從入口走到詳情頁的主干道。分頁一旦断掉,後面的内容往往只剩 Sitemap 里那一串孤立的 URL。這篇聊的是分頁路径本身:蜘蛛怎么翻頁、翻到哪儿會停、以及怎么做能让它繼續往里走。
蜘蛛翻頁靠的還是連結
搜尋引擎蜘蛛不會去猜“下一頁”背後的參數,它顺着 HTML 里能点到的連結走。所以分頁的本质是一條可枚举的連結鏈:第一頁指向第二頁,第二頁指向第三頁,逐頁推進。只要這條鏈上每一环都是可抓取的 a 标簽,蜘蛛就能一頁頁走下去。
常见的断点也集中在這一环:
- 翻頁按钮用脚本渲染或绑定点击事件,HTML 里没有真實 href,蜘蛛看不到下一頁。
- 頁面给分頁 URL 加了 noindex,或 canonical 统一指向第一頁,等于告诉蜘蛛這里不必深入。
- 頁碼只放出有限的几頁,更後面的内容只能靠 Sitemap 或站内其他入口被發現。
- 翻到某個頁碼返回空列表或软 404,蜘蛛會把這個模式记下来,之後来得更少。
分頁連結怎么寫,蜘蛛才走得顺
- 用可点的 a 标簽,href 指向完整 URL,不要只依赖点击事件。
- 頁碼可枚举:上一頁、下一頁、首頁、末頁和若干數字頁碼都给出,蜘蛛不需要靠猜就能推進。
- 每頁 URL 稳定可訪問,不要依赖 POST、會话狀態或一次性 token。
- 第一頁只保留一個地址,避免列表頁和带 page=1 的版本互相争夺同一批内容。
- 深翻頁也要能到達:内容量大时,可以按時間或分類切成多個列表,而不是一路翻到很深的頁碼。
分頁的意义不是把用戶翻到最後一頁,而是给蜘蛛一條走得通、又能走得深的通道。通道太長或太窄,後面的内容都會變得更难被發現。
翻頁深度和抓取预算的關系
分頁翻得越深,蜘蛛花在列表頁上的時間就越多。列表頁本身重复度高、正文少,如果连續几十頁都是同一批摘要,抓取预算就被消耗在價值不高的頁面上。比較稳妥的做法是控制每頁條數,让列表頁總量落在可维護的范围内,同时用分類、标簽、专题頁做横向入口,把詳情頁的發現路径分散開。
怎么確認蜘蛛真的走通了
- 看日誌里列表頁的訪問序列,是否出現頁碼连續递增的抓取记錄。
- 检查分頁 URL 的狀態碼分布,200 之外的比例有多高、集中在哪一段。
- 對比 Sitemap 中提交的詳情頁與日誌里實际被抓取的詳情頁,看差額集中在哪個区間。
- 抽查深翻頁的 HTML,確認里面的詳情連結是服務端輸出的。
服務器這头也別掉鏈子
分頁請求往往是並發較高的一類爬取:蜘蛛會同时拉取多個頁碼。如果列表查询慢、資料库压力大,就很容易出現超时或 5xx。把列表頁做缓存、给翻頁留出合理的响應余量,比事後翻日誌排查要省事。反過来,如果服務器長期不稳定,蜘蛛對這條路径的信任度下降,回訪频率也會跟着掉。
说到底,分頁路径是“入口到内容”的接力。把連結寫成蜘蛛能讀的形式、把頁碼控制在合理范围、保證服務器能稳定响應,這條通道才算真正通了。