關鍵渲染路徑
關鍵渲染路徑
定義
瀏覽器從收到 HTML 到畫出第一個像素之間,必須依序完成的那串工作。排在這條路徑上的資源(印在 <head> 的同步 CSS、同步 JS)會擋住繪製,稱為渲染阻塞資源;不在路徑上的資源可以邊載邊顯示。
改善首屏速度的核心手法通常不是「刪掉檔案」,而是「把檔案移出關鍵路徑」:總下載量可能一位元組都沒少,但瀏覽器不必等它就能開始畫,首屏時間就下降。
關鍵數據點(附來源)
- 一支 232KB 的 Google Fonts CSS 印在
<head>,單獨造成 12.2 秒的渲染阻塞(lighthouse-cli-website-speed-diagnosis) - 同一個站的伺服器回應(Root document)只花 80ms,證明瓶頸與主機無關(同上)
- 前 15 大網路請求中 12 個是字型檔;佈景主題一次載三套字型、七種字重(同上)
- 改成
media="print"+onload的非阻塞載入後,FCP 從 13.8s 降到 1.3s,快 91%(同上) - 補上
fonts.googleapis.com的 preconnect 單獨再省 0.34 秒(同上)
前提與局限性
- 非阻塞載入有代價:字型延後套用會造成切換位移,本案 CLS 從 0 升到 0.054。
media="print"+onload的技巧依賴 JavaScript,需要<noscript>fallback。- 中文字型是這個問題的放大器(單一字重數百 KB 到 MB),純英文站同樣的錯誤影響小一個數量級。
- 移出關鍵路徑只改善首屏,不減少總傳輸量;頻寬受限的裝置仍要付下載成本。
- 瓶頸修掉之後會移動:本案首屏解決後,下一個瓶頸變成未轉 WebP 的圖片(LCP 4.3s)。
衝突標記
無。與 [[WordPress 效能最佳化]] 的後端診斷路徑互補而非衝突,兩者靠 TBT/CLS/TTFB 三個數字分流。
關聯概念
- [[WordPress 效能最佳化]]
- [[除錯排查方法論]]
- [[SEO 結構基礎]]
- 方法論:[[Lighthouse CLI 前端效能診斷流程]]