~/blog/wordpress-image-optimization-lazy-load-webp-guide.md
網站效能與架構優化 · 2025 / 09 / 15 · 7 views

圖片載入慢到讓人想砸電腦?WordPress 圖片優化完整手冊:從 Lazy Load 到 WebP 全攻略

Eric — 浪花科技創辦人 / AI 架構師
Eric
浪花科技創辦人 · AI 架構師
圖片載入慢到讓人想砸電腦?WordPress 圖片優化完整手冊:從 Lazy Load 到 WebP 全攻略
目錄 table-of-contents.md

高畫質產品照一張張塞上去,網站就慢得像烏龜爬,訪客等不到圖片出來就關掉分頁——而網頁過重的頭號戰犯,十之八九就是沒優化過的圖片。反過來說,圖片也是最容易拿到加速成效的地方。這篇從 Lazy Load 延遲載入到 WebP 格式轉換,把 WordPress 圖片優化的完整流程一次走完。

坦白說,每次看到客戶把 5MB 的單眼相機原圖直接上傳到 WordPress,然後問我為什麼網站這麼卡,我的內心都在淌血。圖片是網站的靈魂,但也是效能的雙面刃。今天,我就要以一個有點囉嗦的工程師視角,帶你徹底搞懂 WordPress 圖片優化與 Lazy Load 技術,從根本原因分析到實戰技巧,讓你親手打造出既美觀又飛快的網站。

為什麼你的 WordPress 網站圖片載入這麼慢?(先搞懂問題根源)

在我們動手優化之前,得先像個偵探一樣,找出拖慢網站的元兇。圖片載入緩慢,通常不是單一原因造成的,而是多個壞習慣累積的結果。來,我們一個一個揪出來。

未經壓縮的「原圖直上」是效能殺手

這絕對是第一名!現在手機、相機拍出來的照片動輒 5MB、10MB,解析度高得嚇人。直接上傳到網站,使用者每次打開頁面,瀏覽器就得辛辛苦苦地把這幾 MB 的資料全部下載下來。你想想看,如果一個頁面有十張這樣的圖,那根本是一場災難。別再相信「原圖直上畫質最好」的都市傳說了,在網頁上,超過 99% 的使用者根本看不出被智慧壓縮過的圖片跟原圖的細微差別,但他們絕對能感受到載入速度的天壤之別。

尺寸不對的圖片,浪費頻寬也拖慢速度

這又是另一個常見的誤區。假設你的網頁版位只有 800px 寬,你卻上傳了一張 4000px 寬的圖片,然後用 CSS 把它縮小。雖然看起來尺寸對了,但瀏覽器實際上還是下載了那張 4000px 的大圖!這就像你為了喝一小杯水,卻買了一整個水塔,完全是資源浪費。正確的做法是,在上傳前就將圖片裁切或縮放到接近最終顯示的尺寸。

一次載入所有圖片,使用者等到天荒地老

傳統的網頁載入方式是「一次到位」,也就是說,不管使用者有沒有看到,頁面上的所有圖片都會在第一時間開始下載。如果你的頁面很長,下方有很多圖片,那使用者就必須等所有圖片(包含那些他還沒捲動到的)都載入完成,才能看到完整的頁面。這就是所謂的「延遲載入 (Lazy Load)」技術要解決的問題。

過時的圖片格式,壓縮效率差

你還在用 JPG 和 PNG 嗎?它們是好東西,但不是最好的。身為一個活在 21 世紀的工程師,我必須向你大力推薦新世代的圖片格式,例如 Google 推出的 WebP。在相同的視覺品質下,WebP 的檔案大小可以比 JPG 小 25-35%,比 PNG 小 26%!這等於是免費的效能提升啊!

WordPress 圖片優化實戰:三大核心策略

好了,診斷完問題,接下來就是開處方的時候了。針對以上問題,我們有三大核心策略可以徹底改善你的 WordPress 網站圖片效能。

策略一:智慧壓縮與格式轉換 (WebP)

