我是吳承學,做了二十年 SEO。如果你問我電商站裡最容易失控、也最容易被忽略的技術問題是什麼,我幾乎每次都會回答:篩選頁,也就是所謂的 faceted navigation。使用者按幾個篩選條件,網址就多出一組參數,一個有十幾個篩選項的分類,理論上能生出成千上萬種網址組合。這些頁面多半內容很薄、彼此重複,卻大量被搜尋引擎抓取,稀釋整站評價、吃掉爬蟲預算。這篇談的就是怎麼用 canonical、noindex 與內容策略,把這團亂收拾乾淨。

1. 我為什麼把篩選頁當成整站的隱形破口

篩選頁的問題在於它「無中生有」。你原本規劃了幾百個分類頁,結果篩選功能一開,網址組合暴增到六位數,而這些頁面沒有一個是你刻意規劃、想拿去排名的。它們就這樣悄悄膨脹,等你發現時,索引裡已經塞滿了一堆薄頁。

1.1 一個篩選功能,能生出多少種網址

假設一個分類有顏色、尺寸、價格區間、品牌四種篩選,每種各五個選項,光是單選組合就有幾十種,允許複選再排列組合,數量是好幾個數量級的成長。我看過一個賣服飾的購物網站,實際規劃的分類不到三百個,搜尋引擎卻抓到超過二十萬個網址,多出來的全是篩選參數的排列。爬蟲的抓取資源是有限的,它忙著抓這些沒價值的組合,真正重要的商品頁反而被排到後面。

1.2 薄頁與重複,怎麼拖累整站評價

這些篩選頁大多有兩個毛病。一是薄:某個冷門條件組合底下只有一兩件商品,內容單薄。二是重複:「紅色 M 號」和「M 號 紅色」其實是同一批商品,只是參數順序不同,卻是兩個網址。搜尋引擎面對大量薄頁與近乎重複的頁面,會對整站的內容品質打折。換句話說,這些你根本不想要的頁面,反而在扯你想要的頁面後腿。

1.3 先分清楚:哪些篩選頁值得留、哪些該擋

處理篩選頁的第一步不是急著設 noindex,而是分類。有些篩選組合其實有明確搜尋需求,例如「防水 運動耳機」這種屬性組合,值得整理成正式的著陸頁去承接;有些純粹是使用者站內操作的過程,例如「價格 500 到 800、依上架時間排序」,沒有人會去搜,就該擋在索引之外。分清楚這兩類,後面的處理才不會一刀切錯。

2. canonical、noindex、robots,各自的分工

處理篩選頁有三個常用工具,很多人搞混它們的作用,用錯反而製造新問題。我先把它們的分工講清楚。

2.1 canonical 是「這頁的內容以哪個網址為準」

canonical 適合用在「內容實質相同、只是網址不同」的情況。像參數順序不同、或加了排序參數但商品清單其實一樣的頁面,我會讓它們的 canonical 指向那個乾淨的、代表性的分類網址,把重複的權重集中回主網址。要注意 canonical 是給搜尋引擎的建議、不是強制指令,而且被指向的頁面內容要跟來源夠接近,否則搜尋引擎可能不理會你的指定。

2.2 noindex 是「這頁別放進搜尋結果」

noindex 適合用在「這頁確實存在、使用者也會用,但你不希望它出現在搜尋結果」的情況,例如多重篩選疊加出來的薄頁組合。設了 noindex,頁面還是能被抓取、爬蟲仍會順著上面的連結走,只是不收進索引。這跟 canonical 是兩回事:canonical 是合併權重、noindex 是排除收錄。同一頁不要既設 noindex 又用 canonical 指向別頁,這兩個訊號會互相打架。

2.3 robots.txt 擋抓取,但擋不掉已收錄的頁

robots.txt 是控制「要不要抓取」,不是控制「要不要收錄」。這是最常被誤用的一個。如果你用 robots.txt 擋掉某個參數路徑,爬蟲確實不會去抓,但它也因此讀不到那頁上的 noindex,萬一那頁已經因為外部連結被收錄,反而更難把它移出索引。所以想讓一頁「不被收錄」,正確做法是讓爬蟲抓得到、並在頁面上讀到 noindex,而不是用 robots.txt 一擋了事。

2.4 三種工具的適用情境對照

工具 作用 適合情境 常見誤用
canonical 指定代表網址、合併權重 內容實質相同、參數或排序不同 指向內容差很多的頁面
noindex 排除於搜尋結果之外 使用者會用、但無搜尋價值的薄頁 同時又用 robots.txt 擋抓取
robots.txt 阻止抓取 純站內功能路徑、確定不需被讀到 用它處理已收錄頁面
整理成著陸頁 正式承接搜尋需求 有明確搜尋量的屬性組合 把所有組合都當著陸頁

