看到一堆薄頁被收錄,第一個念頭往往是把所有篩選頁設成 noindex,這恰好是最容易出錯的一步。篩選頁(faceted navigation)的處理順序應該是:先分類哪些值得留、哪些該擋,再動用 canonical、noindex、robots 這三個作用完全不同的工具。使用者按幾個篩選條件,網址就多出一組參數,一個有十幾個篩選項的分類,理論上能生出成千上萬種網址組合,這些頁面多半內容薄、彼此重複,卻大量被搜尋引擎抓取,稀釋整站評價、吃掉爬蟲預算。這篇談的就是怎麼分類,再用對的工具把這團亂收拾乾淨。
1. 為什麼篩選頁是電商最容易失控的技術問題
篩選頁的問題在於它「無中生有」。你原本規劃了幾百個分類頁,結果篩選功能一開,網址組合暴增到六位數,而這些頁面沒有一個是你刻意規劃、想拿去排名的。它們就這樣悄悄膨脹,等你發現時,索引裡已經塞滿一堆薄頁,真正重要的商品頁反而被擠到後面。我們診斷過的電商案例裡,這幾乎是最常見、也最容易被忽略的一類技術債。它不像明顯的錯誤那樣一眼看得出來,而是隨著商品數和篩選項增加,一點一點累積成大問題,等到流量遲遲上不去、重要頁遲遲不收錄,才回頭發現病根在這裡。
1.1 一個篩選功能,能生出多少種網址
假設一個分類有顏色、尺寸、價格區間、品牌四種篩選,每種各五個選項,光是單選組合就有幾十種,允許複選再排列組合,數量是好幾個數量級的成長。我們看過一個賣服飾的購物網站,實際規劃的分類不到三百個,搜尋引擎卻抓到超過二十萬個網址,多出來的全是篩選參數的排列。爬蟲的抓取資源是有限的,它忙著抓這些沒價值的組合,真正重要的商品頁反而被排到後面,遲遲不被收錄。這才是篩選頁真正的代價:不是多了垃圾頁,而是排擠了你想要的頁。
1.2 薄頁與重複,怎麼拖累整站評價
這些篩選頁大多有兩個毛病。一是薄:某個冷門條件組合底下只有一兩件商品,內容單薄。二是重複:「紅色 M 號」和「M 號 紅色」其實是同一批商品,只是參數順序不同,卻是兩個網址。搜尋引擎面對大量薄頁與近乎重複的頁面,會對整站的內容品質打折。換句話說,這些你根本不想要的頁面,反而在扯你想要的頁面後腿。整站的評價是連動的,薄頁多了,好頁也跟著受累。
還有第三個毛病比較隱蔽:空結果頁。當使用者把條件組得太細,例如某個品牌剛好沒有紅色的 XS 號,系統仍會生出一個網址,只是頁面上一件商品都沒有。這種頁面對客人是死路,對搜尋引擎更是明確的低品質訊號。我們盤點一個購物網站時,光是各種組合出來的零結果頁就佔了被抓取網址的一成多,這些頁面不但沒有任何價值,還持續消耗著爬蟲的資源。處理篩選頁時,零結果的情境一定要單獨列出來,讓它回傳適當的狀態、或直接擋在索引之外,不要放它們在索引裡累積。
1.3 先分清楚:哪些篩選頁值得留、哪些該擋
處理篩選頁的第一步不是急著設 noindex,而是分類。有些篩選組合其實有明確搜尋需求,例如「防水 運動耳機」這種屬性組合,值得整理成正式的著陸頁去承接;有些純粹是使用者站內操作的過程,例如「價格 500 到 800、依上架時間排序」,沒有人會去搜,就該擋在索引之外。分清楚這兩類,後面的處理才不會一刀切錯。我們在實務上看過太多案例,是連值得留的屬性頁都一起 noindex 掉,白白丟了有搜尋量的入口,那比不處理還可惜。
2. canonical、noindex、robots,各自的分工
處理篩選頁有三個常用工具,很多人搞混它們的作用,用錯反而製造新問題。我們先把它們的分工講清楚,後面實作才不會互相打架。
2.1 canonical 是「這頁的內容以哪個網址為準」
canonical 適合用在「內容實質相同、只是網址不同」的情況。像參數順序不同、或加了排序參數但商品清單其實一樣的頁面,我們會讓它們的 canonical 指向那個乾淨的、代表性的分類網址,把重複的權重集中回主網址。要注意 canonical 是給搜尋引擎的建議、不是強制指令,而且被指向的頁面內容要跟來源夠接近,否則搜尋引擎可能不理會你的指定,自己另選一個它認為更合適的標準頁。
2.2 noindex 是「這頁別放進搜尋結果」
noindex 適合用在「這頁確實存在、使用者也會用,但你不希望它出現在搜尋結果」的情況,例如多重篩選疊加出來的薄頁組合。設了 noindex,頁面還是能被抓取、爬蟲仍會順著上面的連結走,只是不收進索引。這跟 canonical 是兩回事:canonical 是合併權重、noindex 是排除收錄。同一頁不要既設 noindex 又用 canonical 指向別頁,這兩個訊號會互相打架,搜尋引擎收到矛盾指示,反而不知道該聽哪個。
實務上我們看過一個常見的誤解:以為設了 noindex,爬蟲就不會再來抓這頁,於是把它和 robots.txt 一起用,想省抓取資源。這個想法只對了一半。noindex 要發揮作用,前提是爬蟲讀得到它,所以這頁必須維持可被抓取;若你同時用 robots.txt 擋掉,爬蟲根本讀不到那行 noindex,頁面反而可能以一個沒有說明的樣子卡在索引裡。正確的順序是:想排除收錄就先讓它可抓、掛上 noindex,等它確實被移出索引、且沒有外部連結還指著它之後,再考慮要不要進一步擋抓取。把這個先後順序記牢,能避開大半的篩選頁處理意外。
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 很重要,它讓權重還能透過這些頁面往下傳,只是頁面本身不進索引。少了 follow,權重就在這些頁斷掉,反而浪費了內部連結的傳遞。
這裡常有人問:既然這些頁不收錄,乾脆把它們的連結也全部拿掉、不讓爬蟲進去不就好了?這麼做其實弊大於利。篩選頁上往往連著一批真正的商品頁,那些商品頁需要從各種入口被連到、被抓到,如果為了省事把整個篩選區塊封死,連帶也切斷了商品頁的部分內部連結,反而害到你真正想收錄的頁。所以我們的做法幾乎都是「頁面本身 noindex、但保留 follow」,讓爬蟲可以穿過這些薄頁、繼續走到底下的商品,權重與抓取路徑都不中斷,只是薄頁本身不進索引。這個分寸拿捏,是篩選頁處理得好不好的關鍵之一。
3.3 排序、分頁參數,交給 canonical 收斂
排序方式(價格高到低、上架時間)與純粹改變呈現順序的參數,商品清單其實一樣,這種我們一律用 canonical 指回不帶參數的乾淨版本。分頁的處理則要小心,第二頁、第三頁有各自不同的商品,不該全都 canonical 到第一頁,否則後面幾頁的商品會失去被收錄的機會。我們通常讓每個分頁自我指向 canonical,讓它們各自被看見。分頁和排序看起來像,處理邏輯卻相反,別混為一談。
3.4 設定完一定要用實際網址抽查驗證
規則寫完不代表就對。篩選頁的設定常常是靠樣板套出來的,一個樣板錯,可能影響成千上萬頁。我們會挑幾種代表性的網址實際打開來看:該 noindex 的是不是真的帶了 noindex、該 canonical 的是不是指到正確的乾淨版本、該升級的著陸頁是不是正常可收錄。也要檢查 robots.txt 有沒有不小心把要讀 noindex 的頁一起擋掉。這一步花不了多少時間,卻能避免上線後整批頁面設定失效、或誤把正常商品頁也擋掉的意外。根據我們的服務經驗,篩選頁出包十之八九不是規則寫錯,而是規則套用的範圍沒想清楚,抽查就是在補這個漏洞。
4. 內容策略:讓該留的篩選頁站得住腳
技術設定處理的是「別讓垃圾頁膨脹」,但那些你決定要留下、要拿去排名的篩選著陸頁,還得靠內容讓它們站得住腳,不然它們自己也會變成薄頁,白白升級一場。很多人把心力全放在 canonical 和 noindex 的設定上,卻忘了留下來的頁如果沒有內容撐著,一樣排不上去,技術與內容得兩邊一起顧。
4.1 著陸頁要有專屬說明,不能只是篩選結果
一個「防水 運動耳機」的著陸頁,如果只是把符合條件的商品排一排,內容一樣很薄。我們會替它補一段專屬說明:這個組合適合誰、挑選時該注意什麼、跟一般款差在哪。這段文字讓頁面有了自己的內容,也讓搜尋引擎明白這頁在講一個具體的主題,而不只是一次篩選操作的結果。有了專屬內容,它才配得上一個可收錄的正式頁面身分,也才有機會在品類詞上跟對手競爭。
這段專屬說明該寫多長、放在哪裡,也有講究。位置上,我們習慣把一小段導言放在商品清單上方,讓客人和爬蟲一進頁面就讀到這頁的主題;比較完整的選購說明則可以放在清單下方,避免把商品推得太遠。長度不必貪多,兩三百字能把「適合誰、怎麼挑、和鄰近品類差在哪」講清楚就夠了,重點是每一頁的說明都要針對自己的組合量身寫,而不是套同一段模板只換幾個詞。如果你發現幾個著陸頁的說明文字幾乎可以互換,那代表這些組合的區別本來就不夠大,與其硬撐成多頁,不如合併成一頁寫得更透。
4.2 用最少的頁面,涵蓋最多的搜尋需求
我們的原則是「寧可少而精,不要多而薄」。與其放任成千上萬個組合頁自由生成,不如挑出十幾、二十個真正有搜尋量的組合,把它們做成內容扎實的著陸頁,其餘全部擋在索引外。這樣爬蟲的資源集中在有價值的頁面上,整站的內容品質評價也不會被一堆薄頁拖累。頁面不是愈多愈好,能被收錄且有價值的頁面愈多才好。這個取捨想清楚,整站的結構會健康很多。對電商而言,這也是一種資源分配:與其把力氣攤平在無數薄頁上,不如集中在少數能真正帶來轉換的頁面,投報率差很多。
4.3 升級後持續追蹤,別升了就放著
把組合升級成著陸頁不是一勞永逸。我們會在上線後追蹤這些頁的收錄狀況與流量,確認搜尋引擎確實把它們當成獨立頁面收錄,也確認它們真的有帶進流量。如果某個組合升級後半年都沒起色,可能是當初判斷的搜尋量並不穩,那就考慮把它降回一般篩選頁、改設 noindex,把資源挪去更值得的組合。名單不是一次定死,而是隨資料滾動調整。
5. 常見問題
5.1 篩選頁到底該用 canonical 還是 noindex?
看這頁跟主頁面內容像不像。內容實質相同、只是參數不同,用 canonical 合併;內容不同但沒有搜尋價值、你只是不想收錄,用 noindex。兩者作用不同,別混用在同一頁。判斷時先問自己:這頁跟代表頁是不是同一批商品?是,就 canonical;不是但沒價值,就 noindex。
5.2 可以直接用 robots.txt 把所有帶參數的網址都擋掉嗎?
不建議。robots.txt 擋的是抓取,爬蟲讀不到頁面上的 noindex,已經收錄的薄頁反而更難移除。而且一擋,權重也無法透過那些頁面往下傳。想排除收錄,讓爬蟲抓得到、並在頁面上讀到 noindex 才對。robots.txt 比較適合用在你確定完全不需要被讀到的站內功能路徑。
5.3 把大量篩選頁設成 noindex,會傷到整站排名嗎?
正常情況下不會,反而多半是好事。把沒價值的薄頁移出索引,等於讓搜尋引擎把注意力集中在你真正想排名的頁面上。我們處理過的案例裡,收斂薄頁之後,重要頁面的表現通常是持平或往上,很少往下。前提是 noindex 設對位置、沒有誤傷有搜尋量的頁。如果擔心,可以分批處理,先處理最明顯的薄頁分類,觀察一兩週確認重要頁沒受影響,再擴大範圍,這樣即使判斷有誤也好回頭。
5.4 怎麼知道哪些篩選組合值得做成著陸頁?
用資料判斷。從關鍵字工具看該屬性組合有沒有穩定搜尋量、從站內搜尋紀錄看使用者實際會怎麼組合條件。有明確需求的才升級成著陸頁,沒有的就擋掉,別憑感覺全做或全不做。資料是唯一能讓你不吵架就做決定的依據。另外也可以觀察外部的搜尋建議與相關搜尋,看使用者習慣用什麼詞描述這個組合,這會影響著陸頁的命名與說明文字怎麼寫,讓它更貼近真實的搜尋語言。
5.5 分頁的第二頁、第三頁要 canonical 回第一頁嗎?
不要。每一頁的商品都不一樣,全指回第一頁會讓後面幾頁的商品失去被收錄的機會。我們的做法是讓每個分頁自我指向 canonical,各自被搜尋引擎看見。分頁和排序參數不同,後者商品清單一樣才適合收斂回乾淨版本。
先盤點。在動任何 canonical 或 noindex 之前,先用爬蟲工具看清楚搜尋引擎到底抓到了多少參數網址、其中有多少是薄頁。把規模摸清楚,才知道問題有多大、該從哪個分類先收斂,盲目設定只會製造新的混亂。先看清楚,再動手,是整個流程最省事的起點。
5.7 商品條件組合出來卻沒有任何商品的空頁,要怎麼處理?
空結果頁不該放任它留在索引裡。理想的做法是在系統判斷某個組合沒有對應商品時,就不產生可被收錄的頁面,或讓它回傳適當的狀態、把使用者導回上一層還有商品的分類。若基於功能需要這頁仍得存在,至少要掛上 noindex,並在頁面上給客人一個明確的下一步,例如放寬條件或看相近的商品,而不是丟一個空白畫面。空頁對客人是死路,對搜尋引擎是低品質訊號,愈早攔下愈省事。
5.8 商品會上架下架,升級過的著陸頁之後商品變很少了怎麼辦?
這正是前面說升級後要持續追蹤的原因。著陸頁的價值建立在它底下有足夠且相關的商品,一旦某個組合的商品長期掉到只剩寥寥幾件,它就從原本的正式頁慢慢退化成薄頁。定期回看這些頁的商品數與流量,若發現某頁已經撐不起一個獨立主題,就該把它降回一般篩選頁、改設 noindex,或和相近的著陸頁合併。把它當成需要定期盤點的資產,而不是升級一次就永久有效的設定。
