WordPress 網站變快,自己能做的事:圖片 WebP、關掉用不到的程式、快取、Gzip、Redis

WordPress 網站變快,自己能做的事:圖片 WebP、關掉用不到的程式、快取、Gzip、Redis

最後更新:2026/10/15

客人用手機打開你的網站,三秒還在轉圈,就關掉去看下一家。很多店家第一個念頭是「主機太爛,換一家」,換了之後還是慢,因為慢的原因多半在網站本身:首頁放了八張三 MB 的照片、裝了二十個外掛、每一頁都載入十幾支用不到的程式。

這篇把能做的事按照「誰能做」排序:前半是你自己在後台和程式碼片段就能做的,後半是要主機設定的。每一項都講為什麼有用,而不是只給一張清單;程式碼的部分我們都在測試站驗過。

不想自己改?把這篇交給 AI

把這篇的網址(或全文)連同下面這段話貼給 AI:

我的網站是 WordPress。我想照下面這篇文章讓網站變快:圖片轉 WebP、關掉用不到的程式、調整後台心跳,並了解快取、Gzip、Redis 要怎麼設定。
請先問我:我的主機是哪一家、有沒有快取外掛、網站有沒有用嵌入別站內容的功能、我能不能動主機設定。
問清楚之後,再一步一步告訴我:要用哪一段程式碼、貼在哪裡、哪些項目要請主機商做,以及改完怎麼測速度。
如果文章的做法不適合我的網站,請直接告訴我原因和替代做法。
文章:(貼上這篇的網址,或整篇內容)

改之前先備份,密碼不要貼給 AI。

先量,再改

改之前先量一次,不然不知道有沒有變快。用 Google 的 PageSpeed Insights 輸入網址,它會給手機和電腦各一個分數,下面列出「可以改善的項目」。不要追求 100 分,看三件事就好:最大的圖片是哪幾張、有多少支程式和樣式檔、伺服器回應時間多久。改完再量一次,數字有進步就對了。

圖片:最大的一塊

網站慢,十次有七次是圖片。三件事:

上傳前先縮尺寸。首頁的大圖 1,600 到 2,000 像素寬就夠,商品圖 1,200 像素,部落格插圖 1,000 像素。相機和手機拍出來的 4,000 像素原圖直接上傳,WordPress 雖然會產生縮小版,但原圖還是佔空間,有些佈景主題還會直接用原圖。

自動轉成 WebP。WebP 比 JPEG 小三到五成,畫質一樣,所有主流瀏覽器都支援。下面程式碼的第 4 段讓 WordPress 在上傳 JPEG 時,自動把產生的各種尺寸都做成 WebP,網站用的就是小檔案。

延遲載入。WordPress 從 5.5 之後預設就會延遲載入看不到的圖片,不用裝外掛;要注意的是第一張大圖(主視覺)不該延遲,延遲反而讓客人先看到空白,第 5 段處理這件事。

完整程式碼

// 第 86 篇:WordPress 網站變快,自己能做的事

// 1. 拿掉表情符號的程式和樣式(WordPress 自己會把 emoji 換成圖,現代瀏覽器不需要)
add_action('init', function () {
    remove_action('wp_head', 'print_emoji_detection_script', 7);
    remove_action('wp_print_styles', 'print_emoji_styles');
    remove_action('admin_print_scripts', 'print_emoji_detection_script');
    remove_action('admin_print_styles', 'print_emoji_styles');
    add_filter('emoji_svg_url', '__return_false');
});

// 2. 拿掉「嵌入其他 WordPress 文章」的程式(沒有在文章裡貼別人網址做預覽卡片的話用不到)
add_action('wp_footer', function () {
    wp_dequeue_script('wp-embed');
});
add_action('init', function () {
    remove_action('wp_head', 'wp_oembed_add_discovery_links');
    remove_action('wp_head', 'wp_oembed_add_host_js');
});

// 3. 後台的心跳:每 60 秒一次,只在寫文章的頁面用(省主機)
add_filter('heartbeat_settings', function ($settings) {
    $settings['interval'] = 60;
    return $settings;
});
add_action('admin_enqueue_scripts', function () {
    if (!in_array(get_current_screen()->base ?? '', ['post', 'post-new'], true)) {
        wp_deregister_script('heartbeat');
    }
}, 99);

// 4. 上傳 JPEG 時,縮圖另外產生 WebP 版本(檔案小很多,瀏覽器都支援)
add_filter('image_editor_output_format', function ($formats) {
    $formats['image/jpeg'] = 'image/webp';
    return $formats;
});

// 5. 第一張大圖不要延遲載入(主視覺延遲載入反而更慢),後面的照常
add_filter('wp_omit_loading_attr_threshold', function () {
    return 1;
});

// 6. 原始碼裡的 RSD、短連結、產生器版本,拿掉(省幾行,也少露出版本)
remove_action('wp_head', 'rsd_link');
remove_action('wp_head', 'wp_shortlink_wp_head');
remove_action('wp_head', 'wp_generator');

