網站收錄

列表頁的翻頁與篩選參數:收錄该收哪些、怎么收口

列表頁往往是站内 URL 最多的地方:翻頁、排序、篩選參數叠加之後,地址數量成倍增長。它們不算垃圾頁面,但也没必要全部進入索引。本文按栏目頁、翻頁、篩選组合、站内搜尋分類,說明每一類该收還是该挡,以及 robots.txt、noindex、canonical 三種手段各自适用的邊界與收口顺序。

網站收錄

列表頁的翻頁與篩選參數:收錄该收哪些、怎么收口

电商、资讯、房产這類站点,列表頁通常是 URL 數量最多的部分。一個栏目加上翻頁、排序、篩選條件,可以轻松生成成千上萬個地址。它們不是垃圾頁面,但也不是每一頁都值得占用索引和抓取资源。處理思路往往不是「全收」或「全挡」,而是按頁面類型分档。

先按類型分档,再决定去留

把列表類 URL 拆開看,大致是四類:

  • 栏目首頁:如 /news/、/category/phones/,是站内連結的主要入口,通常應保留在索引中。
  • 翻頁:?page=2、/list_2.html 這類,承载的是同一批内容的後續排列。
  • 篩選與排序:?brand=x、?price=100-200、?sort=new,參數组合越多,URL 越碎。
  • 站内搜尋與空结果頁:用戶輸入产生的地址,一般不建议進入索引。

翻頁:可以收,但不必刻意追

翻頁頁面上有真實内容,搜尋引擎可以收錄,也确實有用戶會搜到第二頁上的商品。但從抓取成本看,深度翻頁的價值递减得很快。比較稳妥的做法是:

  • 前几頁保持可抓取、可点击,連結用普通的锚点标簽輸出,不要只靠脚本里的「加载更多」按钮。
  • 無限滚動頁面要提供分頁地址或静態的翻頁入口,让爬虫有路可走。
  • 不必為了让每一頁都被收錄而堆砌内鏈,把翻頁連結铺满全站,反而會稀释重要頁面分到的抓取。

篩選參數:重点在收敛,不在屏蔽

篩選頁里有一小部分是有價值的,例如品牌、品類這種固定且有人搜尋的维度,可以做成静態化的落地頁。麻烦的是多维组合:颜色加尺寸加價格再加排序,组合數很快上百上千。

常见的處理方式有三種,各有邊界:

  1. robots.txt 屏蔽參數路径:能阻止抓取,但被屏蔽的地址如果已经被外部連結指向,仍可能以「被屏蔽」的狀態出現在索引里,用戶看不到内容。
  2. canonical 指向無參數版本:這是提示性信号,搜尋引擎會參考,但不是强制指令,參數頁本身仍可能被抓取。
  3. 頁面加 noindex:需要搜尋引擎先抓到頁面才能讀到這個标簽,所以屏蔽抓取和 noindex 不要同时用在同一個地址上。
顺序上建议先想清楚一件事:這個 URL 要不要被抓。要抓但不要進索引,用 noindex;不想被抓,用 robots.txt;只是重复,用 canonical。三個混着用,排查时很难判断到底哪一步在生效。

一個可执行的收口顺序

  1. 導出近 30 天日誌里被频繁抓取的列表類 URL,按路径和參數归類。
  2. 标出其中带流量、带外鏈、有搜尋需求的少數,保留它們,並在頁面之間建立正常内鏈。
  3. 剩下的组合參數,先统一 canonical 到主版本,观察一段時間再决定是否需要進一步處理。
  4. 站内搜尋结果頁、排序方向相反(價格從低到高與從高到低)這類頁面,優先從索引中排除。

几個容易踩的点

  • 篩選頁的标题和描述由參數動態拼接,容易生成大量几乎相同的 TDK,反而放大重复内容問题。
  • 把分頁頁面全部 canonical 到第一頁,等于告诉搜尋引擎「這些是同一篇」,後續頁的内容可能因此不被收錄。
  • 空结果頁返回 200 並渲染一個「没有找到」的模板,這類頁面被大量抓取是纯消耗。
  • 參數顺序不同(?a=1&b=2 與 ?b=2&a=1)會生成两個 URL,服務端最好做一次归一化跳轉。

列表頁的收錄問题,本质是资源分配問题。把有限的抓取留给有獨立價值、能被用戶搜到的頁面,剩下的靠 canonical、noindex、robots 各司其职地收口,比追求「每一個 URL 都被收錄」要現實得多。調整之後,用日誌和覆盖率报告對照一段時間,看抓取是否集中到了你希望的那些頁面上。