2 MB 上限表示 Googlebot 在達到每個 URL 2 MB 的配額後,就會停止擷取支援的檔案;此配額是以未壓縮資料計算,因此接近該上限的 HTML 文件可能只會被部分擷取。在 HTML Page Weight Analyzer 中,這個上限會顯示為貼上回應本文的保守參考值 2,000,000 bytes。這是診斷性比較,而不是通過/不通過的認證:Google 的配額也會用於 HTTP 標頭,而分析器只能看到你貼上的本文。如果本文低於 2,000,000 bytes,並不能證明 Googlebot 已收到每一個 byte;如果高於此數值,則表示本文超過分析器的保守本文參考值,但實際擷取停止的確切位置仍取決於真正的標頭和回應。此工具不會擷取 URL、計算壓縮後的傳輸大小,也不會檢查 Google 索引了哪些內容。它的用途是顯示文件本身的原始碼重量來自何處——內嵌指令碼、內嵌樣式、嵌入的 data URI,以及外部參考文字——讓你能減少真正的原始碼層級熱點,並重新量測已部署的回應。

what does the 2 mb limit mean when using html page weight html page size analyzer
在 HTML Page Weight Analyzer 中,2 MB 是什麼意思?

Googlebot 的 2 MB 上限代表什麼

Google 公布的 crawler 文件指出,Googlebot 會 crawler 支援檔案的前 2 MB,並在上限處停止擷取。這不是頁面品質分數、排名門檻,也不保證 2 MB 之後的內容會被索引。此上限適用於未壓縮資料,而非壓縮後的傳輸大小。Google 關於 crawler 上限的技術說明也指出,HTTP 標頭會占用每個 URL 配額的一部分。因此,即使本文為 2,000,000 bytes,計入標頭後仍可能超過實際配額,而貼上本文的工具無法找出確切的停止位置。

量測項目 Googlebot 的每個 URL 擷取 HTML Page Weight Analyzer
未壓縮的 HTML 本文 計入擷取配額 量測貼上文字中確切的 UTF-8 bytes
HTTP 回應標頭 占用部分配額 無法從貼上的本文量測
內容編碼 上限與未壓縮資料有關 不會計算 gzip 或 Brotli 傳輸大小
外部檔案 可能會在各自的限制下另行擷取 列出參考內容,但不下載其內容載荷

因此,分析器會顯示低於其十進位本文參考值的剩餘 bytes,或高於該值的超額量,同時讓標頭的注意事項持續可見。這些標籤是保守比較,而不是 crawler 認證。由於 Google 可能會變更限制,請查看來源及其日期,不要將 2 MB 視為永久常數。如需完整的區分,請參閱為何貼上 2,000,000 bytes 並不保證 Googlebot 能完成擷取。

HTML Page Weight Analyzer 量測的內容

當你需要檢查已擷取的回應,而不是估算實際頁面時,請使用 HTML Page Weight Analyzer。它會回報貼上文字確切的 UTF-8 byte 長度、Unicode 碼點數、內嵌指令碼和樣式元素占用的 bytes 與百分比、嵌入的 data URI bytes,以及數量受限的外部資源參考清單。所有作業都在瀏覽器中執行:HTML 不會被上傳、不會當成頁面擷取,也不會執行。貼上的指令碼不會執行,表單不會送出,而參考的圖片、iframe、樣式表或指令碼 URL 也不會被請求。

byte 總數來自瀏覽器的 TextEncoder.encode() 方法,而不是 JavaScript 字串長度。瀏覽器字串會計算 UTF-16 程式碼單位,而分析器則計算 UTF-8 bytes。ASCII 字元通常占用 1 個 UTF-8 byte,但帶重音符的字母、CJK 文字和 emoji 可能占用更多位元組。解析器使用 detached template fragment 和瀏覽器原生的 HTML tokenizer,有助於遵循 raw-text 邊界,例如 script、style、textarea 和 title 的內容。巢狀的 template 內容仍維持非作用狀態,也不列入資源清單。嚴格的輸入上限、共用的元素上限,以及受限的 URL 顯示,可保護主執行緒和輸出,避免意外輸出整個網站的內容或對抗性標記。

