站內搜尋結果頁該不該被收錄:從盤點、擋抓取到挖出內容缺口的六步驟教學
站內搜尋結果頁多半不該被收錄。它的內容由訪客輸入的字詞即時拼成,數量沒有上限,重複度高。處理順序是:先找出網址格式,已被收錄的先加 noindex,等它們退出索引再考慮擋抓取,同時切斷入口,最後把搜尋紀錄拿來找內容缺口。
這篇是步驟教學,照順序做即可。我用一個示範情境說明:一家用 WordPress 架站的居家用品電商,商品約數百項,部落格有一百多篇文章。情境是虛構組合,不是真實客戶。
為什麼站內搜尋結果頁會變成問題?
每一次有人在你的網站搜尋框輸入字詞,系統就產生一個新網址。在 WordPress 上,網址會長得像在網域後面加上問號與 s 等於某個字詞。輸入什麼,就有什麼網址。
這些網址一旦被搜尋引擎找到,就可能被收錄。問題有三個。
- 數量失控。訪客能輸入的字詞沒有上限,網址也就沒有上限,爬蟲的時間被花在這些頁面上。
- 內容重複。搜尋「收納盒」和「收納 盒」得到幾乎一樣的結果,卻是兩個不同網址。
- 對讀者沒有幫助。從搜尋引擎點進一個站內搜尋結果頁,看到的是另一份清單,讀者得再點一次才找得到答案。
Google 在建立實用內容的說明中強調,內容應該以幫助人為主要目的。自動拼出來的清單頁,很難符合這個方向。
步驟一:找出站內搜尋的網址格式
先確認你的網站搜尋結果頁長什麼樣子。方法很簡單:到自己網站的搜尋框輸入一個字,按下搜尋,看瀏覽器網址列。
常見的格式有兩種。一種是參數型,網址後面接問號與參數,例如 s、q、search、keyword。另一種是路徑型,網址裡有一段 search 目錄。有些網站兩種都有,例如佈景主題用一種,商品搜尋外掛用另一種。
示範情境的電商就是這樣。部落格搜尋用 WordPress 預設的參數,商品搜尋用購物外掛的另一個參數。兩種都要記下來,後面每一步都要用到。
步驟二:確認有多少搜尋頁已被收錄
知道格式後,接著查它們有沒有被收錄、數量多少。我會用兩個方法交叉確認。
- 在 Search Console 的頁面索引報表裡,用網址篩選功能找含有搜尋參數或搜尋路徑的網址,看已建立索引與未建立索引各有多少。
- 用網址審查工具抽查幾個搜尋頁,看 Google 是怎麼發現它的,參照網址是哪一頁。
第二點很重要。搜尋頁會被發現,一定有入口。可能是你的網站地圖誤收了它,可能是頁面上的熱門搜尋區塊連到它,也可能是外部網站連過來。找到入口,步驟四才知道要切哪裡。
頁面索引報表裡不同狀態的意思,可以參考頁面索引報表五種狀態的判斷表。
步驟三:決定處置方式,順序比方法重要
擋住搜尋頁的方法有幾種,每種作用不同。下表整理常見選項。三種擋頁方式的完整比較,可以看noindex、robots.txt 封鎖與密碼保護的比較。
| 方法 | 作用 | 適合的情況 | 要小心的地方 |
|---|---|---|---|
| noindex 標記 | 允許抓取,但要求不要收錄 | 已經有大量搜尋頁被收錄 | 頁面必須能被抓取,標記才會被讀到 |
| robots.txt 禁止抓取 | 不讓爬蟲抓取該類網址 | 搜尋頁從未被收錄,想預防 | 已收錄的網址可能留在索引裡 |
| 兩者依序搭配 | 先 noindex 清出索引,再擋抓取 | 已收錄又想長期省下爬取資源 | 要等索引數下降後才換步驟 |
| 改做正式分類頁 | 把穩定的搜尋需求變成真正的頁面 | 某些搜尋詞的結果固定且有價值 | 要有獨立內容,不能只是清單換網址 |
最常見的錯誤,是一發現搜尋頁被收錄,就馬上在 robots.txt 裡擋掉。看起來最快,結果往往相反。爬蟲被擋在門外,讀不到頁面上的 noindex,已經收錄的網址就可能一直留著。
示範情境的做法是:兩種搜尋網址都先加上 noindex,觀察幾週,等報表裡的已索引數量明顯下降,再把參數寫進 robots.txt。在 WordPress 上,很多 SEO 外掛預設就會替搜尋頁加 noindex,先檢查設定,不要重複做。
步驟四:切斷讓爬蟲找到搜尋頁的入口
處置做完,還要把入口關掉,否則新的搜尋頁會不斷被發現。依步驟二找到的參照網址,逐一檢查:
- 網站地圖:確認沒有收進任何搜尋頁網址。
- 熱門搜尋與標籤雲:很多佈景主題會在側欄放「熱門搜尋」,每一個字都連到搜尋結果頁。改成連到對應的分類頁或文章。
- 站內文章:撰稿人有時會在文中放「點這裡搜尋所有相關商品」的連結,改成連到分類頁。
- 內部搜尋外掛的自動建議:有些外掛會把建議字詞做成可抓取的連結,檢查是否能關閉。
標籤頁和搜尋頁的問題很像,處理邏輯可以互相參照,詳見部落格標籤頁該不該給 Google 索引。
步驟五:防止垃圾字詞被灌進索引
有一種情況比單純的數量失控更麻煩。有人刻意在外部網站大量放置連到你站內搜尋的網址,搜尋字詞是廣告、賭博或其他垃圾內容。若這些頁面被收錄,搜尋結果上就會出現你的網域加上那些字詞的標題。
防範方式和前面的步驟一致:搜尋頁加 noindex,頁面標題不要直接帶入訪客輸入的字詞,或者帶入前先過濾。搜尋結果為零時,頁面不要顯示「搜尋某某字詞的結果」這類把字詞放大的標題。
若已經發生,先在頁面索引報表裡確認數量,用前面的順序處理。數量很大時,清理節奏可以參考索引膨脹的清理順序。
步驟六:把站內搜尋紀錄變成內容缺口清單
擋掉搜尋頁之後,別忘了搜尋框本身是一份寶藏。訪客在你的網站上輸入的字詞,就是他們想找卻不一定找得到的東西。
如果你使用 Google Analytics 4,可以在增強型評估裡開啟站內搜尋追蹤,系統會依網址中的搜尋參數記錄字詞。設定細節與支援的參數名稱,請查Google Analytics 說明中心。示範情境的商品搜尋用的是自訂參數,就要額外加進設定裡。
每個月匯出一次搜尋字詞,用試算表整理成下面幾欄:
| 欄位 | 填寫方式 | 後續動作 |
|---|---|---|
| 搜尋字詞 | 合併同義與錯字 | 合併後再看次數 |
| 是否有對應頁面 | 有、部分、沒有 | 沒有的列入選題池 |
| 搜尋後的行為 | 點進結果、再搜尋一次、離開 | 再搜尋或離開代表結果不夠好 |
| 建議處置 | 新寫文章、補強現有頁、建分類頁 | 排入下一季內容行事曆 |
示範情境整理後發現,訪客常搜尋某種尺寸的收納規格,網站卻沒有一頁講清楚。這就是一篇該寫的文章,也是一個該做成正式分類頁的候選。
處理完之後,怎麼確認真的有效?
六個步驟做完,不代表事情結束。我建議在接下來兩到三個月,每兩週看一次下面幾件事,記在同一張試算表裡。
- 頁面索引報表中,含搜尋參數的已索引網址數量是否持續下降。
- 被排除的原因是否顯示為 noindex,而不是其他意料之外的狀態。
- 網站地圖與站內連結是否又出現新的搜尋頁網址,通常是改版或換佈景主題時被帶回來。
- 重要的商品頁與文章,收錄狀態有沒有受到影響。
最後一點最容易被忽略。robots.txt 的規則寫得太寬,可能把正常頁面一起擋掉。例如規則只寫了 search 這個字,網址裡剛好有這個字的部落格文章也會被擋。每次修改規則後,用網址審查工具抽查幾個重要頁面,確認它們仍然可以被抓取。
等索引數量穩定下來,再切換到 robots.txt 擋抓取。切換後同樣觀察兩週,確認沒有誤傷。這段觀察期不要省,它是整個流程裡唯一能及早發現錯誤的時間點。
適用與不適用的情況
這套步驟適合大多數有站內搜尋功能的網站:電商、內容型網站、知識庫與企業官網。搜尋頁越多、網站越大,處理越急。
有幾種情況要另外判斷。一是你的網站沒有開放搜尋功能,或搜尋頁從未被收錄,那只要確認預設設定正確即可,不必大動。二是大型電商把篩選與搜尋混在一起,網址結構複雜,這時應該把搜尋頁與篩選頁一起規劃,不要只處理一半。三是某些搜尋結果頁已經帶來穩定的自然流量,直接 noindex 會失去這些流量,應該先把它們轉成正式頁面,再處理原本的搜尋頁。
技術設定的基本原則,可以對照 Google 的搜尋引擎最佳化入門指南。若需要有人協助盤點與排程,可以參考冠誠數位行銷的技術 SEO 顧問服務。