程式碼放在 Code Snippets 這類外掛或子主題,放法和備份方式見〈WooCommerce 結帳頁改成台灣習慣〉。

六段各做了什麼

第 1 段拿掉表情符號的程式。WordPress 每一頁都會載入一支偵測瀏覽器能不能顯示表情符號的程式,不能就換成圖片;這是十年前的需求,現在的瀏覽器都能顯示,這支程式純粹多餘。

第 2 段拿掉「嵌入」的程式。WordPress 允許你在文章裡貼另一個 WordPress 網站的文章網址,自動變成預覽卡片,為此每一頁都載入一支程式。你的文章沒有這樣用(大部分商業網站都沒有),就關掉。YouTube 影片的嵌入不受影響,那是另一套機制。

第 3 段是後台的「心跳」。編輯文章時瀏覽器每 15 秒和主機打一次招呼,用來自動儲存、鎖定正在編輯的文章;後台其他頁面也在打,每個開著後台分頁的人都在消耗主機。這段把間隔拉到 60 秒,而且只在寫文章的頁面打。

第 4 段讓上傳的 JPEG 自動產生 WebP 版本。WordPress 內建這個功能,只是預設沒開;開了之後,新上傳的圖產生的每一個尺寸都是 WebP,原始檔還是留著。舊圖不會自動轉,要用重新產生縮圖的外掛跑一次。

第 5 段調整延遲載入:頁面上第一張圖不加延遲屬性,其餘照常延遲。主視覺是客人第一眼要看到的,延遲載入它會讓畫面多等一下。

第 6 段拿掉三行用不到的標籤:給舊版部落格軟體用的 RSD 連結、短連結、還有寫著 WordPress 版本號的產生器標籤。省的不多,但版本號少露出一點總是好的。

測試結果

我們在本機測試站比較加程式碼前後的首頁原始碼:

  • 表情符號的程式:有 → 沒有。產生器標籤和 RSD 連結:有 → 沒有。
  • 上傳一張 2,000 × 1,400 的 JPEG:產生的 8 個尺寸全部是 WebP,媒體庫的網址也是 .webp。
  • 嵌入程式在測試站本來就沒出現在首頁(首頁沒有文章內文),文章頁才會載入,所以用原始碼確認拿掉的動作有執行。

外掛:少就是快

每一個外掛都可能在每一頁多做一點事、多載入一兩支程式。三個原則:功能相同的只留一個;用不到的刪掉,不是停用;每裝一個新的就測一次速度。不確定是哪個外掛拖慢,把外掛一個一個停用、每次量速度,慢的那個就現形。這件事在〈WooCommerce 商店變慢?〉也講過,商店還要多看排程動作。

要主機幫忙的三件事

頁面快取。WordPress 每一頁都是當下用 PHP 組出來的,快取是把組好的結果存成檔案,下一個人直接拿,主機幾乎不用算。快取外掛很多,主機商通常有推薦的一款,用它就好;裝了之後改版面要記得清快取。商店的購物車、結帳、會員頁不能快取,好的快取外掛會自動排除 WooCommerce 這些頁。

Gzip 或 Brotli 壓縮。傳給瀏覽器的 HTML、CSS、JS 先壓縮再傳,體積少七成,現在的主機幾乎都預設開了。怎麼確認:瀏覽器按 F12 打開開發者工具,「網路」分頁點首頁那一列,回應標頭裡有 content-encoding: gzip 或 br 就是開了。沒有的話問主機商,不是你能在 WordPress 裡改的。

Redis 物件快取。WordPress 每一頁要問資料庫幾十次,Redis 把常問的結果放在記憶體裡,資料庫壓力少很多。這一項要主機有裝 Redis,再裝一個物件快取外掛連過去;共享主機通常沒有,VPS 或自己管的主機(像 Hestia 這類面板)可以裝。流量不大的網站,前面幾項做完就夠了,Redis 是商品和文章很多、後台很慢時再考慮。

速度是做出來的,不是買來的

同一台主機,圖片有壓、外掛有挑、快取有開的網站,和什麼都沒做的網站,速度可以差三倍。先做自己能做的,再決定要不要花錢換主機。網站上線前的其他檢查項目在〈WordPress 網站上線前的檢查清單〉。

如果你想要一個從一開始就把速度考慮進去的網站,圖片、外掛、快取都有人替你把關,可以先看〈IG 帳號不是你的資產〉想想網站要做到什麼。MIMI 專做客製化網頁設計,網站交件前會把速度調整好,網站管家服務也包含每月的速度檢查。MIMI 提供臺北網頁設計服務,臺北的店家可以用電話、Email 直接和設計師討論;費用可以先看首頁的製作費用參考,歡迎聯絡 MIMI。

從痞客邦、Blogger 搬到 WordPress 後,把文章裡的外站圖片抓回自己的媒體庫
網站計數器和下載次數自己做:不裝外掛、有快取也能算、自己人不算

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

我的車
願望清單
最近瀏覽過的
類別