會影響 WordPress 控制台的速度快、慢的因素很多,範圍太廣泛了,10 個網站控制台緩慢的原因可以會有 10 種答案;在這裡,我會用一個網站實例來說明,如何解決 WordPress 控制台緩慢的問題。
在說明之前,WordPress 控制台最基本的緩慢絕對影響因素,還是你的主機 (伺服器) 效能和網路頻寬 !!
主機的效能足夠,可以處理你的外掛、佈景主題的請求,當這些大量的對外請求出現後,主機商的網路頻寬足不足夠也是一個重要因素,也是一個最明顯的感受。
除了以上兩大因素之外,我們該如何檢查 WordPress 控制台檢查緩慢的原因。
Query Monitor 外掛
最常用的是 Query Monitor 外掛,它是一個 WordPress 開發人員查詢監視器工具面板,可以通過顯示外掛、佈景主題或負責它們的功能匯總的數據庫查詢,這可以有效地確定哪些外掛、佈景主題功能的性能不佳,最重要的是這個外掛免費不須額外花費。
New Relic APM
New Relic APM 是一個功能強大的工具,可深入研究 WordPress 網站的內部工作原理,以查明導致客戶網站性能問題的外掛、佈景主題、數據庫查詢、外部請求或編碼錯誤等等問題,也是這次介紹的主角。
在 WooWP (Kinsta) 代管的網站中,如果有任何網站性能的問題,我們會以 New Relic APM 工具來幫網站檢測,提供詳細圖形化的 WordPress 網站資訊。
以下的案例中,我會用 New Relic 工具檢測來詳細說明。
案例一
電商購物車網站遷移到 WooWP 主機後,登入 WordPress 控制台後,後台環境緩慢,不久之後出現 502 error 錯誤,伺服器後端需要重啟容器。
很明顯的 WordPress 控制台吃掉了所有的效能的問題,我們用 New Relic 工具運行 30 至 60 分鐘來監測,這段時間請客戶繼續登入 WordPress 控制台,來完成後台的動作,這可以讓 New Relic 比較精準抓取數據。
Slow transaction trace details (緩慢的交易跟蹤詳細信息) 這部分提供了一個逐步的分步式瀑布圖,顯示了 PHP 在生成頁面時所起作用的功能,數據庫查詢和外部通信。
依上圖判斷佈景主題 Header 標頭載入太多的資源和太多的第三方請求。
WP Cron 作業是導致大量外部請求的第一大原因。
– WooWP –
更進一步了解,主要的問題來自 Web external
更深入了解 external services (外部服務) 是來自 wp-cron.php 在拖後台的速度。
這些的 WP Cron 作業又是來自外掛和佈景主題最多。
知道是 WP Cron 作業所以起的問題,我使用 Advanced DB Cleaner PRO 外掛來查詢這個網站有多少的 WP Cron 作業,或者另一個免費外掛 WP Crontrol 也是一個非常棒的工具。
總共的 WP Cron 作業有 45 個之多,也包含這些客戶之前安裝過的外掛所遺留下來的 14 個垃圾 Cron 作業。
我刪除這 14 個垃圾 WP Cron,以及減少正常的 Cron 的數量。
處理完以上的問題後,WordPress 控制台明顯的恢復到正常的速度。
最佳化資料庫
看到上圖有這麼多外掛所遺留下的 WP Cron,猜測客戶應該安裝過不少的外掛或佈景主題,所以,我在接著處理資料庫 Orphans 的問題,最佳化資料庫後,也會增加 WordPress 控制台的速度。
掃描過後,發現 604 的 Orphans,這些都是之前安裝外掛所遺留下來的垃圾。
一一的小心清除這些 Orphans 表
以下是清除過程中所找到的外掛,順便紀錄這些外掛的前置名稱:
- updraft (UpdraftPlus Backup plugin
- herald_settings (meks Theme
- pbsfi_options (PB SEO Friendly Images plugin
- sbp_page_time (Speed Booster Pack plugin
- wpsupercache_start (WP Super Cache plugin
- wp_statistics (WP Statistics plugin
- wbcr_clearfy_disable_feed (Clearfy – WordPress optimization plugin
- wp-optimize (WP Optimize plugin
- litespeed-optm (LiteSpeed Cache plugin
- webp-express (WebP Express plugin
- gadwp_cache (Google Analytics Dashboard for WP plugin
- modify_schema (schema plugin
- tinypng_compression (TinyPNG plugin
- imsanity_max_height (IMSANITY plugin
- aj_enabled_logged (Async JavaScript plugin
- wc_ecpay_invoice_hashkey (綠界 plugin
- caos_remove_wp_cron (CAOS | Host Google Analytics Locally plugin
- exactmetrics_db_version (Google Analytics Dashboard for WP plugin
- amn_mi-lite_last_checked (Google Analytics Dashboard for WP plugin
- haet_mail_options (WP HTML Mail plugin
- ossdl_off_cdn_url (CDN Linker lite plugin
- bsf_woocom_setting (Schema – All In One Schema Rich Snippets plugin
- I3GEEK_XZH_SETTING (百度熊掌号
- analytify_logs_setup (Google Analytics Dashboard Plugin for WordPress by Analytify
- wpmc_rating_date (Media Cleaner plugin
- rt_wp_nginx_helper_options (Nginx Helper plugin
- wdi_version (10Web Social Photo Feed plugin
- photocrati_auto_update_admin_update_list (NextGEN Gallery plugin
- mla_custom_field_mapping (Media Library Assistant plugin
結語
WordPress 控制台緩慢的原因很多且複雜,並且很難判斷,上述的案例只是其中的一個因素,有的是主題、外掛衝突,或者是第三方外掛通信延遲所造成的。
要查詢真正的原因,決不是從網路上看到的教學文章說的這麼容易,一切還是要靠專業的第三方 (New Relic) 工具去監控數據,充分利用 New Relic 了解 WordPress 網站,每個選項報告的資訊以及查看所有的相互關聯性,才知道問題出在哪裡。
希望這一篇可以給你另一個不同的看法,也歡迎留言一起討論。
本篇內容也同時發表在 HelloYUNGKE blog 上
如果您喜歡這篇文章,那麼您會喜歡 WooWP 的 WordPress 託管平台。加速您的網站,並從我們經驗豐富的 WordPress 團隊獲得技術支援,基於 Google Cloud 的基礎架構專注於自動擴展、性能和安全性,讓我們向您展示 WooWP Kinsta 的與其他主機商的不同 !
Photo by Ilya Shishikhin on Unsplash
Sharing the is
Oberon Lai 表示:
感謝勇哥分享~正在學習如何使用 New Relic 中,這篇超有幫助的!
yungke 表示:
New Relic APM 真的很好用,現在都依賴它在找尋 WordPress 的問題。
前幾天一個購物網站,在線 300 人,結帳就卡住了,就靠 New Relic APM 抓出 AccessPress Social Login Lite 這支外掛影響了資料庫。