WordPress 504 Gateway Timeout:依日誌排查根因

WordPress 出現 504 Gateway Timeout,先記錄網址、時間與出錯操作,再比對來源站、代理與應用程式日誌。本文說明 Cloudflare 504/524 判讀,以及調整逾時、停用外掛或清理資料前應確認的條件。

用 AI 摘要這篇文章:

504 Gateway Timeout 表示閘道等待上游回應逾時。先記下發生時間、網址與出錯操作,確認是整站、單一頁面還是 API,再比對代理、Web 伺服器與應用程式日誌。修復時間取決於根因,不能保證換主機、清理資料庫或延長等待時間就能解決。

504 是 HTTP 狀態碼,代表作為閘道或代理的伺服器未及時取得上游回應。WordPress 可能位於 CDN、反向代理、Web 伺服器與 PHP 之後;需要沿著實際請求路徑,確認是哪一層等待失敗。

你可能看到的顯示方式包括:504 Gateway Timeout、HTTP 504、504 ERROR、Gateway Timeout (504)、HTTP Error 504: Gateway Timeout。不管哪一種,核心含義都一樣:閘道等不到後端伺服器的回應。

504 和其他 5xx 錯誤有什麼不同?

5xx 系列錯誤都代表伺服器端出了問題,但每一種的成因和修復方向不同。搞清楚你遇到的是哪一種,才能對症下藥。

錯誤碼 名稱 核心問題 常見原因
500 Internal Server Error 伺服器內部程式碼出錯 PHP 語法錯誤、.htaccess 損壞、檔案權限問題
502 Bad Gateway 閘道收到上游的無效回應 PHP-FPM 當機、Nginx 設定錯誤
503 Service Unavailable 伺服器暫時無法處理請求 伺服器過載、維護模式、資源耗盡
504 Gateway Timeout 閘道等不到上游回應 後端處理太慢、PHP 逾時、資料庫卡住

500 表示伺服器遇到無法完成請求的狀況;502 是閘道收到無效上游回應;503 是暫時無法提供服務;504 則是等待上游逾時。狀態碼是排查入口,不能單獨證明某支程式、某個外掛或主機容量就是根因。另可參考 500 錯誤排查502 錯誤排查503 錯誤排查

先查明逾時的位置,再評估是否需要升級或搬家。若日誌與資源紀錄已支持更換主機的決定,可接著閱讀WordPress 搬遷教學,並規劃備份與回復方式。

為什麼你的 WordPress 網站會出現 504?

504 表示上游未在等待期限內回應,但原因可能是應用程式處理、資源排隊或伺服器間連線。以下是待查方向,不是看到某個症狀就能確診的清單。

伺服器端原因

  • 主機 CPU 或記憶體資源不足(尤其在共用主機上,流量一高就容易超時)
  • PHP 處理時間超過 Nginx 或 Apache 的等待上限
  • 資料庫查詢或鎖定等待:需要慢查詢與鎖定紀錄確認,不能只由修訂版本數量推定。
  • 伺服器臨時過載或正在進行維護

WordPress 本身的原因

  • 外掛衝突或某個外掛消耗過多資源(常見於 SEO、快取、安全掃描類外掛)
  • 主題函式寫法效率差,首頁載入時執行大量資料庫查詢
  • WP-Cron 任務堆積,每次頁面請求都觸發大量排程工作
  • WordPress 核心檔案損壞或版本不相容

網路與客戶端原因

  • 你使用的 VPN 或代理伺服器回應太慢
  • DNS 設定錯誤,請求繞遠路或指向錯誤的伺服器
  • CDN 服務(如 Cloudflare)的代理層設定不當

如何快速診斷 504 錯誤的來源

修復前先判斷問題出在哪一層,能省下大量時間。以下是四個診斷步驟。

確認是全域問題還是只有你無法訪問

先用 Down For Everyone Or Just MeHTTPStatus 檢查網站是否真的掛了。如果這些工具顯示網站正常,那問題很可能在你的網路環境(VPN、DNS、瀏覽器快取)。

檢查瀏覽器開發者工具

按 F12 開啟開發者工具,切換到 Network(網路)分頁,重新整理頁面。看 504 是出現在第一個文件請求,還是某個特定的子資源。如果只有某個 API 端點 504,問題範圍就比整站掛掉小得多。

檢查伺服器錯誤日誌

登入主機控制台(cPanel、Plesk 或 SSH),查看 PHP 錯誤日誌和 Web 伺服器錯誤日誌。日誌裡通常會告訴你是哪個 PHP 檔案或哪個程序超時。這是定位問題最直接的方式。如果你使用 SiteGroundKinsta,他們的管理介面都有內建日誌查詢功能。你也可以用 Site Health 工具 檢查 WordPress 整體健康狀態。

