搜尋抓取

列表頁翻頁與詳情頁發現:蜘蛛會顺着分頁走到第几层

列表頁是蜘蛛發現詳情頁的主要入口之一。传统翻頁、加载更多、無限滚動三種形態,對抓取路径的影响不同。本文讨论分頁連結怎么寫、分頁頁要不要索引、深层分頁是否值得抓,以及如何用 Sitemap 和内鏈补充詳情頁的發現路径。

搜尋抓取

列表頁翻頁與詳情頁發現:蜘蛛會顺着分頁走到第几层

很多站点的詳情頁並不是從首頁直接鏈出去的,而是藏在列表頁翻頁之後。蜘蛛顺着分類頁、标簽頁、搜尋结果頁一路往下走,能不能走到深层詳情頁,分頁這一环起了很大作用。

蜘蛛眼里的分頁長什么样

同一個列表,前端可以做成三種形態,蜘蛛看到的東西差別很大。

  • 传统翻頁:每頁有上一頁、下一頁、頁碼連結,都是可点击的 a 标簽。蜘蛛可以顺着連結逐頁往下,路径清晰。
  • 加载更多:点击按钮後通過 JS 拉取下一頁内容。如果按钮本身不是連結,蜘蛛通常不會去点,只能看到第一頁。
  • 無限滚動:滚動到底部自動加载。蜘蛛不执行滚動,也不會主動触發,後面的列表内容基本不可见。

所以,如果希望蜘蛛發現更多詳情頁,传统翻頁最直接;加载更多和無限滚動則要額外补一條可抓取的路径。

分頁 URL 要能獨立訪問

有些站点的分頁只是在目前 URL 上改參數,比如 ?page=2,這没問题,但最好让每個分頁地址都能直接打開。蜘蛛拿到 ?page=2 這個 URL 後,如果返回的是和第一頁一样的内容,或者被重定向回第一頁,它就可能不再繼續往後爬。

分頁頁要不要被索引,是另一個問题。常见做法是:分頁頁本身可以不索引,但不要切断連結。用 noindex,follow 比用 nofollow 更合适,前者告诉蜘蛛不必收錄分頁頁,但可以繼續跟連結;後者會让蜘蛛不再顺着這一頁往下發現詳情頁。如果分頁頁是篩選參數产生的重复列表,也可以考虑用 canonical 指向主列表,但要注意不要把所有詳情頁的發現路径一起收掉。

翻到第几頁才值得

分頁不是越深越好。蜘蛛的抓取资源有限,站点也未必需要让第 200 頁的列表被完整抓一遍。更實际的做法是:

  • 把重要詳情頁通過分類、标簽、相關推荐、热门列表等内鏈,放在較浅的位置。
  • 對時間久遠、流量极低的分頁列表,可以保留可訪問但不必强求抓取。
  • 避免产生大量空列表頁,比如篩選组合後没有结果,却仍然返回一個可翻頁的列表。
  • 分頁參數不要無限组合,否則蜘蛛會陷入參數组合的循环。

如果詳情頁更新频繁,Sitemap 可以作為补充入口。把新發布或更新的詳情頁放進 Sitemap,蜘蛛就不必只依赖列表頁翻頁来發現它們。

服務器與查询性能也會影响分頁抓取

分頁列表通常需要查資料库、排序、拼装。如果每頁查询都很慢,蜘蛛连續翻頁时可能遇到超时或 5xx,抓取就會中断。给列表頁做缓存、限制每頁條數、避免在分頁查询里做复杂統計,能让蜘蛛更顺畅地走完路径。分頁越深,查询成本往往越高,這也是深层分頁不一定要全部放行的原因之一。

用日誌看蜘蛛走到哪里

想知道分頁有没有起作用,可以看抓取日誌里蜘蛛訪問了哪些分頁 URL,以及詳情頁是否在合理時間内被訪問。常见信号包括:蜘蛛只停在第一頁、加载更多按钮後的 URL 從未出現、分頁頁返回 200 但後續詳情頁很少被爬。根據這些信号,再决定是补可抓取連結、調整分頁索引策略,還是用 Sitemap 和内鏈把詳情頁往前挪。

分頁是發現路径的一部分,不是唯一入口。把可抓取連結、合理的内鏈和 Sitemap 配合起来,比單纯加深分頁更稳定。