壓縮是第一步,也是最重要的一步。我們的目標是在「視覺品質」與「檔案大小」之間找到最佳平衡點。

  • 無損壓縮 (Lossless):在不降低任何圖片品質的情況下壓縮檔案,但壓縮率較低。適合用在需要精確細節的圖片,如 LOGO 或介面截圖(通常是 PNG 格式)。
  • 有損壓縮 (Lossy):會稍微犧牲一點點人眼幾乎無法察覺的細節,來換取極高的壓縮率。這對大部分的照片(JPG 格式)來說是最佳選擇。

當然,你不需要手動一張一張處理。WordPress 生態系有許多強大的自動化外掛:

  • ShortPixel Image Optimizer:我個人很愛用的一款,壓縮品質高,且支援 WebP 自動轉換與提供。
  • Smush:老牌的圖片優化外掛,使用者眾多,免費版功能就很實用。
  • Imagify:由 WP Rocket 團隊開發,介面美觀,壓縮效果也很不錯。

安裝這類外掛後,它們不僅會自動優化你未來上傳的圖片,還能一次性把你媒體庫裡所有舊圖全部處理一遍。更重要的是,它們大多支援將圖片轉換為 WebP 格式,並在支援的瀏覽器上自動提供 WebP 版本,不支援的就給原始 JPG/PNG,無痛升級!

策略二:響應式圖片 (Responsive Images),為不同裝置提供最適尺寸

這點其實 WordPress 核心已經幫我們做了不少。從 WordPress 4.4 版開始,當你上傳一張圖片時,系統會自動幫你裁切出好幾種不同尺寸的版本(大、中、小、縮圖等)。然後在前端,它會使用 srcsetsizes 這兩個 HTML 屬性,讓瀏覽器根據當前的螢幕寬度和解析度,自己去選擇最適合載入的圖片版本。

聽起來很棒對吧?但這裡有個工程師的囉嗦要提醒你:這不代表你可以上傳一張 8000px 的超大圖然後就沒事了。WordPress 產生的縮圖也是基於你的原圖,如果原圖本身就過大,產生的所有版本也都會偏大。所以,請養成好習慣,在上傳前,就先把圖片尺寸調整到你網站內容區域的最大寬度左右,例如 1920px 或 1200px,這已經綽綽有餘了。

策略三:延遲載入 (Lazy Load),使用者看到才載入

Lazy Load 的概念很簡單:圖片先不要載入,只載入一個佔位符。等到使用者把頁面往下捲動,圖片即將進入可視範圍 (viewport) 時,再用 JavaScript 動態地把真正的圖片載入進來。

好消息是,從 WordPress 5.5 版開始,這個功能已經內建了!WordPress 會自動為圖片加上 loading="lazy" 屬性,告訴瀏覽器:「這張圖可以晚點再載入」。

但內建的功能有時候過於「基本」。例如,它會把頁面上「所有」的圖片都加上 lazy-load,包含第一屏(Above the fold)的圖片。這反而會拖慢 LCP (最大內容繪製),對 SEO 反而有扣分效果。因此,我們有時會需要更精細的控制,這時候效能優化外掛如 WP Rocket 或 Perfmatters 就派上用場了。它們可以讓你排除第一張或前幾張圖片,確保使用者一進站就能看到最重要的視覺內容。

進階黑魔法:排除首圖 Lazy Load 以優化 LCP

既然提到了 LCP,就來點進階的。我們不希望文章或頁面的第一張特色圖片被延遲載入。雖然可以用外掛,但身為工程師,我們有時候更喜歡用程式碼乾淨俐落地解決。你可以把下面這段程式碼加到你的子佈景主題的 functions.php 檔案中,它會自動判斷並跳過內容中的第一張圖片,不對它進行 Lazy Load。


<?php
/**
 * Prevents the first image in the post content from being lazy-loaded.
 */
function roamer_skip_lazy_load_first_image($content) {
    if (is_singular()) { // 只在單一文章或頁面執行
        $content = preg_replace('/<img(.*?)loading="lazy"/i', '<img$1', $content, 1);
    }
    return $content;
}
add_filter('the_content', 'roamer_skip_lazy_load_first_image', 20);
?>

