SEO GUIDE
網站專欄 Q & A
站內優化

Faceted Navigation 索引控制|商品篩選 SEO 完整教學

Faceted Navigation(多面向篩選導覽)是電商網站常見的功能,讓使用者依品牌、價格、顏色、尺寸等條件交叉篩選商品。但若沒有做好索引控制,這些篩選會在搜尋引擎眼中產生數十萬甚至數百萬個重複頁面,吃光爬取預算、稀釋頁面權重、引發重複內容問題。在 AI 搜尋時代,ChatGPT、Perplexity、Google AI Overviews 同樣會回避結構混亂的網域,篩選頁治理因此成為電商技術 SEO 的關鍵戰場。這篇文章適合電商網站經營者、技術 SEO 工程師,以及正在處理商品篩選 URL 結構的開發團隊閱讀。

Faceted Navigation 是什麼?為什麼會吃壞索引

Faceted Navigation 指的是商品列表頁上方或側邊的多重篩選功能,使用者可以同時勾選「品牌=Nike」「顏色=黑色」「尺寸=US 9」「價格=3000-5000 元」來縮小範圍。對使用者體驗來說,這是電商網站不可或缺的功能;但對搜尋引擎而言,每一次篩選組合都會產生一個新的 URL,問題就從這裡開始。

Faceted Navigation 的 SEO 問題本質不是「篩選功能不好」,而是篩選產生的 URL 沒有被治理,導致搜尋引擎看到的不是 100 個商品分類,而是 100 萬個近乎重複的頁面。

篩選頁的 URL 結構

典型的 Faceted Navigation 會用 URL 參數(query string)記錄篩選條件。一個鞋類分類頁可能會長出這樣的 URL:

/shoes/?brand=nike /shoes/?brand=nike&color=black /shoes/?brand=nike&color=black&size=us9 /shoes/?brand=nike&color=black&size=us9&price=3000-5000 /shoes/?color=black&brand=nike (參數順序不同,又是一個新 URL) /shoes/?sort=price_asc&brand=nike (加上排序,再變一個)

每個 URL 在 Googlebot 眼中都是一個獨立頁面。即使內容只是同一批商品的不同排序或子集,搜尋引擎在不知道規則的情況下,會把它們全部納入爬取與索引候選清單。

對 SEO 造成的三層傷害

爬取預算浪費
Googlebot 把時間花在爬取數十萬個篩選 URL,真正重要的商品頁、分類頁、新上架商品反而更新延遲。中型電商可能因此延後 2-4 週才被索引。
內容重複稀釋
同樣的商品出現在 50 個不同篩選組合中,權重被分散,沒有任何一個 URL 能累積足夠訊號排到前面。Google 也會降低整個網域的爬取頻率。
SEO 機會錯失
真正有搜尋量的篩選組合(如「Nike 黑色運動鞋」)可能因為被一起封鎖,失去獨立排名機會。治理策略沒做好,等於把流量拒於門外。

二、索引爆炸:篩選頁失控的真實規模

「索引爆炸」並不是抽象概念,而是真實會發生的災難。讓我們用一個常見的台灣中小電商情境計算給您看:

索引爆炸公式 總 URL 數 = 分類數 × 品牌數 × 顏色數 × 尺寸數 × 價格區間數 × 排序選項

假設一個鞋類電商有 10 個分類、20 個品牌、8 種顏色、12 種尺寸、5 個價格區間、4 種排序方式,光是單一參數組合就會產生:

10 × 20 × 8 × 12 × 5 × 4 = 384,000 個 URL。若加上多選參數順序差異與分頁,總數可輕鬆突破 100 萬。實際商品總數可能只有 5,000 件。

對一個商品總數只有 5,000 件的網站來說,產生 100 萬個 URL 是正常爬取規模的 200 倍。Googlebot 不會無限制爬完,它會根據網站權威度分配爬取預算(Crawl Budget),把預算用在最有價值的頁面,其餘的直接放棄

實務上的訊號

