@SoNiceInfo 發布於 2026年9月22日 (更新:2026年9月24日)
WebP 與 AVIF 之爭,簡短的答案是兩種都輸出,再用 <picture> 元素提供。 把 AVIF 列在第一、WebP 第二,最後以 JPEG 或 PNG 作為備援:支援的瀏覽器會拿到最小的檔案,其他瀏覽器也照樣能顯示正常的圖片。 如果只能提供一種格式,重視相容性與編碼速度就選 WebP,想要最大幅度縮小檔案、或需要 HDR 與 10/12 位元色彩深度就選 AVIF。
WebP 是 Google 以 VP8 視訊編解碼器為基礎的圖片格式;AVIF 則是以 AV1 視訊編解碼器為基礎的圖片格式。 兩者都支援有損與無損壓縮、透明與動畫,差別在於壓縮效率、位元深度與編碼速度。
| 特性 | JPEG | WebP | AVIF |
|---|---|---|---|
| 壓縮率(有損、相同畫質) | 基準 | 約小 25~35% | 約小 50% |
| 無損壓縮 | 不支援 | 支援(比 PNG 小約 26%) | 支援 |
| 透明/動畫 | 不支援 | 支援 | 支援 |
| 10 位元/12 位元色彩深度 | 不支援 | 不支援(8 位元) | 支援 |
| HDR/廣色域 | 不支援 | 有限 | 完整支援 |
| 編碼速度 | 快 | 快 | 明顯較慢 |
| 最大尺寸 | 65,535 × 65,535 px | 16,383 × 16,383 px | 能處理比 WebP 更大的圖片 |
| 漸進式顯示 | 支援 | 不支援 | 不支援 |
| 瀏覽器支援 | 全部 | 所有主要瀏覽器(Safari 為 macOS 11/iOS 14 以後) | 所有主要瀏覽器(Safari 為 macOS 13/iOS 16 以後) |
壓縮率的數字是根據已發表的比較研究得出的概略值,會因圖片內容與編碼器設定而異。
以下是我在 Mac 上用指令列編碼器,轉換一張 1600×1064 px 的 JPEG 照片(230 KB)的結果。
# WebP (cwebp 1.6.0)
cwebp -q 80 in.jpg -o out.webp # 230 KB -> 112 KB
# AVIF (avifenc 1.4.2)
avifenc -q 60 -s 6 in.jpg out.avif # 230 KB -> 108 KB兩者都縮小到原始 JPEG 的一半以下。 但請記得,這只是一張圖片的結果,而且兩邊的品質設定並沒有以視覺畫質對齊。 品質數值在不同編碼器中的意義各不相同,因此用在實際網站上時,可靠的做法是親眼比較轉換後的圖片,再決定設定。


要在 Mac 上把整個資料夾的 PNG、JPG、HEIC 或 GIF 檔案轉成 WebP,Mac 用的 WebP 批次轉換 App「WebP Converter.」可免費開始使用。
要大量把 PNG、JPG 和 HEIC 檔案轉成 AVIF,可以試試 Mac 用的 AVIF 批次轉換 App「AVIF Converter.」,同樣可免費開始使用。
在 <picture> 中由上而下列出 <source> 元素,瀏覽器就會選擇第一個它支援的格式。 最後的 <img> 是備援,所以在任何環境中都會顯示圖片。
<picture>
<source type="image/avif" srcset="/images/photo.avif" />
<source type="image/webp" srcset="/images/photo.webp" />
<img src="/images/photo.jpg" alt="Describe the photo" width="1600" height="1064" loading="lazy" />
</picture>設定 width 和 height,可以避免圖片載入時發生版面位移(CLS)。 位於首屏、作為 LCP 元素的圖片,請不要加上 loading="lazy"。
WordPress 從 5.8 版起接受上傳 WebP,從 6.5 版起接受上傳 AVIF。 先前以 JPEG 或 PNG 上傳的圖片不會自動被取代,所以現有的素材仍需轉換後再替換。 處理 AVIF 時,伺服器的影像函式庫也必須支援 AVIF。
最快的途徑是 GUI App。把圖片或整個資料夾拖放進去就能大量轉換,輸出前還能親眼確認轉換前後的畫質。 這 3 款 App 都在 Mac 上進行轉換,不必上傳任何東西。
在指令列中,用 Homebrew 安裝 cwebp 和 avifenc。
brew install webp libavif詳細的操作步驟請參考另外的文章。
所有轉換都在 Mac 上進行
<picture> 元素同時提供兩種格式。商品數量多時,AVIF 的編碼時間會逐漸累積,因此實際的分工方式是:大部分商品圖用 WebP,主視覺與精選圖片用 AVIF。兩種都輸出,再用 picture 元素提供:AVIF 第一、WebP 第二,最後以 JPEG 或 PNG 作為備援。 如果只能選一種,重視相容性與編碼速度就選 WebP,想要最大幅度縮小檔案、或需要 HDR 與 10/12 位元色彩深度就選 AVIF。
概略來說,在畫質相近的情況下,WebP 比 JPEG 小約 25~35%,AVIF 則比 JPEG 小約 50%。 實際的差距很大程度取決於圖片與編碼器的設定。AVIF 在照片和平滑漸層上通常較佔優勢,而小圖示和簡單的圖形可能幾乎沒有差別。
只指向 AVIF 檔案的 img 標籤,在不支援 AVIF 的瀏覽器中什麼都不會顯示。 如果使用 picture 元素,依序列出 AVIF、WebP、JPEG 的來源,瀏覽器就會選擇第一個它支援的格式,所以每位訪客都能看到圖片。
編碼速度明顯比 WebP 或 JPEG 慢、不支援漸進式顯示,而且舊版的作業系統和 App 可能無法打開檔案。 在每次建置都要轉換大量圖片的工作流程中,編碼時間會變得相當明顯。
在指令列中,WebP 用 cwebp、AVIF 用 avifenc,兩者都能透過 Homebrew 安裝。 想在 GUI 中批次轉換、又不必上傳任何東西,WebP Converter. 和 AVIF Converter. 各自處理一種格式,Image Tool+ 則能用一個 App 輸出兩種格式。
<picture> 元素,依 AVIF → WebP → JPEG/PNG 的順序排列。