分頁列表看起来只是“上一頁、下一頁”的小功能,但它是搜尋蜘蛛發現舊内容的重要路径。一個栏目如果只靠首頁和最新几篇,蜘蛛很难繼續往深處走;分頁做得好,能帮助 URL 發現,做得不好,也可能让蜘蛛在參數和空列表里绕圈。
先確認:分頁到底给谁看
分頁首先服務于用戶,让訪客能繼續浏览歷史内容;其次才是给搜尋蜘蛛提供發現路径。两者目标一致,但實現时容易只顾前端体驗,忽略了連結是否真實存在、地址是否稳定。
常见分頁形式
- 頁碼式:/list/page/2 或 ?page=2。
- 加载更多:点击按钮追加内容,地址栏不變。
- 無限滚動:滚動到底自動加载。
- 篩選與排序:按時間、热度、分類等生成不同顺序的列表。
前两種如果處理得当,蜘蛛可以顺着連結抓取;後两種如果缺少兜底地址,蜘蛛可能只看到第一頁。
分頁自查清單
1. 每一頁是否可直接訪問
随便找一個深层分頁地址,粘贴到無登入、無缓存的浏览器里打開。頁面應该返回正常狀態,内容與頁碼對應,而不是永遠顯示第一頁。如果地址返回错誤或跳回首頁,蜘蛛會認為這條路径断了。
2. 翻頁連結是否出現在 HTML 中
有些站点用按钮加脚本生成翻頁連結,用戶能点,但 HTML 源碼里没有可抓取的地址。搜尋蜘蛛不一定执行复杂交互,结果只能停在第一頁。至少要让“下一頁”和頁碼連結以普通連結形式出現在源碼里。
3. 空列表頁怎么處理
当頁碼超過實际内容總頁數时,常见结果是返回一個空列表。大量空頁會占用抓取請求,也让日誌變得嘈杂。可以考虑對超出范围的頁碼返回 404 或 410,或者在頁面上明确提示没有更多内容,並避免让“下一頁”繼續指向空地址。具体選擇要结合網站技術條件,但不要放任無數空頁可訪問。
4. 排序和篩選參數是否失控
同一個列表加上不同排序參數,就可能生成一组内容相近的地址。如果這些地址都能被抓取,容易造成重复。运营上可以只保留預設排序為可抓狀態,其他排序用參數控制,並通過 robots.txt、canonical 或 noindex 等方式减少重复。注意不要一刀切挡住正常分頁。
5. 加载更多和無限滚動是否有分頁兜底
如果前端采用無限滚動,建议保留一個传统分頁地址,例如 /list?page=3,让蜘蛛和用戶都能直接到達。加载更多按钮也尽量配合真實連結,而不是只靠点击事件。
6. 列表頁本身是否有足够内容
如果分頁頁面上只有几十個标题連結,没有摘要、發布時間或栏目說明,價值會比較低。可以适当补充列表摘要、更新日期,帮助用戶判断是否点击。但不要為了填充而堆砌關鍵詞。
7. 站点地图要不要放分頁
通常不需要把每個分頁都寫進站点地图。站点地图更适合放栏目首頁和重要詳情頁。分頁可以通過列表頁上的連結自然被發現。如果分頁數量巨大,更要避免让站点地图變成低價值地址清單。
8. 观察抓取日誌
在一段時間内查看服務器日誌,統計搜尋蜘蛛在分頁地址上的請求比例。如果大量請求落在 ?page=、排序參數或空列表上,而詳情頁抓取很少,就說明分頁结构需要調整。可以對比調整前後的日誌變化。
一個简單的抽查方法
- 從栏目第一頁開始,手動点到第三頁,记錄地址變化。
- 複製第三頁地址,用無痕窗口打開,確認内容一致。
- 查看该頁源碼,搜尋“下一頁”或頁碼連結,確認是普通連結。
- 尝试訪問一個明顯超出范围的頁碼,看返回什么狀態。
- 加一個排序參數再訪問,观察是否产生新地址。
這些動作不需要复杂工具,却能暴露大部分分頁問题。
分頁不是越多越好,也不是全部隐藏就好。關键是让有價值的列表頁可發現,让低價值或重复的地址少被浪費抓取。
站点运营里的很多問题都類似:單個頁面看起来不起眼,累积起来却會影响蜘蛛對整站结构的判断。定期抽查分頁,比等到日誌里全是參數地址再回头處理要轻松得多。