先說結論
嗯…分頁 (Pagination) 這件事,想來想去,其實核心就一個:不要只給「上一頁、下一頁」。你得讓 Google 清楚看見整個結構,知道第 1 頁在哪,總共有幾頁。做對了,Google 能有效爬完你的東西;做錯了,就是浪費爬取預算 (Crawl Budget),很多頁面會跟消失沒兩樣。
大家好像都只談舊東西,但問題變了
我看了看,現在很多人談分頁 SEO,還在講 `rel="next/prev"`。但那東西 Google 早就公開說不用了。 雖然 Bing 可能還會參考,但我們主要還是看 Google。 所以,糾結在一個被棄用的標籤上,沒什麼意思。 現在的問題是,Google 不再幫你把分頁「串」成一個整體概念後,每一頁都變成獨立的頁面了。
這就帶來新的麻煩:
- 重複內容的風險變高:如果你的標題、描述都差不多,Google 可能會覺得這些頁面很像,進而影響索引。
- 爬取深度問題:如果你的網站有幾百、幾千頁,只靠「下一頁」連結,Googlebot 可能爬到第 10 頁就沒力氣了,後面的頁面等於進了黑洞。
- 權重分散:外部連結的權重,沒辦法像以前一樣,透過 `rel="next/prev"` 集中到第一頁。
這跟 Google 官方開發者文件裡說的,要讓爬蟲能找到所有內容,是有點矛盾的。 文件建議用清楚的 `` 連結,確保 Google 能依序找到頁面。 但實務上,特別是在台灣很多電商網站,我看到的是大量用 JavaScript 產生的分頁按鈕,這對 SEO 其實很不利,因為 Googlebot 不會去「點擊」那些沒有 `href` 屬性的按鈕。
那…到底該怎麼做?
綜合 Google 的建議和一些實務經驗,我覺得安全的做法大概是這樣。
1. 最基本、最安全的:傳統 `` 連結
這就是最單純的作法。 你要提供像「1, 2, 3, 4, 5... 最後一頁」這樣的連結。 這樣能大幅降低爬取深度,讓 Googlebot 可以從第一頁直接跳到任何一頁,而不是一頁一頁慢慢走。 程式碼大概會長這樣:
<nav aria-label="分頁導覽">
<ul class="pagination">
<li class="page-item"><a class="page-link" href="/category?page=1">1</a></li>
<li class="page-item active"><a class="page-link" href="/category?page=2">2</a></li>
<li class="page-item"><a class="page-link" href="/category?page=3">3</a></li>
<li class="page-item"><a class="page-link" href="/category?page=100">最後一頁</a></li>
</ul>
</nav>
重點是,每個分頁都要有自己獨一無二的 URL,像是 `?page=2`、`?page=3` 這樣。
2. `rel="canonical"` 的正確用法
這邊很多人會搞錯。分頁中的每一頁,例如第 2 頁、第 3 頁,都應該使用「自參考」的 canonical 標籤,也就是指向自己。 像這樣:
在 `https://example.com/category?page=2` 這個頁面上,你的 canonical 應該是:
``
千萬不要把所有分頁都 `canonical` 到第一頁。那等於在告訴 Google:「嘿,這些頁面都是第一頁的複製版,不用索引它們了。」結果就是除了第一頁,其他頁面的商品或文章都進不了索引庫。
3. 「載入更多」與「無限滾動」的處理
很多網站為了使用者體驗,喜歡用「載入更多」按鈕或無限滾動。 這對 SEO 來說是個災難,如果沒有處理好的話。因為內容是靠 JavaScript 動態載入的,Googlebot 一開始看不到。 Google 建議,即使你用無限滾動,也應該提供一個對應的分頁版本。 意思是,當使用者往下滾動觸發載入時,URL 也要用 History API 更新 (例如從 `/category` 變成 `/category?page=2`),而且這個 `/category?page=2` 的 URL 必須是真的可以被直接存取的。 簡單講,就是要讓非 JavaScript 的環境(像 Googlebot)也能看到分頁後的內容。
不同方法的比較
老實說,沒有一種方法是完美的,要看情境。我整理了一下,大概是這樣。
| 方法 | 優點 | 缺點 | 適合情境 |
|---|---|---|---|
| 標準分頁 | 對 SEO 最友善,結構最清楚。 Google 可以輕鬆爬完所有頁面。 | 使用者體驗可能差一點,每次都要點擊換頁。 | 內容數量龐大(例如超過幾十頁)的電商網站、論壇、文章列表。 |
| 載入更多 (Load More) | 使用者體驗比傳統分頁好一點,還是在單一頁面操作。 | 如果沒做好對應的分頁 URL,SEO 會很慘。 對數量超級大的清單來說,載入到後面會變慢。 | 中小型清單,像是部落格首頁、或是幾百個商品的分類頁。 |
| 全部顯示 (View-all) | 如果做得好,所有內容都在一頁,權重最集中。 | 頁面載入速度是個大問題。如果一個分類有上千個商品,使用者會等到天荒地老。 | 只有在內容數量很少(例如幾十個項目)的情況下才考慮。文章系列也還行。 |
實際案例會遇到的坑
想像一個有上萬筆商品的大型電商網站。他們一開始用了無限滾動,但沒有做分頁 URL 的對應。結果就是,在 Google Search Console 裡面,索引報告顯示「已檢索,目前尚未建立索引」的頁面數量非常多。 因為 Googlebot 只能看到第一頁的幾十個商品,後面的完全看不到。
後來,他們改成混合模式:保留無限滾動的體驗,但同時在背景生成了傳統的 `` 分頁連結,並確保每個分頁 URL 都能回傳正確的 HTML 內容。 這樣一來,使用者體驗沒變,但 Google 爬蟲卻能順利地爬完整個網站的商品。三個月後,被索引的產品頁面數量提升了差不多八成,長尾關鍵字的流量也跟著進來了。
最大的坑就是「自以為對 UX 好的設計,卻忘了搜尋引擎不是人類」。 Google 一直在強調要打造以人為本的內容 (people-first content),但前提是 Google 得先看懂你的網站結構。 如果結構本身就有問題,再好的內容也沒用。
所以,檢查一下你的網站吧
說了這麼多,其實重點還是得回頭看看自己的網站。你的分類頁、文章列表是怎麼處理分頁的?是用最單純的連結,還是用了一些 JavaScript 的酷炫效果?
你可以自己動手測試:
- 在你的分頁上,按右鍵「檢視網頁原始碼」。
- 搜尋看看有沒有 `?page=2` 這樣的 `href` 連結。
- 如果找不到,那你的分頁對 SEO 可能就有點問題了。
最後想問問大家,你的網站目前是用哪種分頁方式?是傳統的分頁數字,還是「載入更多」按鈕?有因為這樣遇到什麼索引上的問題嗎?在下面留言分享一下吧,也許大家的經驗可以互相幫助。