這段程式碼做的事情很單純:它在輸出文章內容(the_content)時,用正規表示式找到第一個帶有 loading="lazy"<img> 標籤,然後把它移除,但只處理一次。這樣就能確保你的 LCP 元素能盡快載入,同時其他圖片又能享受 Lazy Load 的好處。

總結:圖片優化是一門藝術,也是一門科學

看到這裡,相信你對 WordPress 圖片優化與 Lazy Load 技術 已經有了非常全面的了解。我們來快速回顧一下重點:

  • 壓縮為王:使用外掛自動壓縮圖片,並啟用 WebP 格式。
  • 尺寸剛好:上傳前先將圖片縮放到合理的尺寸。
  • 聰明載入:善用 Lazy Load,但記得排除首屏的關鍵圖片。
  • 善用工具:無論是圖片優化外掛還是效能套件,都能讓你事半功倍。

圖片優化不是一次性的工作,而是一種需要內化到網站維護流程中的習慣。每次上傳圖片前,多想一秒鐘,你的使用者和 Google 就會感謝你一輩子。希望這篇有點囉嗦的工程師指南對你有幫助!

-- Eric from 浪花科技

延伸閱讀:

覺得圖片優化太複雜,或是有更進階的網站效能問題需要專家協助嗎?浪花科技團隊擁有多年的 WordPress 效能調校經驗,能為您的網站進行全面健檢與優化。歡迎點擊這裡填寫表單,與我們聊聊您的需求!

// FAQ

常見問題

為什麼不該把相機原圖直接上傳到 WordPress?
因為未經壓縮的原圖動輒數 MB,使用者每次開頁都得下載完整檔案,一頁多張圖就會嚴重拖慢載入。實際上絕大多數使用者看不出智慧壓縮後與原圖的細微差別,卻能明顯感受到速度差異,因此上傳前應先壓縮並縮放到接近顯示尺寸。
WebP 格式比 JPG、PNG 好在哪裡?
在相同視覺品質下,WebP 的檔案大小通常比 JPG 小約 25-35%、比 PNG 小約 26%,等於免費換來更快的載入速度。可透過 ShortPixel、Smush、Imagify 等外掛自動轉換,並在支援的瀏覽器提供 WebP、不支援的回退原始 JPG/PNG。
什麼是 Lazy Load(延遲載入)?WordPress 有內建嗎?
Lazy Load 是先不載入圖片、等使用者捲動到圖片即將進入可視範圍時才動態載入的技術,能避免一次載入整頁所有圖片。從 WordPress 5.5 起已內建,會自動為圖片加上 loading="lazy" 屬性。
為什麼要把首屏的第一張圖片排除 Lazy Load?
因為 WordPress 內建會對頁面上所有圖片加上延遲載入,包含第一屏的圖片,這反而會拖慢 LCP(最大內容繪製)並對 SEO 扣分。讓首圖正常載入、其餘圖片才延遲載入,可確保最重要的視覺內容盡快呈現。可用 WP Rocket、Perfmatters 等外掛或自訂程式碼排除前幾張圖片。
上傳前已經有響應式圖片了,還需要縮小原圖尺寸嗎?
需要。WordPress 4.4 起會自動產生多種尺寸並用 srcset、sizes 讓瀏覽器挑選最適版本,但這些縮圖都是基於你的原圖產生,原圖過大時各版本也會偏大。因此上傳前仍應先把圖片縮放到網站內容區的最大寬度左右(例如 1200px 或 1920px)。
~/roamer-tech/newsletter // FREE
// newsletter

訂閱免費電子報

把 AI 自動化、企業系統設計與 WordPress / Laravel 開發的真實案例和可直接照做的技巧,整理成電子報寄給你。只寄精選內容、不灌垃圾信,一鍵就能退訂。

$
// final.exec()

準備好讓你的網站開始為你工作了嗎?