判斷問題發生的層級

Cloudflare 官方 502/504 文件指出,來源站回傳標準 502 或 504 時,也可能顯示帶 Cloudflare 品牌的錯誤頁。因此,品牌標誌不能直接證明問題出在 Cloudflare。記錄實際狀態碼、時間與 URL,交叉比對來源站及代理日誌。

修復方法一:重新載入頁面與基本排查

對一般讀取頁面,可稍候再試並記錄結果。若逾時發生在付款、送出訂單或資料匯入,先確認交易或工作是否已完成,避免重複送出。一次重試成功只能說明當下恢復,仍應保留反覆出錯的時間與操作紀錄。

同時嘗試:

  • 用瀏覽器的無痕模式開啟網站,排除快取和擴充功能的干擾
  • 用另一個裝置或另一個網路(例如手機 4G/5G)測試
  • 清除瀏覽器快取和 Cookie

如果重新整理後恢復,過一陣子又 504,請比對出錯時間的流量、排程工作、應用程式與資源日誌。間歇性錯誤不等於已證明主機資源不足,也不能由主機品牌推定不會再發生。

修復方法二:關閉 VPN 與代理伺服器

若只有特定裝置或網路出錯,可在符合公司網路規範的前提下,以另一個網路或代理設定作對照。結果不同表示請求路徑值得調查,仍不能直接排除來源站對不同路徑、地區或 IP 的處理差異。

修復方法三:變更 DNS 伺服器設定

只有在 DNS 解析結果與預期來源不符,或不同網路解析出現差異時,才進一步檢查 DNS。先記下原設定,必要時請網管協助;更換公共 DNS 不是所有 504 的通用修復。以下介面路徑會隨系統版本不同,修改後若沒有改善就回復原設定。

Windows 變更 DNS 教學

  1. 開啟「設定」→「網路和網際網路」→「變更介面卡選項」
  2. 對你的網路連線按右鍵,選「內容」
  3. 選擇「網際網路通訊協定第 4 版 (TCP/IPv4)」,按「內容」
  4. 選「使用下列 DNS 伺服器位址」,輸入你想要的 DNS

Mac 變更 DNS 教學

  1. 開啟「系統設定」→「網路」
  2. 選擇你正在使用的連線,按「詳細資訊」
  3. 切換到「DNS」分頁,點「+」新增 DNS 伺服器

推薦的 DNS 伺服器

如果你對 網域名稱與 DNS 的運作原理有興趣,可以參考我們之前的介紹。

修復方法四:停用 WordPress 外掛與切換主題

外掛衝突是 504 的常見原因之一。一個寫得不好的外掛可能佔住 PHP 程序不放,讓其他請求全部排隊等逾時。

如果你還能進入 WordPress 後台

  1. 先確認最近安裝或更新的外掛是否與出錯時間相關,再於測試或維護時段隔離;操作前備份並記下啟用狀態。
  2. 若要擴大停用範圍,先備份並安排測試或維護時段;付款、登入、安全與快取功能可能受影響。每次只改一項,沒有改善就回復,再比對同一個出錯操作。
  3. 依日誌、執行時間與最近變更選擇待查外掛,不以外掛類別認定元凶。

如果你無法進入 WordPress 後台

無法進後台時,請先由主機管理員確認備份與日誌。將 wp-content/plugins 改名會影響一般外掛載入,可能中斷商店、登入或其他功能,不能當成無風險的第一步。需要隔離時,先在測試環境或維護時段處理,記錄原名稱與外掛狀態,測試後回復;也不要因此假設其他類型的外掛或快取都已停用。

若日誌或隔離測試指向主題,再於測試環境切換預設主題比對。先記錄原主題與設定,沒有改善就回復;正式站的版面與功能可能受影響,不應直接用換主題取代排查。

修復方法五:清理與最佳化 WordPress 資料庫

若日誌或慢查詢紀錄顯示資料庫等待,先定位實際查詢、鎖定與執行時間。資料量大不等於那些資料可以刪除;刪除修訂、留言或暫存也不能保證解除造成 504 的等待。

不要直接在 phpMyAdmin 依名稱前綴批量刪除。WordPress Transients API 文件說明暫存可能存放在物件快取而非資料庫;名稱帶 _transient_ 不代表已過期。清理前先確認儲存位置、到期條件、可接受的資料範圍與備份復原方式。

  • 修訂版本:先確認是否仍需回復歷史內容,不能只因記錄類型是 revision 就一律刪除。
  • 留言:待審核內容可能是真實讀者留言,不應當成垃圾批量清空。
  • 暫存:核對實際儲存位置與到期狀態,優先使用相應工具或 API,避免以名稱前綴認定過期。
  • 資料表維護:由管理員確認儲存引擎、負載、執行影響及維護時段,不在故障高峰直接執行通用最佳化指令。

