Faceted Navigation(篩選導覽)是讓使用者按多個條件篩選項目的導覽功能,例如在網店中同時選擇顏色、尺寸與價格範圍。它對使用者很方便,但如果處理不當,會製造出大量對搜尋引擎沒有價值的網址。
Faceted Navigation 的定義
「Facet」指的是一個可篩選的屬性,例如品牌、顏色或價格。當使用者勾選不同屬性,頁面會即時顯示符合條件的項目。大多數網站是以網址參數實現,例如在網址後加上 color=green 與 size=small;每換一組條件,就會得到一個新的網址。
除了網店之外,活動目錄、文章資料庫、設備租賃清單與職位列表,也常見這類篩選功能。
為甚麼 Faceted Navigation 對 SEO 重要
篩選條件只要稍加組合,網址數量就會急速增加。搜尋引擎爬蟲在抓取之前無法知道這些網址是否有用,因此可能花大量時間在重複的組合上,浪費抓取預算,也拖慢新內容被發現的速度。Google 在官方的篩選導覽文件中指出,這是常見的過度抓取來源。
此外,內容相近的篩選頁面會造成重複內容,也可能導致索引膨脹,讓真正重要的分類頁與商品頁被稀釋。
Faceted Navigation 的處理方式
處理方向取決於一個問題:這些篩選網址需不需要出現在搜尋結果?
如果不需要被索引
- 用 robots.txt 禁止抓取帶有篩選參數的網址,只保留分類頁與商品頁讓爬蟲進入。
- 改用網址片段(#)傳遞篩選條件,搜尋引擎通常不會把它當成獨立的網址。
- 可輔助使用 canonical 指向未篩選的版本,或在篩選連結加上 nofollow,但這些只是提示,效果不如直接禁止抓取穩定,而且 nofollow 必須在所有指向該網址的連結一致使用。
如果需要被索引
有些篩選組合對應真實的搜尋需求,例如「黑色跑步鞋」。這類頁面可以保留成可抓取的獨立頁面,並符合以下做法:
- 使用標準的 & 符號分隔網址參數,避免使用逗號、分號等難以辨識的分隔字元。
- 篩選條件在網址中的順序必須固定,並避免出現重複條件。
- 當篩選組合沒有任何結果時,回傳 404 狀態碼,而不是顯示空白頁面或導向通用的錯誤頁。
要注意的是,被 robots.txt 禁止抓取的網址,爬蟲無法讀取頁面上的 noindex 指令,兩者不應該同時用在同一批網址上。詳細比較可以參考robots.txt Disallow 與 Noindex 的差異。
Faceted Navigation 的實際例子
- B2C 例子:一間鞋類網店提供顏色、尺寸、品牌與價格排序,結果產生數十萬個篩選網址。團隊禁止抓取含排序與價格參數的網址,只把有搜尋量的「品牌+類型」組合做成獨立分類頁,爬蟲的抓取資源因此集中在重要頁面。
- B2B 例子:一間設備供應商的線上目錄可按規格、用途與產地篩選。團隊為常見的規格組合建立專屬頁面,其餘組合不開放索引,並為沒有結果的組合回傳 404。
Faceted Navigation 的優點與挑戰
優點:
- 讓使用者快速找到符合條件的項目,改善瀏覽體驗。
- 經過規劃的篩選頁面,可以承接長尾關鍵字的搜尋需求。
挑戰與注意事項:
- 網址數量容易失控,造成過度抓取與伺服器負擔。
- 不同方法混用,容易互相抵觸,導致處理結果難以預測。
- 需要開發、內容與 SEO 團隊一起規劃,不是單靠設定一行指令就能解決。
Faceted Navigation 的最佳實踐
- 先盤點篩選條件,找出哪些組合有真實搜尋需求,其餘一律視為不需要索引。
- 為有需求的組合建立獨立、可抓取的頁面,並寫上專屬的標題與說明。
- 同時留意篩選結果的分頁設定,避免每一頁都產生大量變體。
- 在技術 SEO 審核中,定期檢查已被索引的篩選網址數量,並查看抓取記錄是否集中在無價值網址。
Faceted Navigation 常見問題
小型網站也要處理 Faceted Navigation 嗎?
如果篩選產生的網址數量很少,影響通常有限。但只要篩選條件可以自由組合,網址就會很快增加,所以建議在設計篩選功能時就一併規劃。
可以只用 canonical 解決所有問題嗎?
通常不足夠。canonical 是提示而不是指令,爬蟲仍可能抓取大量變體網址,而且需要較長時間才會生效。如果不需要這些網址被索引,禁止抓取通常更直接。
Faceted Navigation 和網站搜尋有甚麼不同?
網站搜尋是由使用者輸入關鍵字查詢;篩選導覽則是在既有的分類內,按預設的屬性逐步縮小範圍。兩者的網址處理方式與 SEO 風險並不相同。
相關術語
- Crawl Budget:搜尋引擎在網站上可投入的抓取資源。
- Index Bloat:不必要的頁面被大量收錄的情況。
- Duplicate Content:內容相同或高度相似的多個頁面。
- Pagination:把長列表分成多個頁面的設計。