若您在 Google Search Console 看到以下狀況,網站很可能已經陷入索引爆炸:

  • 「已檢索 - 未編入索引」頁面數量遠多於商品總數(如 10 倍以上)
  • 新上架商品要 3 週以上才被收錄
  • 頁面索引報告中出現大量「重複網頁,Google 選擇了不同的標準網頁」
  • 爬取統計顯示每日抓取數據異常高,但新內容索引緩慢
  • 網站日誌(access log)顯示 Googlebot 大量請求帶參數的 URL
注意:索引爆炸不只是 SEO 問題,也是伺服器資源問題。爬蟲流量可能佔掉您正常流量的 30% 以上,影響真實使用者的頁面載入速度,連帶影響 Core Web Vitals 指標。

三、該索引 vs 該封鎖:依篩選類型決策

篩選頁治理的核心,不是「全部封鎖」也不是「全部開放」,而是依照每種篩選參數的搜尋價值做個別決策。同一個電商網站,品牌篩選可能值得開放,但價格篩選應該封鎖,這兩者並不衝突。

判斷篩選組合該不該索引的核心問題只有一個:使用者會用這個組合當關鍵字去搜尋嗎?有搜尋需求就值得做成獨立落地頁,沒有需求就應該封鎖。

四類篩選的決策原則

篩選類型 搜尋需求 建議處理 判斷理由
品牌篩選 高(如「Nike 鞋」「Adidas 後背包」) 允許索引 品牌+品類有穩定搜尋量,值得獨立排名
顏色篩選 中等(如「黑色運動鞋」「白色洋裝」) 視商品類型而定 服飾、配件值得開放;3C 商品多半不必
價格篩選 低(很少人搜尋「3000-5000 元的鞋」) 封鎖索引 無搜尋需求,且區間切法因網站而異,無 SEO 價值
尺寸篩選 極低(「US 9 鞋」搜尋量幾乎為零) 封鎖索引 使用者已在站內,不會用尺寸當入站關鍵字
排序參數 封鎖索引 純功能性,內容完全重複
多重組合 視組合而定 原則上封鎖,少數例外 除非該組合有明確搜尋量(如「Nike 黑色鞋」),否則一律封鎖

判斷流程

  • 用關鍵字工具驗證搜尋量 到 Google Keyword Planner、Ahrefs、SEMrush 或 Ubersuggest 查詢「品類+篩選條件」的關鍵字。如果月搜尋量低於 100,幾乎可以直接封鎖。
    「Nike 黑色運動鞋」月搜尋量約 1,300(可做落地頁);「US 9 黑色 Nike 運動鞋」月搜尋量低於 10(直接封鎖)。
  • 看競爭對手的處理方式 搜尋目標關鍵字後,觀察排在第一頁的網站——如果都是大型電商的篩選落地頁,代表這個組合值得做。如果排前面的是內容型網站或一般分類頁,篩選頁可能沒必要做 SEO。
    搜尋「Nike 男鞋」第一頁多為 Nike 官網、Momo、PChome 的品牌篩選頁,代表這個組合值得開放。
  • 評估內容是否足夠獨特 該篩選組合下的商品數量、文案描述、頁面元素是否足以與其他頁面區隔。如果只是同樣的商品換個排序順序,內容沒有差異,就不該索引。
    品牌篩選頁可加上品牌介紹文案、品牌歷史、熱銷款式介紹,內容明顯獨特;純價格區間頁則只是商品排序差異。
  • 考慮維護成本 開放索引代表您要為這個頁面做 SEO 優化(title、meta、H1、內容文案)。若品牌數量太多無法逐一優化,建議只開放熱門品牌,其餘封鎖。
    電商有 200 個品牌,但只有 30 個有穩定搜尋量。建議只開放這 30 個品牌的篩選頁,其餘 170 個用 noindex 封鎖。

四、robots.txt vs noindex vs canonical:三大工具的抉擇邏輯

決定哪些篩選頁要封鎖之後,下一個問題是用什麼方式封鎖。robots.txt、meta noindex、canonical 三種工具的效果不同,誤用會讓問題更嚴重。