操作前務必先備份資料庫。你可以用 UpdraftPlus 進行完整備份。更多加速建議,參考我們的 WordPress 網站加速技巧。搭配 ShortPixel 圖片壓縮 減少伺服器的圖片處理負擔,整體回應速度會更好。

修復方法六:調整伺服器與 PHP Timeout 設定

只有在日誌確認逾時層級、且業務確實需要較長處理時間時,才評估調整等待上限。先記錄原值,每次只改一層,測試設定有效後再載入;若仍逾時或出現新的錯誤,回復原值並繼續查根因。託管環境應由主機商確認可調範圍。

調整 Nginx Timeout 設定

Nginx fastcgi_read_timeout 文件列出預設值 60 秒,但它控制的是兩次連續讀取之間的等待,不是整個回應的總執行時間。只有實際使用 FastCGI 的位置才適用;代理 HTTP 上游或其他層的逾時,不能靠修改這個值保證排除。

調整值需由管理員依日誌與工作需求決定,保留原設定與回復步驟,不直接套用固定秒數。

修改後應先檢查設定語法,再依主機管理流程重新載入。用相同 URL 與操作確認狀態、耗時及錯誤日誌;只看到首頁開得出來,不足以證明原本逾時的功能已恢復。

調整 Apache Timeout 設定

Apache 的等待設定應由管理員依實際代理與模組配置判斷。不要只因文章列出 Timeout 或 ProxyTimeout 就自行調高;應核對生效範圍、原值、負載與回復方式。

調整 PHP max_execution_time

PHP 執行時間、記憶體與前端代理等待是不同限制。不要直接在 wp-config.php 加入較高記憶體值或 set_time_limit,便假設可以處理所有 504;請由管理員確認哪個限制真的被觸發,以及託管環境是否允許調整。

調整值需由管理員依日誌與工作需求決定,保留原設定與回復步驟,不直接套用固定秒數。

如果提高等待時間後仍然反覆逾時,回復不必要的變更,重新比對上游處理與連線紀錄。是否升級容量,應由資源用量與瓶頸證據決定。

修復方法七:檢查 Cloudflare CDN 與防火牆設定

先區分 504 與 524。Cloudflare 524 文件說明已連上來源站但未及時取得回應,或寫入未及時完成的情況;這不能改寫成「免費與 Pro 方案固定 100 秒就回傳 504」。請依實際狀態碼查對應文件與日誌。

判斷 504 是不是 Cloudflare 造成的

頁面樣式只是線索。Cloudflare 文件列出的來源站 502/504 也可能帶有品牌標誌,應一併確認錯誤時間、完整 URL、回應狀態與來源站日誌,而非只看配色認定責任。

需要來源連線測試時先確認條件

先請管理員比對來源站與代理紀錄,必要時安排受控的來源連線測試。不要直接把正式網域切成 DNS only 作為一般讀者的第一步;繞過代理會改變流量與防護路徑,還需要核對來源憑證、存取限制與回復方式。即使繞過後恢復,也只是縮小排查範圍,不能直接認定是 WAF 規則造成。

你也可以檢查 Cloudflare 的防火牆規則(Security > WAF),看看是否有規則誤擋了正常流量。更多 Cloudflare 設定技巧,可以參考我們的 Cloudflare Speed Test 教學 以及 Cloudflare Turnstile 驗證碼工具介紹。如果你有使用 Cloudflare Workers,也要檢查 Worker 腳本是否有延遲或錯誤。

修復方法八:升級 WordPress 主機方案

只有在 CPU、記憶體、程序佇列或服務限制等紀錄支持容量瓶頸時,才評估升級主機。應用程式、外部服務或連線問題仍可能在升級後持續;不要以「前面都試過」取代根因證據。

主機升級選擇建議

比較主機前,先整理出錯操作、尖峰併發、CPU/記憶體與程序限制,再請供應商說明新方案能處理哪個已確認的瓶頸。也要比較日誌存取、備份復原、支援範圍與總費用,不只看起始價格。

若需要託管支援,先確認技術團隊能否協助查 PHP、資料庫與代理日誌,以及哪些調整由誰負責。託管、CDN 或自動備份都不等於保證不會出現 504。

