管理多面向導覽網址的檢索
多面向導覽是網站的常見功能,可讓訪客變更網頁上顯示項目 (例如產品、文章或活動) 的方式。這項功能相當實用且廣受歡迎,但最常見的實作方式 (以網址參數為基礎) 可能會產生無限的網址空間,進而以幾種方式損害網站:
- 過度檢索:由於針對多面向導覽建立的網址似乎是新的,而且檢索器在檢索網址前,無法判斷這些網址是否有用,因此檢索器通常會在過程中判斷網址其實無用之前,先存取大量多面向導覽網址。
- 檢索發現新網址速度變慢:延伸上述情況,如果檢索器花費時間檢索無用的網址,就會減少檢索有用的新網址所需的時間。
一般多面向導覽網址的查詢字串中,可能會包含與篩選項目屬性相關的各種參數。例如:
https://example.com/items.shtm?products=fish&color=radioactive_green&size=tiny
變更任何網址參數 products
、color
和 size
,都會在底層網頁上顯示不同的項目組合。這通常代表可能的篩選器組合數量非常龐大,進而產生大量可能的網址。為節省資源,建議您採用下列任一方式處理這些網址:
- 如果您不需要可能會建立索引的多面向導覽網址,請禁止檢索這些網址。
- 如果您需要有可能建立索引的多面向導覽網址,請務必遵循下一個章節所述的最佳做法。請注意,由於需要大量網址和作業才能算繪這些網頁,因此檢索多面向網址通常會耗費大量運算資源。
避免多面向導覽網址的檢索
如要節省伺服器資源,且不想讓多面向導覽網址顯示在 Google 搜尋結果中,您可以使用下列任一方式,防止這些網址遭到檢索。
-
使用 robots.txt 禁止檢索多面向導覽網址。通常沒有理由允許系統檢索篩選過的商品,因為這會消耗伺服器資源,但帶來的效益卻微乎其微。建議您只允許系統檢索個別商品的網頁,以及專屬的產品資訊頁面 (顯示所有產品而不套用篩選器)。
user-agent: Googlebot disallow: /*?*products= disallow: /*?*color= disallow: /*?*size= allow: /*?products=all$
-
使用網址片段指定篩選器。
Google 搜尋通常不支援檢索和索引中的網址片段。
如果篩選機制是根據網址片段,則不會對檢索作業造成任何影響 (無論是正面或負面)。舉例來說,請使用網址片段,而非網址參數:
https://example.com/items.shtm#products=fish&color=radioactive_green&size=tiny
您也可以使用 rel="canonical"
link
元素和 rel="nofollow"
錨點屬性,指出要 (或不要) 檢索哪些多面向導覽網址。不過,這些方法長期而言的效果通常不如前述方法。
-
使用
rel="canonical"
指定哪個網址是多面向導覽網址的標準版本,可能會隨著時間推移,降低這些網址非標準版本的檢索量。舉例來說,如果您有 3 種經過篩選的網頁類型,建議將rel="canonical"
指向未經篩選的版本:https://example.com/items.shtm?products=fish&color=radioactive_green&size=tiny
指定<link rel="canonical" href="https://example.com/items.shtm?products=fish" >
。 -
在指向篩選結果頁面的錨點上使用
rel="nofollow"
屬性可能會有所幫助,但請注意,指向特定網址的每個錨點都必須具備rel="nofollow"
屬性,才能發揮作用。
確保多面向導覽網址在網站運作上最理想
如果您需要讓多面向導覽網址有機會受到檢索及建立索引,請務必遵循下列最佳做法,盡量減少檢索網站上大量潛在網址所造成的負面影響:
-
使用業界標準的網址參數分隔符「
&
」。半形逗號 (,
)、分號 (;
) 和括號 ([
和]
) 等字元很難讓檢索器偵測為參數分隔符 (因為它們通常不是分隔符)。 -
如果您在網址路徑中編碼篩選器 (例如
/products/fish/green/tiny
),請確保篩選器的邏輯順序一律保持一致,且不存在重複的篩選器。 -
當篩選器組合未傳回結果時,傳回 HTTP
404
狀態碼。 如果網站商品目錄中沒有綠魚,使用者和檢索器都應收到「找不到」錯誤訊息,並附上適當的 HTTP 狀態碼 (404
)。如果網址包含重複的篩選器或其他不合理的篩選器組合,以及不存在的分頁網址,也應是這種情況。同樣地,如果篩選器組合沒有結果,請勿重新導向至常見的「找不到」錯誤頁面,而是在發生錯誤的網址下方,以404
HTTP 狀態碼傳送「找不到」錯誤。