三種工具的本質差異

工具 作用機制 適用情境 陷阱
robots.txt 阻止爬蟲「抓取」頁面 節省爬取預算、阻止大規模參數頁被爬 被擋的頁面 Google 看不到內容,無法讀到 noindex 或 canonical;外部連結仍可能讓 URL 出現在索引中(無內容)
meta noindex 允許抓取但拒絕索引 頁面已被收錄、需要主動清出索引 仍會消耗爬取預算;長期 noindex 後 Google 可能停止爬取該頁,連帶忽略頁面上的內部連結
canonical 告訴 Google 此頁與另一頁等價,請以另一頁為準 內容近似但本質相同(如排序、分頁) 只是「建議」非強制;若兩頁差異太大 Google 會忽略;不適合用在真正不同的篩選組合

決策邏輯

建議依以下優先順序選擇工具:

三步驟決策 本質是否相同?→ 是否已被索引?→ 規模大小?

第一步:先問「這個篩選頁與主分類頁的內容本質是否相同」。若只是排序差異或無實質區隔,用 canonical 指向主分類頁。
第二步:若內容確實不同但您不想索引(如價格、尺寸篩選),用 meta noindex
第三步:若這類 URL 數量極大(每天產生數千個新組合),加上 robots.txt 同時封鎖爬取。但要注意——robots.txt 封鎖後 Google 看不到 noindex,所以要先確認頁面已從索引清出,再加上 robots.txt 阻擋。

先設 noindex 等 4-8 週讓 Google 清出索引,確認 Search Console「已編入索引」頁數歸零後,再用 robots.txt 阻擋整個參數樣式,這樣可同時節省爬取預算又不會留下殘存索引。
常見誤用:很多開發者一開始就用 robots.txt 封鎖所有參數頁,結果已經被索引的頁面永遠清不掉——因為 Google 不能爬取,就讀不到 noindex 標籤。正確順序是「先 noindex、再 robots.txt」。

五、AJAX 篩選 vs URL 參數:實作的兩條路線

在前端實作層面,篩選功能有兩種主流做法:傳統的 URL 參數重新載入頁面,與 AJAX 即時更新內容不換 URL。兩者在 SEO 上的差異很大。

URL 參數路線

每次篩選都產生新的 URL(如 /shoes/?brand=nike&color=black),整頁重新載入或前端 push state。優點是URL 可分享、可加入書籤、可被搜尋引擎索引;缺點是需要做好參數治理,否則容易引發索引爆炸。

  • 適合:需要 SEO 流量、有明確搜尋需求的篩選組合(如品牌篩選)
  • 注意:必須搭配 canonical、noindex、robots.txt 治理
  • 優化:固定參數順序(如永遠 brand 在前、color 在後),避免不同順序產生重複 URL

AJAX 篩選路線

