大型網站擁有者的檢索預算管理指南
本指南說明如何為規模龐大且更新頻繁的網站進行 Google 檢索最佳化調整。
如果您的網站沒有大量會經常變動的網頁,或者網頁檢索作業看起來都是在發布網頁的同一天完成,那就不需要閱讀這份指南,只需要隨時保持 Sitemap 為最新狀態,並定期檢查索引涵蓋範圍即可。
如果您的內容已上線一段時間,但卻從未編入索引,這屬於不一樣的問題,請改用網址檢查工具找出網頁未編入索引的原因。
本指南適用對象
這份進階指南適用於下列網站:
- 擁有超過 100 萬個不重複網頁,且內容變動頻率適中 (每週一次) 的大型網站
- 擁有超過 1 萬個不重複網頁,且內容變動極為頻繁 (每天) 的中型或大型網站
- 網站中有大量網址在 Search Console 中分類為「已找到 - 目前尚未建立索引」
檢索基本原理
網海無垠,即使是 Google 也無法探索每個可用網址,並為其一一建立索引。因此,Googlebot 檢索每個網站所能用的時間有限,而 Google 針對檢索一個網站所能投入的時間和資源,通常就稱為「檢索預算」。請注意,不是網站上所有「完成檢索」的內容都一定能「建立索引」;Google 必須對每個網頁進行評估與整合,才能確認是否要在檢索網頁後建立索引。
檢索預算多寡取決於兩個主要元素:「檢索容量上限」和「檢索需求」。
檢索容量上限
Googlebot 檢索網站時,並不希望對伺服器造成負擔。為了達成這項目標,Googlebot 會計算「檢索容量上限」,這是指 Googlebot 在檢索網站時可以使用的最大同時連線數量,以及擷取作業之間的延遲時間。計算出來的容量上限要能讓 Googlebot 為所有重要內容建立索引,但又不會讓伺服器超過負荷。
檢索容量上限可能因下列因素而有所起伏:
- 檢索健康狀態:如果網站連續一陣子的回應速度都很快,檢索容量上限就會提高,讓 Googlebot 可使用更多連線進行檢索。如果網站的回應速度變慢或出現伺服器錯誤,檢索容量上限則會降低,Googlebot 的檢索次數也會隨之減少。
- Google 的檢索能力上限:Google 擁有許多硬體資源,但數量並非無限,我們仍然需要依據現有資源取捨分配。
檢索需求
一般來說,Google 會將要檢索的網站與其他網站進行比較,依據網站規模、更新頻率、網頁品質和關聯性,分配檢索需要的時間。
以下是決定檢索需求的幾項重要因素:
- 系統對網址庫的判斷:Googlebot 會在未經您說明的情況下,嘗試檢索您網站上所有或大部分的已知網址;如果這當中存在許多重複網址,或者因為其他原因根本不需要檢索 (例如網址已移除、內容不重要等等),等於 Google 浪費許多時間檢索您的網站。這也是您最能主動控制的因素。
- 熱門程度:為了盡可能在索引中提供最新的資訊,在網際網路上越熱門的網址,其檢索頻率也會越高。
- 過時程度:我們的系統希望能以足夠的頻率重新檢索文件,以便及時反映任何變更。
此外,關聯到整個網站的事件 (例如網站遷移) 可能會使檢索需求增加,因為我們需要為新網址中的內容重新建立索引。
總結
綜合檢索容量和檢索需求兩個層面來看,Google 會將網站檢索預算視為「Googlebot 有能力且想要檢索的網址數量集合」。假如檢索需求較低,即使未達檢索容量上限,Googlebot 也會降低對網站的檢索頻率。
最佳做法
請遵循下列最佳做法,盡可能提升檢索效率:
- 管理網址庫:使用適當的工具告訴 Google 要檢索哪些網頁,以及不要檢索哪些網頁。如果 Google 花費太多時間檢索不適合建立索引的網址,Googlebot 可能會判定網站的其他部分不值得花時間查看,也不會提高預算來檢索網站。
- 整合重複的內容。排除重複內容,讓系統能著重於檢索獨特的內容,而不只是網址不重複而已。
- 透過 robots.txt 禁止系統檢索網址。 有些網頁對使用者而言可能很重要,但您並不希望這些網頁出現在搜尋結果中,例如會重複連結網頁資訊的無限捲動頁面,或是相同網頁的不同排序版本。如果無法依照清單第一條所說的方式進行整合,請使用 robots.txt 封鎖這些對搜尋而言不重要的網頁。透過 robots.txt 封鎖網址會大幅降低系統為網址建立索引的機率。
-
如果網頁已永久移除,請傳回
404
或410
狀態碼。 Google 不會忘記已知的網址,但404
狀態碼是很強烈的信號,會告訴 Google 不要再檢索該網址。相較來說,系統會在檢索佇列中將遭到封鎖的網址保留較長一段時間,並在解除封鎖後重新進行檢索。 - 排除
soft 404
錯誤。系統會繼續檢索soft 404
網頁,白白浪費你的預算。請查看索引涵蓋範圍報表是否有soft 404
錯誤。 - 隨時保持 Sitemap 為最新狀態。Google 會定期讀取 Sitemap,因此請務必在其中納入您希望 Google 檢索的所有內容。如果網站內容已經更新,建議加入
<lastmod>
標記。 - 避免使用過長的重新導向鏈結,因為這種做法會對檢索造成負面影響。
- 確保網頁擁有良好的載入效率。 如果 Google 能夠以更快的速度載入並轉譯網頁,或許就能讀取網站中的更多內容。
- 監控網站的檢索作業。 請監控網站在檢索期間是否有任何可用性問題,並設法讓檢索作業更有效率。
監控網站的檢索和索引作業
以下幾個重要步驟可協助監控網站的檢索情形:
查看 Googlebot 是否在網站上遇到可用性問題
改善網站可用性不一定能提高檢索預算,Google 會依據前述的檢索需求決定最佳檢索頻率。不過,可用性問題確實會造成 Google 無法依據需求檢索您的網站。
診斷方式:
透過檢索統計資料報告查看網站的 Googlebot 檢索記錄。這份報告會顯示 Google 在網站上遇到可用性問題的時間。如果報告顯示網站出現可用性錯誤或警告,請查看「主機可用性」圖表,找到 Googlebot 要求次數超過紅色限制線的部分,然後按一下圖表,查看無法檢索的網址,嘗試找出這些網址與網站發生的問題之間有何關聯。
此外,您也可以使用網址檢查工具測試網站上的幾個網址。如果該工具傳回「超過主機負載」的警告,表示 Googlebot 在您網站上找到的網址過多,無法全部檢索。
處理方式:
- 請參閱檢索統計資料報告的說明文件,瞭解如何找出並解決部分可用性問題。
- 封鎖不希望受到檢索的網頁 (請參閱管理網址庫一節)。
- 加快網頁的載入和轉譯速度 (請參閱改善網站的檢索效率一節)。
- 提升伺服器負載量。如果覺得 Google 在檢索網站時已持續觸及伺服器負載量的上限,但卻還有其他重要網址尚未受到檢索或更新,那麼增加伺服器資源或許能讓 Google 檢索您網站上的更多網頁。請查看檢索統計資料報告中的主機可用性記錄,瞭解 Google 的檢索頻率是否經常超出上限。如果是的話,請先提高伺服器資源一個月,並觀察這段期間的檢索要求數量是否有所提升。
查看網站中是否有應檢索而未檢索的部分
Google 會盡可能在網站上停留足夠的時間,以便找到所有優質且對使用者有價值的內容,並為這些內容建立索引。如果您認為 Googlebot 漏掉某個重要內容,可能是因為 Googlebot 不知道該內容存在、該內容已對 Google 封鎖,或者是網站的可用性限制了 Google 的存取 (也有可能是因為 Google 試圖避免您的網站超載)。
診斷方式:
Search Console 不會針對您的網站提供可依據網址或路徑進行篩選的檢索記錄,但您可以檢查網站記錄,確認 Googlebot 是否已檢索某個特定網址。不過,這些完成檢索的網址是否已建立索引,則不在本文的討論範圍。
提醒您,對大部分網站而言,Googlebot 至少要花上數天的時間才會注意到新網頁的存在。除了新聞網站這類有時效性的網站之外,大部分網站都不應預期新網址能在發布的同一天受到檢索。
處理方式:
當網頁新增至網站後,如果未在合理的時間內受到檢索,可能是因為:Google 不知道這些網頁存在、網頁內容遭到封鎖、網站已達到伺服器負載量上限,或者您用完了檢索預算。
- 告訴 Google 您增加了新網頁:更新 Sitemap 以反映這些新的網址。
- 檢查 robots.txt 規則,確認你並未意外封鎖了網頁。
- 重新審視檢索的優先順序 (也就是謹慎使用檢索預算)。請妥善管理網址庫,並提升網站的檢索效率。
- 確認伺服器負載量並未用盡。 如果 Googlebot 偵測到伺服器無法回應檢索要求,便會縮減檢索次數。
請注意,如果網頁的內容價值低落或者沒有使用者要求存取該類內容,那麼即使網頁已檢索完成,也不會顯示在搜尋結果中。
查看檢索更新內容的速度是否夠迅速
如果我們遺漏了網站上的新網頁或更新後的網頁,可能是因為我們尚未發現這些網頁,或是還未注意到網頁已經更新。您可以採取下列方式,協助我們注意到網頁的更新內容。
請注意,Google 致力於以合理且及時的方式查看網頁並建立索引,對大多數網站而言這些作業至少需要三天的時間。除非是新聞網站,或者網站擁有其他高價值的時效性內容,否則 Google 不會在網頁發布的同一天為其建立索引。
診斷方式:
請檢查網站記錄,查看 Googlebot 檢索特定網址的時間。
如要瞭解索引的建立日期,請使用網址檢查工具,或透過 Google 搜尋您所更新的網址。
處理方式:
建議做法:
- 如果網站有新聞內容,請使用新聞 Sitemap。
- 在 Sitemap 中使用
<lastmod>
標記,指出已建立索引的網址在什麼時候更新了內容。 - 使用簡單的網址架構,協助 Google 順利找到您的網頁。
- 提供標準的可檢索
<a>
連結,協助 Google 順利找到您的網頁。
請避免:
- 每天多次提交相同且無變動的 Sitemap。
- 預期 Googlebot 會檢索 Sitemap 中的所有內容或立即進行檢索。 Sitemap 是向 Googlebot 提出實用的建議做法,但並非必要。
- 在 Sitemap 中加入不想在 Google 搜尋中顯示的網址。 這麼做可能會讓檢索預算浪費在您不希望建立索引的網頁上。
改善網站的檢索效率
提升網頁載入速度
Google 的檢索成效受限於頻寬、時間和 Googlebot 執行個體的可用性。 如果您的伺服器能更迅速地回應要求,或許我們就能在您的網站上檢索更多網頁。話雖如此,由於 Google 只希望檢索優質的網頁內容,因此單方面加快劣質網頁的載入速度,也無法讓 Googlebot 在網站上檢索更多網頁;相反地,如果我們認為您的網站還有其他優質內容,也可能會提高檢索預算來檢索這些內容。
您可以透過以下方式為網頁和資源進行檢索作業的最佳化調整:
- 使用 robots.txt 禁止 Googlebot 載入不重要的大型資源。 請務必只封鎖非關鍵性的資源,也就是不影響瞭解網頁意義的資源 (例如裝飾性的圖片)。
- 確保網頁能迅速載入。
- 留意不要使用過長的重新導向鏈結,這會對檢索作業造成負面影響。
- 回應伺服器要求所花費的時間以及轉譯網頁所需的時間,兩者都相當重要,這其中也包括圖片和指令碼等內嵌資源的載入和執行時間。請特別留意需要建立索引的大型資源或慢速資源。
使用 HTTP 狀態碼指定內容變更
一般來說,Google 支援使用 If-Modified-Since
和 If-None-Match
HTTP 要求標頭進行檢索。Google 檢索器不會隨著所有檢索嘗試傳送標頭;會視要求的用途而定 (舉例來說,AdsBot 較有可能設定 If-Modified-Since
和 If-None-Match
HTTP 要求標頭)。如果檢索器傳送 If-Modified-Since
標頭,標頭值就是上次檢索內容的日期和時間。根據這個值,伺服器可能會選擇傳回沒有回應主體的 304 (Not Modified)
HTTP 狀態碼,在這種情況下,Google 會重複使用上次檢索的內容版本。如果內容晚於檢索器在 If-Modified-Since
標頭中指定的日期,伺服器會傳回含有回應主體的 200 (OK)
HTTP 狀態碼。
如果 Googlebot 上次造訪網址後內容並未變更,那麼不論要求標頭為何,您都可以為任何 Googlebot 要求傳送 304 (Not Modified)
HTTP 狀態碼及無回應主體。這樣可以節省伺服器處理時間和資源,進而間接提高檢索效率。
隱藏不想在搜尋結果中顯示的網址
如果將伺服器資源浪費在不必要的網頁上,會使得真正有價值的網頁錯失檢索機會,導致 Googlebot 發掘網站上優質新內容或更新版內容的進度嚴重延遲。
如果 Google 搜尋服務檢索到網站上有許多您不希望檢索的網址,可能會對網站的檢索和索引成效產生負面影響。一般來說,這類網址有以下幾種:
- 多面向導覽和工作階段 ID:多面向導覽通常是網站內的重複內容;而工作階段 ID 和其他只會排序或篩選網頁的網址參數一樣,都不會提供新內容。請使用 robots.txt 封鎖多面向導覽網頁。
- 重複的內容:請協助 Google 識別重複的內容,避免不必要的檢索作業。
soft 404
網頁:如果網頁已不存在,請傳回404
錯誤碼。- 遭入侵的網頁:請務必查看安全性問題報告,如果找到任何遭入侵網頁,請加以修正或移除。
- 無限空間網址和 Proxy:請使用 robots.txt 禁止 Google 檢索這些網址。
- 劣質內容和垃圾內容:顯然地,避免這類內容沒有壞處。
- 這類內容包括購物車頁面、無限捲動頁面,以及會執行動作的網頁 (例如「註冊」頁面或「立即購買」頁面)。
建議做法:
- 如果完全不希望 Google 檢索某個資源或網頁,請使用 robots.txt 加以封鎖。
- 如果有多個網頁都重複使用相同的資源 (例如共用圖片或 JavaScript 檔案),請在每個網頁中以相同網址參照該資源,以便 Google 能快取同樣的資源並重複使用,不必對同一個資源發出多次要求。
請避免:
- 請勿定期新增或移除 robots.txt 中的網頁或目錄,試圖藉此重新分配網站的檢索預算。robots.txt 只應用來封鎖您希望 Google 永遠不要顯示的網頁或資源。
- 請勿透過輪流抽換 Sitemap 內的項目或其他暫時隱藏機制,試圖重新分配預算。
處理網站的過度檢索問題 (緊急情況時)
Googlebot 會採用演算法來避免過度檢索您的網站。 不過,如果發現 Googlebot 的檢索要求已讓網站不堪負荷,建議試試以下應對方式。
診斷方式:
監控伺服器,確認 Googlebot 對你的網站是否提出過多檢索要求。
處理方式:
在情況緊急時,建議按照下列步驟減緩 Googlebot 的檢索頻率:
- 在伺服器超載時,「暫時」針對 Googlebot 要求傳回
503
或429
HTTP 回應狀態碼。Googlebot 會在接下來的 2 天內持續嘗試重新檢索這些網址。請注意,執行傳回這類「無法使用」代碼的時間如果超過數天,會導致 Google 永久降低網站上網址的檢索頻率,甚至永久停止檢索您的網站,因此,請一併執行其他後續步驟。 -
一旦檢索頻率降低,請停止針對檢索要求傳回
503
或429
HTTP 回應狀態碼;如果執行傳回503
或429
的時間超過 2 天,會導致 Google 從索引中移除這些網址。 - 長期監控網站的檢索狀況和主機的負載量。
- 如果出現問題的檢索器是其中一個 AdsBot 檢索器,那麼起因很可能是您之前曾為網站建立的動態搜尋廣告目標,而 Google 正試圖檢索這個網站。這項檢索作業每 3 週會進行一次,如果伺服器負載量不足以處理這些檢索要求,建議限制廣告目標數量,或是增加伺服器負載量。
關於檢索的迷思與正確資訊
測試看看您是否瞭解 Google 檢索網站及建立網站索引的方式。
5xx
HTTP 回應狀態碼 (伺服器錯誤) 或是連線逾時,則表示伺服器運作情況不佳,檢索速度也會因此變慢。建議您密切注意 Search Console 中的檢索統計資料報告,盡量避免伺服器發生錯誤。
nofollow
規則會影響檢索預算。nofollow
,但只要網站上的其他網頁 (或網路上的任何網頁) 未對該網址加上 nofollow
標籤,系統就仍會檢索該網址。
noindex
控制檢索預算。noindex
規則。不過,
noindex
可協助您將內容排除在索引之外。如要確保這些網頁不會編入 Google 索引中,請繼續使用 noindex
,而且不必擔心檢索預算。請特別注意,如果使用 noindex
或其他方式從 Google 的索引中移除網址,Googlebot 就可以專心處理您網站上的其他網址,這表示長期下來,noindex
可以間接釋出網站的檢索預算。4xx
HTTP 狀態碼的網頁會浪費檢索預算。4xx
HTTP 狀態碼 (不含 429
) 的網頁不會浪費檢索預算。Google 嘗試檢索網頁,但收到狀態碼且沒有其他內容。