把几十上百條目标 URL 平铺在入口頁,頁面會很長,也不好维護,所以不少站点會把 URL 做成「第 1 頁 / 第 2 頁 / …」的分頁列表。問题随之而来:搜尋蜘蛛是只抓第一頁,還是會一路往後翻?
先理解:分頁本身不是問题,連結是否可達才是
搜尋蜘蛛發現 URL,靠的是顺着頁面上的 a 标簽一层层跟。分頁只是把連結從「一張長列表」拆成「多張短列表」,只要頁碼連結是真實的 HTML 連結,蜘蛛就有机會沿着它繼續走。真正决定它能翻多遠的,是抓取预算、頁面深度和這些分頁地址本身的质量。
搜尋蜘蛛翻頁通常走三條路
1. 顺着「下一頁」或頁碼連結往下走
這是最直接的方式。第 1 頁里有指向第 2 頁的連結,第 2 頁里有指向第 3 頁的連結,蜘蛛就能依次跟進。注意如果「下一頁」只是一個按钮,点击靠 JS 拼接參數,蜘蛛在 HTML 层面可能看不到任何連結。
2. 從分頁地址本身進入
如果 list?page=3 這類地址被抓過,蜘蛛可以直接從這一頁開始解析里面的連結,不必從第 1 頁開始翻。前提是這個地址曾经被任何地方(sitemap、其他頁面、歷史抓取记錄)暴露過。
3. 通過 sitemap 一次性看到全部 URL
把真正想被發現的地址寫進 sitemap,往往比分頁翻頁更可靠——蜘蛛不必逐頁走過去。分頁列表更适合做「顺带發現」,不适合当作唯一的發現渠道。
分頁會拖慢 URL 被發現的速度吗
會,但影响通常有限。越靠後的分頁,被訪問的频率一般越低:蜘蛛會優先抓列表前几頁,抓取間隔也會拉長。如果某個目标 URL 只出現在第 8 頁,它被發現的時間通常晚于出現在第 1 頁的同一條連結。這不是「翻不到」,而是「翻得慢」。
入口頁做成分頁列表时的實操建议
- 重要的 URL 放前面。把最希望被發現的地址放在第 1 頁靠上的位置,越靠後越次要。
- 頁碼必须是可抓的連結。用真實的 a 标簽,href 直接寫分頁地址,不要只做成 JS 点击事件。
- 控制總頁數和每頁條數。十几頁、每頁几十條連結,比几十頁、每頁十几條更容易被走完。没有必要的分頁,不如直接删掉。
- 分頁頁自身別乱设 noindex。如果不想让分頁頁進入索引,可以用 noindex 配合 follow 让它仍被跟進連結,但要清楚不同搜尋引擎對 follow 的處理不完全一致。
- 分頁地址保持稳定。頁碼參數一會儿是 page=2,一會儿是 /page/2,一會儿又變成 p=2,會让蜘蛛重复抓取同一批内容。
- 別让分頁地址無限增長。列表為空、超出最大頁數时,返回 404 或 410,不要让服務器一直返回 200 的空列表頁。
三個常见誤区
- 「只要入口頁被收錄,里面的連結都會被翻完」——不一定,抓取是有预算的。
- 「分頁越深,蜘蛛越不會跟」——它更多表現為抓取频次下降,而不是绝對不跟。
- 「把分頁全部屏蔽,蜘蛛就會去抓目标頁」——Disallow 會让蜘蛛连頁碼連結都看不到,反而更难發現後面的 URL。
搜尋引擎的抓取策略随时會調整,上面说的是常见規律,不是保證。真正可靠的做法是把重要 URL 放在浅层、放在多個發現路径里,而不是指望某一種分頁结构。
怎么驗證蜘蛛到底翻到第几頁
- 看服務器日誌里搜尋蜘蛛的 UA,按訪問路径統計分頁地址的抓取记錄。
- 观察抓取時間分布:如果只有第 1、2 頁有记錄且間隔很久,說明翻頁動力不足。
- 對某個只出現在第 5 頁的目标 URL,單獨记錄它首次被抓的時間,和第 1 頁的目标 URL 做對比。
- 如果後排 URL 長期没有抓取记錄,把其中最重要的几條挪到第 1 頁或补進 sitemap,再看是否改善。
分頁只是連結组织方式的一種。對蜘蛛池来说,入口頁的價值在于「让 URL 被看见」,而不是「让 URL 排到前面」。把發現路径做短、做稳,比把列表拉長更有用。