3. 我實際上怎麼替一個電商站設定篩選頁規則

工具講完,講實作。我做這件事有一套固定流程,避免漏掉或誤傷正常頁面。

3.1 先用資料找出「有人搜、值得留」的組合

我會從關鍵字工具與站內搜尋紀錄裡,撈出使用者真的會搜的屬性組合。有一次幫一個賣家電的購物網站盤點,發現「靜音 除濕機」「小坪數 除濕機」這類組合有穩定搜尋量,於是把它們從一般篩選頁升級成正式的著陸頁,給它們乾淨的網址、專屬的說明文字與可收錄的設定。這批頁面後來成了穩定的流量來源。剩下沒搜尋量的組合,才進入下一步的擋收錄處理。

3.2 值得留的升級成著陸頁,其餘設 noindex

經過篩選,值得留的那少數組合,我會把它們當成正式頁面經營:乾淨語意化的網址、獨有的品類說明、正常收錄。其餘絕大多數的參數組合,統一設 noindex, follow,讓爬蟲能繼續順著連結走、但不收錄這些薄頁。這裡的 follow 很重要,它讓權重還能透過這些頁面往下傳,只是頁面本身不進索引。

3.3 排序、分頁參數,交給 canonical 收斂

排序方式(價格高到低、上架時間)與純粹改變呈現順序的參數,商品清單其實一樣,這種我一律用 canonical 指回不帶參數的乾淨版本。分頁的處理則要小心,第二頁、第三頁有各自不同的商品,不該全都 canonical 到第一頁,否則後面幾頁的商品會失去被收錄的機會。我通常讓每個分頁自我指向 canonical,讓它們各自被看見。

4. 內容策略:讓該留的篩選頁站得住腳

技術設定處理的是「別讓垃圾頁膨脹」,但那些你決定要留下、要拿去排名的篩選著陸頁,還得靠內容讓它們站得住腳,不然它們自己也會變成薄頁。

4.1 著陸頁要有專屬說明,不能只是篩選結果

一個「防水 運動耳機」的著陸頁,如果只是把符合條件的商品排一排,內容一樣很薄。我會替它補一段專屬說明:這個組合適合誰、挑選時該注意什麼、跟一般款差在哪。這段文字讓頁面有了自己的內容,也讓搜尋引擎明白這頁在講一個具體的主題,而不只是一次篩選操作的結果。有了專屬內容,它才配得上一個可收錄的正式頁面身分。

4.2 用最少的頁面,涵蓋最多的搜尋需求

我的原則是「寧可少而精,不要多而薄」。與其放任成千上萬個組合頁自由生成,不如挑出十幾、二十個真正有搜尋量的組合,把它們做成內容扎實的著陸頁,其餘全部擋在索引外。這樣爬蟲的資源集中在有價值的頁面上,整站的內容品質評價也不會被一堆薄頁拖累。頁面不是越多越好,能被收錄且有價值的頁面越多才好。

5. 常見問題

篩選頁到底該用 canonical 還是 noindex?

看這頁跟主頁面內容像不像。內容實質相同、只是參數不同,用 canonical 合併;內容不同但沒有搜尋價值、你只是不想收錄,用 noindex。兩者作用不同,別混用在同一頁。

可以直接用 robots.txt 把所有帶參數的網址都擋掉嗎?

不建議。robots.txt 擋的是抓取,爬蟲讀不到頁面上的 noindex,已經收錄的薄頁反而更難移除。而且一擋,權重也無法透過那些頁面往下傳。想排除收錄,讓爬蟲抓得到、並在頁面上讀到 noindex 才對。

把大量篩選頁設成 noindex,會傷到整站排名嗎?

正常情況下不會,反而多半是好事。把沒價值的薄頁移出索引,等於讓搜尋引擎把注意力集中在你真正想排名的頁面上。我處理過的案例裡,收斂薄頁之後,重要頁面的表現通常是持平或往上,很少往下。

怎麼知道哪些篩選組合值得做成著陸頁?

用資料判斷。從關鍵字工具看該屬性組合有沒有穩定搜尋量、從站內搜尋紀錄看使用者實際會怎麼組合條件。有明確需求的才升級成著陸頁,沒有的就擋掉,別憑感覺全做或全不做。

分頁的第二頁、第三頁要 canonical 回第一頁嗎?

不要。每一頁的商品都不一樣,全指回第一頁會讓後面幾頁的商品失去被收錄的機會。我的做法是讓每個分頁自我指向 canonical,各自被搜尋引擎看見。

2026 年處理 faceted navigation,最該先動手的是哪一步?

先盤點。在動任何 canonical 或 noindex 之前,先用爬蟲工具看清楚搜尋引擎到底抓到了多少參數網址、其中有多少是薄頁。把規模摸清楚,才知道問題有多大、該從哪個分類先收斂,盲目設定只會製造新的混亂。