WordPress 網站健康狀態顯示自動載入資料過多?檢查 wp_options 的安全步驟
WordPress 網站健康狀態若提醒自動載入選項過多,或你正在調查網站變慢,先盤點再判斷,不要直接刪除資料。本文適合網站維護者;一般使用者可先看後台訊息,熟悉 SSH 與 WP-CLI 的管理者再執行命令。自動載入是 WordPress 正常機制,選項總量只是診斷線索,不能單獨證明它就是網站慢的原因。
自動載入選項與網站速度有什麼關係
WordPress 會把部分 wp_options 設定標記為自動載入,讓程式在一般請求中讀取,外掛與佈景主題也可能使用這些設定。自動載入本身不是錯誤;問題可能出在不必要的資料仍被載入、資料量偏大,或特定選項的用途與設定方式不合適。物件快取會影響讀取路徑,但仍須結合實際環境觀察。
WordPress 6.6 起,Site Health 加入自動載入選項檢查,預設超過 800,000 bytes 會顯示 critical。這是告警與調查門檻,不等於效能因果證明;實際影響會因網站功能、主機、快取與請求型態而異。
先從網站健康狀態查看警示
登入後台,前往「工具 → 網站健康狀態 → 狀態」,尋找自動載入選項相關檢查,記下顯示的選項數量、總大小與警示內容。若沒有看到檢查,先確認 WordPress 版本與目前畫面實際提供的資訊,不要把「沒有警示」解讀成資料庫已通過所有效能檢查。Site Health 是起點,後續仍需確認哪些選項值得調查。
用 phpMyAdmin 唯讀查看自動載入資料
沒有 WP-CLI 時,也可登入 phpMyAdmin,在正確網站的資料庫選擇「SQL」,貼上以下唯讀查詢。WordPress 核心預設自動載入清單是嚴格值:yes、on、auto-on、auto 會觸發自動載入;no、off、auto-off 不會。外掛的 wp_autoload_values_to_autoload filter 只能從預設清單移除值,不能加入自訂值。WordPress 6.6 起,新寫入的 autoload 值會標準化為 on/off 或 auto-on/auto-off/auto;舊資料庫仍可能有 yes/no,它們自 WordPress 6.7 起是向後相容但已棄用的值。數字 1 不是核心定義的 autoload 值,也不能當成 yes;若資料表出現 1,應先查明寫入來源,並將它視為非標準資料。由於可能存在新舊值,只查 yes 會漏算;以下總量查詢使用完整的核心預設載入值清單。資料表前綴各站不同,請將範例中的 wp_options 換成實際資料表名稱,例如 site_options;以下 SQL 只使用 SELECT,不會寫入、更新或刪除資料。
先按實際 autoload 值分組,確認資料表裡有哪些值;非標準值如 1 會在結果中顯示,但不會因此被核心視為自動載入:
SELECT autoload, COUNT(*) AS option_count
FROM wp_options
GROUP BY autoload
ORDER BY autoload;
接著以一致的四個核心預設載入值計算總量與筆數,並列出最大的十筆名稱和資料長度:
SELECT SUM(LENGTH(option_value)) AS autoload_size_bytes
FROM wp_options
WHERE autoload IN ('yes', 'on', 'auto-on', 'auto');
SELECT 'autoloaded data in KiB' AS name,
ROUND(SUM(LENGTH(option_value))/1024, 1) AS value
FROM wp_options
WHERE autoload IN ('yes', 'on', 'auto-on', 'auto')
UNION ALL
SELECT 'autoloaded data count', COUNT(*)
FROM wp_options
WHERE autoload IN ('yes', 'on', 'auto-on', 'auto')
UNION ALL
(SELECT option_name, LENGTH(option_value)
FROM wp_options
WHERE autoload IN ('yes', 'on', 'auto-on', 'auto')
ORDER BY LENGTH(option_value) DESC
LIMIT 10);
LENGTH() 回傳 bytes;1 KiB = 1024 bytes,1 MiB = 1024 KiB。結果中的 option_name 只供追查用途,不要公開 option_value,其中可能含網站設定或敏感資料。判讀參考各有用途:Kinsta 指引認為小於約 1 MB 通常不必擔心,接近 3–5 MB 開始調查,超過 10 MB 可優先處理;WordPress 6.6 Site Health 預設 critical 門檻則是 800,000 bytes。這些都是告警/調查門檻,不等於效能因果證明;不要只憑資料大小或看到 autoload 值為 1 就更動設定。
若想了解這些值及查詢背景,可參考 Kinsta 的 autoloaded data 指引、WordPress wp_autoload_values_to_autoload()、wp_determine_option_autoload_value() 及 get_option() 文件。
用 WP-CLI 只讀盤點,找出調查線索
沒有 WP-CLI、沒有 SSH 權限或不確定目標環境時,請主機商或工程師協助。多站網路尤其要確認命令指向正確站台。以下命令只列出資料,不會修改選項;先確認終端機目前連到預期的 WordPress 安裝目錄。
wp option list --autoload=on --format=total_bytes
這條命令回報 autoload 為 on 的選項總位元組數。接著列出名稱與大小,將結果保存供後續查明用途:
wp option list --autoload=on --fields=option_name,size_bytes --format=json
較大的項目只是調查候選,不代表可以直接停用。先從選項名稱、網站使用中的功能及其外掛或佈景主題來源著手,向維護者確認此設定是否必須在每次請求時自動載入。若來源不明或用途無法確認,先不要更動。
確認用途後,才調整單一選項
只在已確認單一選項用途、完成可還原的資料庫備份,並先於測試站驗證後才考慮調整。先記錄目標名稱及原始 autoload 狀態,並確認名稱完全吻合。可用以下唯讀命令查看指定選項目前狀態:
wp option list --search=選項名稱 --fields=option_name,autoload --format=json
將「選項名稱」換成實際名稱,核對輸出只對應目標。確認 WP-CLI 版本至少為 2.8,再對已確認且不需每次請求載入的單一選項設定為不自動載入:
wp option set-autoload 選項名稱 no
autoload=off 或 autoload=no 不會讓 get_option('option_name') 失效;仍可按 option name 讀取。WordPress 會先檢查 alloptions 預載快取,若該選項不在其中,便查單筆 option cache;快取未命中時才按名稱查資料庫,並快取單筆值。關閉自動載入會改變讀取路徑,不是禁止讀取。調整是否合適,須看選項在哪些頁面使用、呼叫頻率與物件快取環境;不應只憑大小或看到值為 1 就動手。
因此不要只看前十筆,或只因外掛已停用,就把 yes 改成 no。先確認選項擁有者、讀取路徑、用途及執行頻率,查看作者文件或程式碼;調整前備份並在測試站觀察 Site Health、頁面效能及相關功能。已停用外掛留下資料,不代表可直接關閉 autoload,應先比對外掛的移除政策。不要用直接 SQL UPDATE 或 DELETE 改值;若確認某個單一選項不需每次請求載入,再透過合適的 WordPress 工具處理。外掛更新也可能重新設定自己的選項。
回復時要留意原始狀態
變更前記錄原 autoload 值,變更後查詢並測試功能。若發生異常,使用 WP-CLI 按原狀態回復,或從備份還原;例如原值為 yes 或 on,可用 wp option set-autoload 選項名稱 yes 回復相應的載入狀態。但 WordPress 6.6+ 的 auto 等值不一定能以 yes/no 兩值直接等價還原,必要時請工程師透過 WordPress Options API 處理。使用資料庫備份還原時,留意備份後新增的資料也可能被覆蓋。
問題仍然很慢時,繼續檢查其他原因
若盤點數值沒有異常,或調整後慢速問題仍在,不要把原因歸咎於 autoload。可用 Query Monitor 觀察資料庫查詢及其他請求資訊,協助縮小調查範圍;它不能取代自動載入檢查。可參考使用 Query Monitor 檢查 WordPress 慢查詢,再把 Site Health 訊息、唯讀盤點結果與重現步驟提供給主機商或工程師。
常見問題
看到超過 800 KB 就一定要關閉選項嗎?
不是。這是 Site Health 的預設 critical 門檻與調查參考,不是效能保證或批次停用指令。必須先查明個別選項用途。
可以直接刪除最大的 option 嗎?
不要。選項可能保存網站或外掛必要設定;本文只建議在確認用途後調整單一選項的自動載入狀態,不提供刪除或批次 SQL 作法。
執行後總量下降,就能確定網站變快了嗎?
不能。總量變化只說明盤點值改變;仍須檢查功能與實際請求。網站速度也可能受查詢、外掛、主機與快取等因素影響。
自動載入選項的原理與一般建議請見 WordPress 效能最佳化文件;門檻背景見 WordPress 6.6 效能更新說明。命令參數請查閱 wp option list 與 wp option set-autoload 官方文件。









臉書留言
一般留言