前端透過 JavaScript 呼叫 API,不改變 URL、不重新載入頁面,直接更新商品列表。優點是體驗流暢、不會產生大量 URL、爬蟲只看到一個原始頁面;缺點是篩選結果無法被分享或收藏,所有篩選組合也都失去 SEO 機會。

  • 適合:篩選組合無 SEO 價值、追求純體驗的網站
  • 注意:若仍想保留分享功能,可改用 fragment(#)方式更新 URL,Google 不會視為新頁面
  • 優化:確保首次載入時商品列表已在 HTML 中(不是純 JS 才渲染),否則爬蟲什麼都看不到

混合策略(推薦)

實務上多數中大型電商會採用混合策略:對有 SEO 價值的篩選(如品牌、主要分類交叉)使用 URL 參數並開放索引;對無價值的篩選(如價格、尺寸、排序)使用 AJAX 不改 URL,或改 URL 但加上 noindex。

實務建議:台灣中小電商建議優先採用「品牌+分類用 URL 參數開放、其餘用 AJAX」的組合。這樣既能爭取「品牌+品類」的長尾流量,又能避免索引爆炸。若 CMS 不支援這種混合方式,至少要把「商品數量小於 5 件的篩選組合」設成 noindex(內容太薄對 SEO 反而有害)。

六、三種篩選實戰範例(品牌、價格、顏色)

理論說完,來看三個常見篩選的具體處理方式。以下範例假設網站是一個鞋類電商,分類路徑為 /shoes/

範例一:品牌篩選(允許索引)

Nike、Adidas、New Balance 等大品牌都有穩定的「品牌+品類」搜尋需求。處理方式如下:

  • URL 結構從 /shoes/?brand=nike 改寫為 /shoes/nike/(語意化更友善)
  • 頁面加入品牌介紹文案(150-300 字)、品牌歷史、熱銷款式
  • Title 寫成「Nike 男鞋|經典運動鞋款全系列|新視野鞋業」
  • Canonical 指向自己(self-referencing canonical)
  • 內部連結從主分類頁、Footer、相關文章導入

範例二:價格篩選(封鎖索引)

「3000-5000 元的鞋」幾乎沒有搜尋需求,價格區間也因網站而異,沒有 SEO 價值。處理方式:

  • URL 仍可保留 /shoes/?price=3000-5000(讓使用者可分享)
  • 頁面加上 <meta name="robots" content="noindex,follow">(noindex 但保留 follow 讓內部連結權重流通)
  • Canonical 指向 /shoes/(告訴 Google 主頁才是規範頁)
  • 等 4-8 週確認索引清出後,在 robots.txt 加上 Disallow: /shoes/*price=*

範例三:顏色篩選(視商品類型而定)

顏色篩選的處理比較微妙。鞋類、服飾、配件的「顏色+品類」有搜尋需求(如「黑色運動鞋」「白色洋裝」),3C 商品則幾乎沒有。

  • 有 SEO 價值的顏色(如黑、白、紅):改寫為 /shoes/black/,比照品牌篩選處理
  • 小眾顏色(如駝色、薄荷綠):保留參數 URL 但加 noindex
  • 顏色+品牌組合:多數封鎖,僅開放高搜尋量組合(如「Nike 黑色運動鞋」可獨立做頁)

三種篩選的處理對照

篩選類型 URL 結構 Meta Robots Canonical robots.txt
品牌(Nike) /shoes/nike/ index,follow self(指向自己) 允許爬取
價格區間 /shoes/?price=3000-5000 noindex,follow 指向 /shoes/ 清出索引後 Disallow
主要顏色(黑色) /shoes/black/ index,follow self(指向自己) 允許爬取
小眾顏色 /shoes/?color=mint noindex,follow 指向 /shoes/ 允許爬取(讓 Google 讀 noindex)
多重篩選 /shoes/?brand=nike&color=black&size=us9 noindex,follow 指向 /shoes/nike/ 確認清出後 Disallow

七、Faceted Navigation 常見錯誤

篩選頁治理是技術 SEO 中最容易出錯的環節之一。以下是六個常見錯誤:

  • 用 robots.txt 封鎖已被索引的頁面 開發者發現索引爆炸後直接在 robots.txt 加上 Disallow,結果已被索引的頁面永遠清不掉。Google 看不到 noindex 標籤,這些 URL 會以「無內容」狀態長期殘留在索引中。正確順序:先用 noindex 等 4-8 週清出索引,再加 robots.txt。
  • 所有篩選頁一律 canonical 到主分類頁 為了求快,把所有篩選 URL 都加上指向主分類頁的 canonical。問題是有 SEO 價值的品牌篩選頁也被一起排除,失去長尾流量機會。canonical 不是「萬靈丹」,應該依篩選類型個別決策。
  • 參數順序不固定 前端沒有規範參數順序,?brand=nike&color=black?color=black&brand=nike 變成兩個不同 URL。應該強制統一參數順序,或用 canonical 指向「標準順序版本」。
  • noindex 後又從 sitemap 提交 把 noindex 的篩選頁放進 XML sitemap,這會發出互相矛盾的訊號(一邊說「不要收錄」,一邊說「請來收錄」)。Search Console 會出現「已提交網址但被 noindex 標記」警告,浪費爬取預算。
  • AJAX 篩選沒有保留首屏內容 為了避免索引爆炸改用純 AJAX 篩選,但首頁 HTML 沒有預先 render 商品列表,爬蟲看到的是空白頁面。應該確保第一次載入時主分類的商品已存在於 HTML 中,AJAX 只負責後續更新。
  • 分頁與篩選混在一起治理 分頁(?page=2)與篩選是不同問題,但常被一起封鎖。分頁應該保持可索引或用 rel=canonical 自我指向,不要直接 noindex,否則分頁中的商品連結權重會被切斷,深層商品無法獲得足夠權重。
核心觀念:Faceted Navigation 治理沒有「一招打天下」的做法。不同篩選類型需要不同工具組合,關鍵在於先盤點所有參數,逐一判斷搜尋價值,再選擇對應工具。建議用試算表整理「參數類型-搜尋量-處理方式」對照表,作為團隊內部規範。

八、結論:建立篩選頁治理策略

Faceted Navigation 的 SEO 治理,本質上是讓搜尋引擎只看見您希望它看見的頁面。電商網站不能因為怕索引爆炸就把所有篩選頁封鎖,也不能放任不管讓爬蟲淹沒在參數海中。正確做法是建立一套分類分級的治理策略

若您正在處理篩選頁問題,可以從以下五個步驟著手:

  • 盤點所有篩選參數 列出網站所有可能的 URL 參數(brand、color、size、price、sort、page⋯⋯),記錄每個參數的可能值數量。
  • 驗證搜尋需求 用關鍵字工具查詢「品類+每個篩選值」的月搜尋量,分出高、中、低三級。
  • 制定處理規則 依搜尋量決定「索引/封鎖/canonical」,整理成試算表,作為前端開發規範。
  • 分階段執行 先用 noindex 處理該封鎖的頁面,4-8 週後確認索引清出,再加 robots.txt 節省爬取預算。
  • 監控與調整 每月看 Search Console 的「索引涵蓋範圍」與「爬取統計資料」,確認封鎖頁是否真的減少、目標品牌頁是否真的開始收錄。
核心結論:篩選頁治理是一場長期戰,不會在一週內看到效果。多數網站在正確設定後的 2-3 個月才會看到爬取預算重新分配、新商品索引速度加快、主要品牌頁排名上升。在 AI 搜尋時代,ChatGPT、Perplexity、Google AI Overviews 同樣會回避結構混亂的網域,篩選頁治理因此不只關乎傳統 SEO,也關乎 AI 引用機率。如果您想進一步了解技術 SEO,可以參考新視野 SEO 教學指南

九、常見問答 FAQ

Faceted Navigation 是什麼?跟一般分類頁有什麼不同?
Faceted Navigation 中文常稱為「多面向篩選導覽」,是電商網站讓使用者依品牌、價格、顏色、尺寸等多個維度同時篩選商品的功能。一般分類頁是固定的(如「男鞋」「女鞋」),URL 結構穩定;Faceted Navigation 則是動態組合,每次篩選都可能產生新 URL。差異關鍵在於URL 數量規模——一般分類頁可能只有幾十個,但 Faceted Navigation 在沒有治理的情況下可以產生數十萬到數百萬個 URL。這就是為什麼篩選功能對使用者有用,卻常常吃壞 SEO 索引。AI 搜尋時代下,結構混亂的網域也較難被 ChatGPT、Perplexity 引用為答案來源,因此治理篩選頁是電商必修課。
商品篩選頁要不要讓 Google 索引?
不是全部開放,也不是全部封鎖,而是依篩選類型個別決策。判斷原則是:「使用者會用這個篩選組合當關鍵字搜尋嗎?」如果月搜尋量超過 100 且有獨特內容(如品牌+品類),建議開放索引並做成獨立落地頁;如果沒有明確搜尋需求(如價格區間、尺寸、排序),就該封鎖。一般經驗:品牌篩選通常開放、主要顏色(黑白紅)視商品類型決定、價格與尺寸通常封鎖、多重組合原則上封鎖。實務上建議先用試算表盤點所有篩選參數,逐一查驗關鍵字搜尋量,再決定處理方式。台灣中小電商最常見的錯誤是「全部開放」導致索引爆炸,或「全部封鎖」導致失去長尾流量機會。
多重篩選的 URL 該用 noindex 還是 canonical?
兩種工具用途不同,判斷關鍵是內容本質是否相同。如果多重篩選頁的內容與主分類頁本質上是同一批商品的子集(如價格區間篩選),用 canonical 指向主分類頁;如果內容明顯不同但您不想索引(如冷門顏色+小眾品牌組合),用 noindex,follow實務上建議的組合做法:先用 noindex 把不想索引的頁面從 Google 清出,等 4-8 週確認 Search Console 已編入索引頁數歸零,再用 canonical 指向最相近的主要落地頁,最後在 robots.txt 加上 Disallow 阻擋爬取以節省爬取預算。順序很重要——直接用 robots.txt 會讓 Google 看不到 noindex 與 canonical,反而清不掉索引。
AJAX 篩選會不會比 URL 參數對 SEO 更友善?
AJAX 篩選對 SEO 不是更好,而是不同取捨。AJAX 篩選不改變 URL,因此不會產生索引爆炸,這是優點;但反過來也意味著所有篩選組合都失去 SEO 機會,連有搜尋價值的「品牌+品類」組合也無法做成獨立落地頁。如果您的網站只追求穩定爬取與快速體驗,沒有要從「Nike 黑色運動鞋」這類長尾關鍵字爭流量,AJAX 是好選擇。但多數電商建議採用混合策略——對有 SEO 價值的篩選(品牌、主要顏色)使用 URL 參數並開放索引,對無價值的篩選(價格、尺寸、排序)使用 AJAX。另外要特別注意,純 AJAX 網站必須確保首屏商品列表已在 HTML 中預先渲染,否則 Googlebot 看不到任何商品,反而完全失去爬取價值。
robots.txt 封鎖篩選頁會不會影響爬取預算?
會,而且這是 robots.txt 的主要用途之一。robots.txt 直接阻止 Googlebot 抓取被封鎖的 URL,因此可以把爬取預算(Crawl Budget)保留給真正重要的頁面(如商品頁、品牌篩選頁、部落格文章)。但有兩個重要前提:第一,已被索引的頁面必須先用 noindex 清出索引,再用 robots.txt 封鎖,否則 URL 會以「無內容」狀態長期殘留。第二,被 robots.txt 封鎖的頁面 Google 看不到內部連結,因此若該頁有大量重要連結往下傳遞權重,封鎖前要先確認替代的連結路徑存在。實務上中型電商封鎖參數頁後,新商品索引時間可從 3 週縮短到 5-7 天,效果非常顯著。但封鎖規則建議從窄到寬逐步調整,避免一次封鎖太多誤傷重要頁面。
怎麼判斷哪些篩選組合值得獨立做成 SEO 落地頁?
判斷標準有四個層面1. 搜尋量驗證:用 Google Keyword Planner、Ahrefs 或 Ubersuggest 查詢「品類+篩選條件」的月搜尋量,建議至少 100 以上才值得做(部分高轉換的商品類別可降至 50)。2. 競爭對手觀察:搜尋目標關鍵字,看排名前 10 名是否多為電商篩選頁;若是內容型網站佔多數,代表這個關鍵字可能不是「篩選頁適合的字」。3. 內容獨特性:該篩選頁能否加入品牌介紹、商品特色說明、熱銷款式等獨特內容,與其他頁面區隔。4. 維護成本評估:若品牌有 200 個但只有 30 個有穩定搜尋量,建議只優化這 30 個,其餘 170 個用 noindex。台灣中小電商最常見的做法是「先開放 Top 20-50 個品牌」,觀察 3 個月排名與流量後,再決定是否擴大開放範圍。

歡迎推廣本文,請務必連結(LINK)本文出處:新視野網頁設計公司