使用分析器量測 HTML 回應

  1. 擷取原始回應本文。 建議使用 View Source、已儲存的回應本文,或經授權的 curl 擷取,而不要在 JavaScript 執行後複製 Elements 面板的內容。Elements 面板可能包含原回應中從未出現的變更,也可能省略原本存在的原始碼細節。經授權的 curl 擷取可使用類似 curl --compressed -sS https://www.example.com/page/ -o response.html 的指令,儲存解碼後的本文。
  2. 貼上該未壓縮的 HTML 本文。 如果你只想診斷一個頁面,請勿貼上整個網站的內容。如果伺服器會依使用者代理、語系、驗證資訊或裝置而提供不同回應,請分別量測每個具代表性的變體。
  3. 執行分析。 分析器會在本機處理貼上的文字,產生 byte 總數和原始碼細分,且不會請求該頁面或其參考的資源。
  4. 檢視完整的細分結果。 請檢查 UTF-8 bytes 總數、2,000,000-byte 參考值、內嵌指令碼與樣式占比、嵌入的 data URI 重量,以及受限的外部參考清單。
  5. 修正最大的原始碼層級熱點。 請從占用最多本文重量的類別開始,而不是一次變更數個無關部分。採取能處理主要問題的最小且如實的變更。
  6. 部署後再次擷取回應。 變更後重新量測實際提供的 HTML 本文。請記住,真正的回應標頭和另行擷取的資源不在這項貼上本文的計算範圍內。

解讀本文、內嵌重量和參考內容

分析器中的數字描述的是你提供的原始碼,但每個數字回答的問題各不相同。請運用下列區分,避免將醒目的總數視為頁面傳遞的完整說明。

分析器輸出 正確解讀
UTF-8 bytes 總數 貼上的 HTML 本文經編碼後的確切重量
Unicode 碼點數 Unicode 字元數,而非 bytes
內嵌指令碼和樣式重量 這些元素內的原始碼文字,計入本文總數
Data URI 重量 完整且支援的屬性值僅計算一次;不會再加計解碼後的內容載荷 bytes
外部參考清單 只有參考文字和標籤;不會下載或加計連結檔案的內容載荷
srcset 處理方式 只保留一項宣告,因為單純以逗號分割可能會錯誤處理 data URL

外部樣式表、指令碼、圖片、frame、preload 或媒體參考,只會貢獻出現在 HTML 回應中的字元。Googlebot 和 Web Rendering Service 可能會另行擷取這些資源,並受各自的限制。分析器能辨識支援的直接資源屬性,但不會將任意的 title 或 data-* 屬性視為資源。冗長的外部參考清單可能會揭露重複標籤,但參考數量本身並不是效能分數。同樣地,所顯示的剩餘 byte 數是相對於保守本文參考值計算,而不是計入標頭後,Googlebot 實際請求的精確餘額。

減少最大的原始碼層級熱點

這份細分結果是一張除錯地圖。大量內嵌指令碼 bytes 可能指向序列化應用程式狀態、重複的 hydration 資料,或嵌入的函式庫。大量內嵌樣式 bytes 可能表示重複的關鍵 CSS。龐大的 data URI 總數可能揭露直接嵌入標記中的 Base64 圖片或字型。冗長的外部參考清單可能會顯示重複標籤,但在這項特定量測中,每項參考仍然只貢獻其原始碼文字。

找出最大的熱點後,請進行最小且如實的修正。將適當的程式碼移至可快取的外部檔案、移除重複的序列化資料、避免在 data URI 中嵌入大型二進位內容載荷,並將關鍵的中繼資料和內容放在回應前段。將程式碼外部化並不會讓其內容載荷消失:Google 可能會另行擷取新檔案。因此,分析器結果應搭配對已部署回應、其標頭及其參考資源的檢視。

另行驗證已部署的回應

分析器不是網路瀑布圖、壓縮計算器或 Core Web Vitals 測試工具。它不知道真正的 gzip 或 Brotli 傳輸大小、伺服器標頭、快取行為、較晚發生的用戶端 DOM 變更、資源回應大小、執行成本、算繪成本,也不知道 Google 實際索引了哪些內容。當這些事實很重要時,請使用瀏覽器 DevTools 或經授權的 curl 請求,並另行驗證已部署的 bytes、回應標頭、算繪後的頁面,以及可取得的索引證據。

較小的本文可以降低觸及擷取上限的風險,但不能保證完整 crawler、索引或排名。同樣地,本文高於參考值並不能證明 Google 省略了重要內容,因為確切的上限位置取決於實際回應和標頭。實際目標是在保留實用內容、中繼資料和功能的同時,移除可避免的原始碼重量,然後在具代表性的已部署回應上確認結果。

相關閱讀:使用 HTML Page Weight Analyzer 稽核 HTML 回應。