栏目一多、内容一多,列表頁就會自然出現翻頁。分頁本身不是問题,問题是很多站点的分頁只考虑了“人点着方便”,没有考虑“蜘蛛怎么爬、怎么判断這些頁面”。结果就是:翻頁地址要么被当成一批高度相似的内容,要么干脆断在某一頁,後面的内容蜘蛛再也够不到。
先搞清楚你的分頁長什么样
不同建站程序的分頁形式差別很大,常见的有几種:
- 查询參數型:/category/news?page=2,有时還叠加排序或篩選參數。
- 路径型:/category/news/page/2/,URL 看起来像獨立目錄。
- 按钮加载型:頁面上是“加载更多”按钮,實际用 JavaScript 拼接内容。
- 無限滚動:一直往下滑,地址栏可能只變化一小段,甚至不變。
這些形式各有優缺点,但自查时都要回答同一個問题:翻到第二頁之後,頁面地址是否真實存在、能否被獨立打開、能否被正常連結到。
狀態碼與可達性抽查
随机挑几個栏目,手動翻到第二頁、中間某一頁和最後一頁,逐項確認:
- 頁面返回的是正常的 200,而不是跳回首頁或直接报 404。
- 超出實际頁碼的地址,比如只有 8 頁却訪問 page=99,有明确處理:要么返回 404,要么跳回第一頁,尽量不要给一個空白列表還返回 200。
- 分頁区的“上一頁/下一頁/頁碼”是真實可点的連結,而不是只能靠 JavaScript 事件触發的 span。
- 用鼠标中键或複製連結新開窗口,能打開對應分頁,而不是打開空白頁或首頁。
如果分頁連結必须经過点击脚本才能生成,蜘蛛很可能只看到第一頁。可以考虑在服務端輸出一份基础分頁連結,脚本再在此基础上做体驗優化。
canonical 別全指回第一頁
這是分頁里最常见、也最容易踩的一個坑:有些模板為了“避免重复内容”,把第二頁之後的 canonical 全部指向列表第一頁。這样做等于告诉搜尋引擎“這些頁面的正式版本只有第一頁”,後面的内容虽然還在,但被發現和被当作獨立入口的机會就被压低了。
更稳妥的做法通常是让每個分頁地址自引用 canonical,即第二頁指向第二頁自己。同时确保第一頁、第二頁的标题、描述和列表内容确實有区別,而不是只有頁碼數字不同。
标题、描述與内容重复度
- 分頁标题可以带頁碼,但不要所有頁都完全一样。
- 描述如果由程序自動截取,注意別把第一頁的摘要原样複製到每一頁。
- 列表項本身不同,但頁面框架、侧栏、推荐位如果高度一致,属于正常現象,不必過度處理,重点還是让每一頁有可区分的列表内容。
- 如果某一頁列表為空,考虑不要让它進入索引。
抓取深度與入口
分頁越深,蜘蛛到達的成本越高。可以自查几点:
- 每頁展示條數是否合理。條數太少會把内容摊到很多頁,條數太多又會让單頁体积變大。
- 深层分頁有没有其他入口,比如分類的年份归档、标簽聚合、相關推荐。入口多了,不一定要靠一頁頁翻到底。
- 如果重要内容只出現在很深的頁碼里,考虑調整栏目结构或增加直接入口。
加载更多與無限滚動的兜底
對訪客来说,按钮加载和無限滚動很顺;對蜘蛛来说,如果 URL 不變化、連結不存在,這些内容可能等于不存在。建议至少保留一套可訪問的分頁 URL 作為兜底,让加载更多只作為前端的增强体驗。
一次十分钟的自查清單
- 選三個有代表性的栏目,各翻到第 2 頁、中間頁、最後一頁。
- 看狀態碼、canonical、标题是否正常。
- 複製分頁連結新開窗口,確認能獨立打開。
- 查看頁面源代碼,確認分頁連結是 a 标簽而不是纯脚本。
- 检查超出頁碼的地址如何處理。
- 如果站点有日誌,看看分頁地址是否被蜘蛛訪問過,訪問到第几頁。
分頁不需要做得多花哨,關键是把翻頁地址做到可訪問、可区分、可繼續往下走。把這几件事確認清楚,列表頁就不會變成一批被忽略的重复地址。