網頁圖片優化完整指南:讓網站載入快三倍
在多數網站上,圖片佔了總傳輸量的 50–70%。這代表圖片優化通常是投報率最高的效能改善——而且 Google 已把頁面體驗納入排名因素。
① 尺寸:別讓瀏覽器做縮放
最常見的浪費:上傳 4000 像素的圖,卻用 CSS 縮成 600 像素顯示。使用者下載了整整 4000 像素的資料,卻只看到 600 像素的畫面。
做法:輸出實際顯示寬度的 1–2 倍(考慮高解析度螢幕),用尺寸調整工具處理。
② 格式:優先使用 WebP
同畫質下 WebP 比 JPG 小 25–35%,比 PNG 小 50% 以上,且所有主流瀏覽器都支援。轉換工具可批次處理。
③ 一定要寫 width 與 height
<img src="photo.webp" alt="說明" width="1200" height="800">
沒有指定尺寸時,瀏覽器在圖片載入前不知道要預留多少空間,只能先當成 0 高度,等載入後才把內容往下推——這就是所謂的版面位移(CLS),是 Core Web Vitals 的評分項目之一,也是最惱人的使用體驗之一(正要點按鈕,畫面突然跳動)。
填入原始像素尺寸即可,實際顯示大小仍可用 CSS 控制:
img { max-width: 100%; height: auto; }
④ 延遲載入,但首屏不要
<img src="..." loading="lazy" decoding="async">
loading="lazy" 讓瀏覽器只在圖片接近可視範圍時才下載,可大幅減少初次載入的流量。
但首屏的主要圖片千萬不要加——那會延後它的顯示時間,反而讓 LCP(最大內容繪製)變差。首圖應該用 fetchpriority="high" 提高優先度。
⑤ 善用 CDN 與快取
把圖片放在 CDN 上,訪客會從距離最近的節點取得檔案。同時設定長效快取(例如一年),讓回訪的使用者不必重複下載。
設定長效快取的前提是檔名不重複——每個網址永遠對應同一份檔案。若圖片會更新,應該改用新檔名而不是覆蓋。
完整範例
<!-- 首屏主圖:不 lazy,提高優先度 -->
<img src="hero.webp" alt="產品主圖"
width="1600" height="900" fetchpriority="high">
<!-- 內文配圖:延遲載入 -->
<img src="figure.webp" alt="流程示意圖"
width="1200" height="800" loading="lazy" decoding="async">
alt 文字別漏掉
alt 是搜尋引擎理解圖片內容的主要依據,也是螢幕閱讀器唯一能傳達的資訊。寫法要點:
- 描述圖片內容,不要塞關鍵字
- 純裝飾用的圖片寫
alt="",讓螢幕閱讀器略過 - 不需要寫「圖片」「照片」這種詞,螢幕閱讀器會自己說
檢查清單
- ☐ 圖片尺寸不超過實際顯示需求的 2 倍
- ☐ 使用 WebP 格式
- ☐ 每個 img 都有 width、height
- ☐ 非首屏圖片加 loading="lazy"
- ☐ 首屏主圖沒有 lazy,並設 fetchpriority="high"
- ☐ 每張圖都有合適的 alt
- ☐ 圖片放在 CDN 並設定長效快取
相關閱讀:HTML img 語法完整教學、WebP 是什麼?