網頁設計 LCP 太慢,不一定是圖片太大

網頁設計 網站速度慢不一定是圖片太大,也可能是 Template 載入順序錯了。
這次檢查客戶官網發現,主視覺被設定成 lazy loading,導致瀏覽器太晚下載 LCP 圖片。
文章整理實際排查過程,包含 preload、fetchpriority、CSS/JS 資源過重與伺服器回應時間,
說明網站速度優化真正該看什麼。

最近檢查一個客戶官網的 Template,PageSpeed 一直抓到首頁 LCP 很慢。

一開始以為是圖片太肥。
查下去才發現,真正的問題是 Template 把最重要的首屏圖排到很後面才載入。

/images/index1.webp

首頁第一眼會看到的主視覺,卻被設定成 loading="lazy"

lazy loading 本身沒問題,適合用在使用者還沒滑到的圖片、下方內容、內頁圖片。
但主視覺不能 lazy,瀏覽器一開始就需要知道這張圖很重要,要優先下載。


問題一:首屏圖被排到最後才載入

Template 原本的補救方式是用 JavaScript 延遲 2 秒後,把首張圖改成高優先權。

等 2 秒才補救,對 LCP 來說已經太晚。
瀏覽器的 preload scanner 一開始看不到這張圖的重要性,
等 JS 後來才加 fetchPriority,效果打折很多。

調整方式很明確,分兩步:

在 加入 preload

圖片本身的屬性

讓瀏覽器從 HTML 一開始解析就知道,這張圖是重點資源。


問題二:Template 本身太重

首頁載入的資源:

bootstrap.min.css 約 195 KB
template.css 約 194 KB
font-awesome.min.css 約 102 KB
bootstrap.bundle.min.js 約 80 KB
main.js 約 26 KB

PageSpeed 提示未使用 CSS 約 220 KB、未使用 JS 約 29 KB。
畫面還沒穩定顯示前,瀏覽器已經在處理一堆暫時用不到的東西。


問題三、四:隱藏內容與伺服器回應

頁尾隱藏內容

Template 頁尾塞了一段 inline SVG / base64 filter。畫面看不到,但瀏覽器仍要下載、解析、建立 DOM,對手機版 LCP 很不友善。

TTFB 2.3 秒

這不是 Template 能解決的問題,要從伺服器、快取、主機回應時間一起處理。


實際修改 template/index.php

調整做了三件事:

1 在 head 加入 LCP 圖片 preload
2 移除 2 秒後才補救的延遲載入邏輯
3 首屏圖 DOM ready 後立刻設為 eager + high priority

改的過程遇到兩個 bug。

第一個:PHP 字串裡的 querySelector 雙引號沒有正確跳脫,語法錯誤。

修掉後,遇到第二個:

Call to a member function appendChild() on null

script 執行時 document.body 還沒建立。最後改成:

(document.body || document.head || document.documentElement) .appendChild(s);

現場改 Template 就是這樣。
不是改一行就結束,中間要處理瀏覽器載入順序、Joomla Template 結構、PHP 輸出方式、快取機制,還要能處理部署後的錯誤。

網站速度優化不是把圖片壓小而已。
真正要看的是資源出現的時間點。
一張banner圖,瀏覽器太晚才知道它重要,再小也可能拖慢 LCP。

網站速度或 Core Web Vitals 有問題,歡迎直接聊

益盛科技提供網站技術健診、LCP 優化、AI SEO 技術稽核與規劃服務。

LINE 諮詢 查看 AI SEO 服務 查看 網頁設計 服務 查看 品牌電商 服務
Ring
FOUNDER & CONSULTANT

本文作者:Ring

益盛科技創辦人 & 專案經理,具備 13 年 網頁設計 與技術 SEO 實戰經驗。
專注於運用 AI SEO 系統與 自動化技術,協助台灣 電商 品牌打通流量變現的底層邏輯。

LINE