如何為網頁效能最佳化圖片
如何為網頁效能最佳化圖片
圖片佔據了典型網頁總下載位元組的 50% 到 60%。每張未最佳化的圖片都會增加載入時間、提高跳出率,並損害你的搜尋引擎排名。Google 的 Core Web Vitals——特別是最大內容繪製(LCP)——直接衡量圖片載入效能,使圖片最佳化成為你可以對網站做出的影響最大的變更之一。
本指南涵蓋了完整的圖片最佳化策略,從壓縮基礎知識到進階的傳輸技巧。
1. 在發佈前壓縮每張圖片
切勿直接上傳來自相機、手機或設計工具的原始圖片。壓縮應是你發佈工作流程中的第一步。
關鍵原則:
- 照片能夠容忍較激進的有損壓縮。JPEG 和 WebP 從品質 80 開始,若檔案大小目標需要,再向下調整。
- 螢幕截圖、標誌和圖形則受惠於無損壓縮。PNG 和無損 WebP 可保留有損壓縮會模糊化的銳利邊緣和文字。
- AVIF 提供最佳的壓縮比率,但需要更多的編碼時間。對於經常下載且很少更新的圖片使用此格式。
- 以原始格式進行壓縮,避免因不必要的格式轉換而產生的世代損失。
預期節省效果:
一個在上傳前壓縮圖片的典型工作流程,可將圖片總重量減少 40% 到 80%,且幾乎沒有明顯的品質損失。
2. 提供正確的尺寸
在 300 像素寬的容器內提供 4000 像素寬的照片,是網頁上最常見的效能錯誤。瀏覽器會下載全部 4000 像素然後再將其縮小,浪費頻寬和記憶體。
建立多種尺寸變體:
- 320 到 480 像素寬,用於手機螢幕
- 768 到 1024 像素寬,用於平板電腦
- 1200 到 1920 像素寬,用於桌上型顯示器
- 2560 像素寬,用於高密度 retina 顯示器(2x)
將最大的變體與圖片在你的版面配置中顯示的最大寬度匹配,並針對高 DPI 螢幕乘以 2。
3. 使用帶有 Srcset 的響應式圖片
HTML 中的 srcset 和 sizes 屬性會根據使用者的視窗寬度和裝置像素比,告訴瀏覽器該下載哪個尺寸的圖片。
<img
src="photo-800.jpg"
srcset="
photo-400.jpg 400w,
photo-800.jpg 800w,
photo-1200.jpg 1200w,
photo-1600.jpg 1600w
"
sizes="(max-width: 600px) 100vw, (max-width: 1200px) 50vw, 800px"
alt="Descriptive text for accessibility and SEO"
/>
這個簡單的模式可以在行動裝置上將圖片頻寬減少 40% 到 60%,且沒有任何可見的品質差異。
4. 為最大內容繪製(LCP)最佳化
LCP 衡量最大可見元素(通常是主視覺圖片)渲染所需的時間。Google 認為 LCP 在 2.5 秒或以下為良好。
最佳化圖片的 LCP:
- 預先載入主視覺圖片,讓瀏覽器提早發現它。在你的文件 head 中加入
<link rel="preload" as="image" href="hero.webp">。 - 積極壓縮主視覺圖片——它通常是瀏覽器下載的第一個也是最大的資源。
- 為主視覺圖片提供 WebP 或 AVIF,並以 JPEG 作為備用方案。
- 正確設定主視覺圖片的尺寸。不要在 1200 像素的主視覺區域中提供 4000 像素的圖片。
- 不要對主視覺圖片或任何位於首屏的圖片使用延遲載入。延遲載入會延遲下載,從而損害 LCP。
5. 為非首屏圖片啟用延遲載入
在初始畫面中不可見的圖片不需要立即載入。loading="lazy" 屬性告訴瀏覽器將圖片載入推遲到圖片接近進入視窗前。
<img src="gallery-photo.jpg" loading="lazy" alt="Gallery image" />
延遲載入可將圖片密集型頁面的初始頁面重量減少 30% 到 50%。與壓縮結合使用,影響是變革性的。
6. 移除圖片中繼資料
EXIF 資料——相機設定、GPS 座標、時間戳——會為每張圖片增加不必要的位元組。移除中繼資料通常可節省 5% 到 15% 的檔案大小,且完全沒有視覺變化。將中繼資料移除設為壓縮工作流程中的標準步驟。
7. 使用內容傳遞網路(CDN)
CDN 會將你的圖片分發到全球各地的伺服器,縮短使用者與圖片之間的物理距離。這改善了圖片請求的 Time to First Byte。
部分 CDN 還提供即時的圖片轉換功能:
- 自動格式協商(在支援時提供 WebP 或 AVIF)
- 根據裝置和視窗動態調整大小
- 即時壓縮調整
如果無法使用專用的 CDN,至少使用 HTTP/2 或 HTTP/3,以便在單一連線中同時下載多張圖片。
8. 考慮圖片解碼效能
大型圖片不僅需要時間下載,也需要時間解碼。瀏覽器必須在渲染 JPEG、PNG、WebP 或 AVIF 資料之前先對其解壓縮。JPEG 和 WebP 在大多數裝置上解碼速度很快,而 AVIF 解碼的計算成本較高——這是對低階行動裝置需要考慮的因素。
在非關鍵圖片上使用 decoding="async" 屬性,讓瀏覽器在不阻塞其他內容的情況下進行解碼:
<img src="photo.jpg" decoding="async" loading="lazy" alt="Description" />
建立你的最佳化工作流程
一個端到端的圖片最佳化流程如下所示:
- 使用適合品質的工具,以原始格式壓縮圖片。
- 在壓縮期間移除中繼資料。
- 調整為所需的顯示尺寸,建立多種變體。
- 在你的 HTML 範本中實現
srcset和sizes。 - 預先載入主視覺圖片,對所有非首屏內容使用延遲載入。
- 透過 CDN 提供以獲得全球效能。
- 使用 Lighthouse 或 PageSpeed Insights 測量 LCP 和圖片總重量。
- 反覆調整品質設定,直到滿足你的效能預算。
立即使用我們的免費線上圖片壓縮工具開始最佳化你的圖片。上傳 PNG、JPEG、WebP 或 AVIF 格式的圖片,下載可直接用於生產環境的壓縮版本——無需格式轉換,無需品質妥協。