想要更多主機方案的完整比較,可以參考我們整理的 WordPress 虛擬主機推薦,裡面涵蓋了 Bluehost、Kinsta、SiteGroundWPX Hosting 等熱門主機商的費用、速度和功能評比。

如何預防 504 Gateway Timeout Error 再次發生

修復 504 之後,更重要的是防止它再次出現。以下幾個做法可以大幅降低 504 發生的機率。

使用 Uptime 監控工具

安裝網站監控服務(像是 UptimeRobot 或 Pingdom),在網站出問題的當下立即收到通知,而不是等到流量暴跌才發現。免費版的 UptimeRobot 就能每 5 分鐘檢查一次網站狀態,非常實用。

定期清理資料庫與快取

資料庫維護應依實際負載、保留需求與備份政策安排。不要為了預防 504 就自動刪除修訂或留言;先確認待清理資料與效能瓶頸有關,且可接受刪除結果。快取是否有效,也應以原本出錯的頁面或操作驗證。

控制外掛數量與品質

WordPress 外掛不是裝越多越好。每個啟用的外掛都會消耗伺服器資源,定期審查並移除不再使用的外掛。安裝新外掛前先看看評價、更新頻率和相容性。你也可以在 InstaWP 建立測試站來試裝外掛,確認不會衝突再裝到正式站上。

選擇穩定可靠的主機服務商

選擇主機時,確認監控、日誌保留、故障回應與復原責任。正常運行時間承諾有各自的條件,不能用來保證你的 WordPress 應用程式不會逾時。

啟用 CDN 分散流量壓力

CDN 可以把靜態資源(圖片、CSS、JS)分散到全球各地的節點,減少主機伺服器的處理壓力。Cloudflare 提供免費的 CDN 方案,搭配正確的 DNS 設定可以同時提升網站速度和穩定度。你也可以參考 WebP 圖片格式轉換教學 來進一步加快圖片載入速度,減少伺服器處理每個請求所需的時間。

504 Gateway Timeout Error 常見問題 FAQ

504 Gateway Timeout 和 502 Bad Gateway 有什麼差別?

502 Bad Gateway 表示閘道伺服器收到了上游的「無效回應」,可能是回應格式錯誤或上游伺服器當機。而 504 Gateway Timeout 表示閘道伺服器「根本等不到」上游的回應,連線在等待過程中超時了。簡單說,502 是「收到壞的回應」,504 是「等不到回應」。

504 錯誤會自動恢復嗎?

504 可能在短暫故障排除後恢復,但單次恢復不能證明根因已解決。保留出錯時間與操作,若反覆發生就依日誌選擇對應分支;不需要把停外掛、刪資料、改代理與升級主機全部做一遍。付款或匯入工作先確認是否已完成,避免重複提交。

使用 Cloudflare 時出現 504 該怎麼辦?

先保留時間、URL 與實際狀態碼,再比對來源及代理日誌。帶 Cloudflare 品牌的錯誤頁不等於 Cloudflare 自身故障;官方 502/504 排查文件有區分來源站與 Cloudflare 的情況。若實際錯誤是 524,請改查對應文件,不套用 504 的判讀。

504 錯誤會影響 Google 排名嗎?

Google 官方 HTTP 狀態碼文件指出,5xx 會讓爬取暫時減慢,持續錯誤的 URL 可能最終被移出索引;恢復成功回應後,爬取速度會逐步增加。不能把爬取與索引反應簡化成固定時數後排名就會下降。先恢復可靠回應,再查看 Search Console 與伺服器紀錄,不能保證短暫錯誤對排名完全沒有影響。

升級主機可以徹底解決 504 問題嗎?

如果 504 是因為主機資源不足(CPU 滿載、記憶體不夠、共用主機的流量限制),升級到資源更充裕的方案確實能大幅改善。像是從共用主機升級到 VPS 或 WPX Hosting 等高效能方案,通常能獲得更多 CPU 和記憶體資源。但如果 504 是外掛衝突或 DNS 設定錯誤造成的,升級主機並不能解決根本問題。

選擇好的主機服務商是避免 504 錯誤的關鍵之一。如果你正在考慮換主機,可以參考我們整理的 WordPress 虛擬主機推薦完整比較。想進一步提升網站效能,可以看看我們的 WordPress 網站加速技巧,或參考 選擇好網域的建議WordPress.com 與 WordPress.org 的差異,一起打造更快更穩定的 WordPress 網站。

Sliven 褚崇名
Sliven 褚崇名

每日分享科技新知、免費資源以及 WordPress、虛擬主機相關主題,任何問題歡迎在科技月球下方留言,或是發送 Email 至 [email protected] 與我聯繫。

文章: 1245

發佈留言

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


Share to...