為什麼WordPress很慢? 讓我們弄清楚!

弄清楚為什麼WordPress很慢可能具有挑戰性。 WordPress網站涉及許多部分,從其Web伺服器和相關設置到各種主題和外掛程式。 這也可能是由於未優化的內容,如圖像、視頻和嵌入。

但是,如何找出導致性能問題的原因呢?

很難馬上說出問題所在——有多種可能性,我們將在這篇文章中探討它們。

我們不會止步於弄清楚為什麼你的WordPress網站很慢。 您還將學習許多方法來加速緩慢的WordPress網站。

為什麼WordPress很慢?

一些Web開發人員完全不屑一顧WordPress,理由是它太慢了。 雖然以前可能是這種情況,但很長一段時間以來,它一直不是一個準確的陳述。

但是,許多因素會影響您的WordPress網站的性能。 一些最常見的包括:

  • 您網站的網路託管服務提供者
  • 伺服器端優化(PHP 版本、快取、壓縮等)
  • 緩慢的WordPress主題
  • 緩慢的WordPress外掛程式
  • 未優化的內容(主要是圖片)
  • 外部 HTTP 請求過多
  • 不使用專用資源來提供內容(CDN、視頻託管等)
顯示典型WordPress網站各種元素的圖表。
典型WordPress網站的各種元素。

除了您的網路託管服務提供者實施的適當伺服器優化外,您還可以進行許多優化,以確保您的網站速度超快。 我們將在本文後面討論這些內容,但首先,讓我們弄清楚是什麼減慢了您的網站速度。

確定您的WordPress網站是否緩慢的4個步驟

在您的網站上運行測試是確定導致您網站變慢的原因的好方法——無論是您的網路託管服務提供者、網站本身還是兩者兼而有之。 讓我們來看看一些您可以運行的網站測試。

步驟1:運行頁面載入速度測試

您的網站載入速度有多快? 任何載入時間超過兩秒的網頁都不利於用戶體驗。 理想情況下,您應該將載入時間設定在 1 秒以下——介於兩者之間的任何東西都可以,但您應該始終考慮進一步優化它。

您可以使用不同的網站速度測試工具為此,GTmetrix,Pingdom Tools,Google PageSpeed Insights和WebPageTest都是可靠的選擇。

我們將使用 GTmetrix和Pingdom Tools來演示此步驟。

首先,讓我們啟動GTmetrix並測試一個網頁。 選擇離您(或您網站的訪問者)最近的伺服器位置以獲得更好的結果(提示:註冊一個免費的GTmetrix帳戶以獲取更多伺服器位置選項)。

GTmetrix主頁的屏幕截圖。
GTmetrix主頁。

在這裡,我們正在測試WordPress網站的主頁,因為這是大多數用戶會訪問的內容。 此外,主頁包含大量內容,因此非常適合進行測試。

測試完成後,您將看到如下所示的GTmetrix性能報告。

GTmetrix速度測試報告的範例。
GTmetrix報告示例。

GTmetrix根據許多指標對網頁進行評級。 它還提供了測試期間頁面載入方式的可視時間線。 要詳細瞭解它,您必須向下滾動。

GTmetrix 報告的「摘要」選項卡的屏幕截圖。
GTmetrix報告的「摘要」選項卡。

摘要”選項卡突出顯示了影響網站性能的所有主要問題。 在這種情況下,最頂層的問題是伺服器的回應時間。 這幾乎總是意味著考慮升級您的託管計劃或遷移到更好的主機。 但是,在得出該結論之前,最好解決所有其他問題並重新審視此問題。

下一個主要問題是「避免過多的 DOM 大小」——這是使用頁面構建器時的常見問題。 另一個問題 – “避免大的佈局偏移” – 也可能與頁面構建器或主題有關。

“避免巨大的網路有效負載”是指圖像、腳本和 CSS 檔等繁重資產。 頁面詳細資訊部分提供了其中的快速概述。 在這裡,您可以看到總頁面大小和頁面請求數量相當高。

不使用CDN在減慢WordPress網站的速度方面起著另一個關鍵作用。

按兩下性能選項卡將顯示瀏覽器和燈塔性能報告的更多指標。

GTmetrix 報表的“性能”選項卡的屏幕截圖。
GTmetrix 報表的“性能”選項卡。

如您所見,這個測試網頁沒有什麼好處。 轉到報表的“結構”和“瀑布”選項卡將為您提供更多見解。

Pingdom Tools網站速度測試工具的屏幕截圖。
Pingdom Tools網站速度測試工具。

接下來是Pingdom Tools,另一個流行的網站速度測試工具。 我們將在此處再次測試同一網站的主頁。

Pingdom Tools使用自己的演算法來測試網頁。 這裏的結果對於這個網站來說也不是很好。

Pingdom Tools speed測試結果的屏幕截圖。
Pingdom Tools速度測試結果。

進一步向下滾動將向您展示如何提高網站的性能。 擴展每個建議將為您提供有關改進位置和方式的更多詳細資訊。

Pingdom Tools在其速度測試報告中的性能增強建議清單。
Pingdom的性能改進建議。

由於每個速度測試工具都有自己的性能指標,因此您無法直接將速度測試工具的結果與另一個工具的結果進行比較。 因此,無論您選擇什麼,最好堅持使用一種 – 至少在最初的故障排除中是這樣。 您以後可以隨時嘗試其他速度測試工具。

最後,您還應該考慮網站的感知性能和實際性能。

步驟 2:對網站進行負載測試

k6速度測試工具主頁的屏幕截圖。
k6 FOSS 速度測試工具。

將您的網站置於負載測試之下將揭示有關它在現實世界中的速度的新資訊。 我們將使用 k6,一個免費的開源負載測試工具可以在您的系統上本地運行。

使用免費的 k6 版本需要一些命令行知識,但一旦你開始使用它,它就會非常強大。 (注意:或者,您可以使用k6的高級雲解決方案或更簡單的基於雲的負載測試工具,例如 Loader.io)

結合其夢幻般的k6 記者擴展,您可以運行負載測試並在 HTML 中獲得精確的結果:

顯示請求指標的 k6 負載測試結果的螢幕截圖。
K6負載測試結果 – 請求度量。

上述結果是同一個網站被置於負載測試下10分鐘,最多有50個虛擬使用者。 儀錶板還包括其他有用的統計資料。

A screenshot of the k6 load testing results showing Other Stats.
K6負載測試結果。

請注意,大部分請求都失敗了,可能表明伺服器無法處理這些請求。

你也可以在k6腳本中設置閾值和檢查(例如,頁面載入在1.5s以下,使用者是否能夠登錄,等等)。 這些指標也會整齊地顯示在儀錶盤上。

下面的圖片顯示了另一個網站的負載測試結果,使用了確切的條件,讓你有一個更清晰的印象。

A screenshot of the k6 load testing results for another website showing the Request Metrics.
k6負載測試結果–第二回合。

糕。 這隻是我的本地機器發出的所有請求的0.25%。 這裏的結果表明,這個網站的虛擬主機提供者可以為相當多的併發使用者提供服務。

第3步:研究你的WordPress主題和外掛程式

測試你的WordPress網站的主題和外掛程式應該是發現任何重大性能問題的下一個主要步驟。 這裡有很多種類–你經常會發現,一些主題和外掛程式比其他的優化得更好。

在前面的速度測試部分,我們討論了在報告中發現有問題的主題或外掛程式。 但還有一個直接的方法–一次禁用一個主題或外掛程式,看看網站的表現如何(在速度測試、負載測試或兩者中)。

如果性能問題仍然存在,再禁用一個主題或外掛程式,重新進行測試。 作為一個訓練有素的網路偵探,繼續這樣做直到你找到罪魁禍首。

然而,這種方法對生產網站來說是不可行的。 有一個暫存網站在這裡很有説明。 你可以用它來測試你的生產網站的各種反覆運算,增加、改變或刪除特定的功能。

大多數虛擬主機供應商,特別是廉價的共用主機計劃,預設不提供這個功能。 因此,你必須手動設置暫存網站或使用WordPress暫存外掛程式。

這個暫存網站實際上是你的生產網站的精確拷貝,就連它的伺服器和伺服器端配置也是如此。 你可以用它來修補和測試你的網站,而不影響它的即時版本。

第4步:使用應用性能監控(APM)工具

一個APM工具與速度和負載測試工具相結合,可以大大增強你的網站診斷能力。

一個合格的APM工具可以幫助你確定性能緩慢的源頭,而不是建立一個暫存網站,猜測要逐個禁用哪個外掛程式或主題,而不需要改變你網站上的任何東西。 它跟蹤和分析緩慢的交易、資料庫查詢、外部請求、WordPress鉤子、外掛程式等。

通常情況下,使用APM工具並不適合初學者。 即使是專業的開發人員也需要接受一些培訓,瞭解如何有效地使用它。 此外,還有一個額外的成本因素,因為大多數需要許可證才能運行。

使用免費的Query Monitor WordPress外掛程式是另一種選擇。

修復WordPress網站緩慢的17種方法

知道是戰鬥勝利的一半! 根據這些知識採取行動是你將看到結果的地方。 你已經進行了上面提到的所有測試。 現在,讓我們探索一下你可以加速你的慢速WordPress網站的潛在領域。

1.保持你的WordPress網站更新

維護你的WordPress網站的一個重要方面是保持它的更新。 這似乎是最明顯的做法,但它還是值得提醒的。

WordPress的更新包括安全補丁、最新功能和性能修復。

你可以在你網站的wp-config.php文件中啟用自動更新。 我們建議更新到最新的WordPress版本,以保持你的網站安全。

同樣地,你也應該保持你所有的活動外掛程式和主題的更新。 如果你發現你的網站上有任何外掛程式或主題超過一年沒有被更新,那麼是時候重新考慮它們了。 由於WordPress豐富的生態系統,你很可能會找到一個更好的替代品。

2.優化你的網站的圖像

根據HTTP檔案(2022年3月1日),WordPress網站的中位頁面重量是2408KB,其中圖片佔了近1117KB(佔總頁面重量的46.38%)。

A graph from HTTP Archive's WordPress: Stage of Images showing that Images take up almost half of any page's weight.
WordPress。 圖像的狀態。 (來源:HTTP檔案)

毋庸置疑,大型圖片會拖慢你的網站,創造一個不那麼理想的用戶體驗。 因此,優化圖像,無論是手動還是使用外掛程式,都可以大大加快頁面載入時間。

在優化圖像時,你可以採用有損或無損的圖像壓縮方法。 大多數圖像編輯器在保存圖像時提供品質調整,以實現最佳的圖像壓縮。 有損壓縮幾乎總是在保留圖像細節和較小的檔尺寸之間找到完美的甜蜜點。

選擇適當的圖像檔格式是關鍵。 PNG很適合計算機生成的圖形,而JPEG則更適合照片。 還有許多圖像格式,如GIF、SVG、JPEG XR和WebP。 有些是所有瀏覽器普遍支援的,而有些則不支援,所以你在選擇它們之前必須仔細研究。

Setting the image sizes in WordPress Media Settings.
WordPress媒體設置 -> 圖片尺寸。

WordPress預設支持回應式圖像。 你可以設置你喜歡的圖片尺寸,讓WordPress處理其餘的事情。 但是,如果你想節省磁碟空間,你可以使用一個免費的WordPress外掛程式,如Imsanity,將大圖片自動縮小到配置的大小。

至於WordPress圖像優化外掛程式,Imagify總是一個很好的工具。 在我們關於網路圖片優化的詳細文章中,我們有更多的選擇

3.謹慎使用外掛程式(僅在必要時)。

外掛程式是WordPress和它的社區的生命。 在 WordPress.org 上有一個令人印象深刻的54,000多個免費外掛程式庫,加上其他地方列出的成千上萬的外掛程式,你可以在安裝WordPress外掛程式時亂了陣腳。

未經優化的WordPress外掛程式會拖累你網站的性能,增加載入時間。

儘管如此,你可以安裝幾十個WordPress外掛程式而不損害你網站的性能,但你也必須確保這些外掛程式的編碼良好,並對性能進行優化。 而且更重要的是,外掛程式的開發者應該已經優化了它們,使之能夠很好地相互配合

4.選擇一個快速的WordPress主題

選擇一個快速的WordPress主題對你的網站性能和用戶體驗至關重要。 一個主題的功能,如它的佈局、導航功能表、調色板、字體和圖像位置,是你的訪客首先會注意到的東西。

如果這些功能沒有得到很好的優化,你可能有一個漂亮的網站,但也是一個相當慢的網站。

A homepage screenshot of the popular Hello Elementor WordPress theme.
你好,Elementor是一個流行的WordPress主題。

在選擇WordPress主題之前,請列出你在網站上想要的所有功能。 然後研究並記下符合你要求的主題。

始終關注具有高評級和優秀客戶支援的值得信賴的開發商。 我們還建議你避開那些不經常更新的主題。

5.配置緩存以優化你的網站

An illustration of various website caches.
各種網站快取的圖示。

緩存是一項複雜的技術,有多個層次。 我們有一篇專門的文章來解釋什麼是緩存。 簡而言之,它是存儲和調用經常提供的數據以加快網站速度的過程。

WordPress運行在PHP和MySQL上,如果你不採用緩存,這兩者都會變得很臃腫。 因此,你的網站速度是你、你的主機和緩存之間的共同努力。

大多數管理型WordPress主機(包括Kinsta)都會在伺服器層面上處理緩存問題,所以你不必自己去實現它。 我們甚至還提供像邊緣緩存這樣的高級功能,幫助我們的客戶更快地將他們的網頁提供給他們的網站訪問者。

然而,如果你的主機不這樣做,你總是可以使用一個免費的WordPress緩存外掛程式(如WP Super Cache、W3 Total Cache)。

A comparison image of Pingdom speed tests of a Kinsta-hosted website with and without caching.
A Kinsta-hosted site — with and without cache.

即使不啟用緩存,上述網站的性能也非常好,因為它被合理地優化了。 然而,啟用緩存后,它的性能提高了23%。 如果你要為成千上萬的獨立訪客提供服務,這些載入時間就會增加。

6.減少外部HTTP請求(和API調用)。

你的WordPress網站的主題和外掛程式可能包括對各種資源的外部請求。 一般來說,這些請求是為了載入外部託管的檔,如樣式表、字體、腳本等。

GTmetrix showing how CSS can be a major render-blocking resource.
CSS可以是一種阻斷渲染的資源。

偶爾,它們是為了增加功能,如分析、社交媒體分享等。

使用其中的一些是可以的,但是太多的會拖慢你的網站。 你可以通過減少HTTP請求的數量和優化它們的載入方式來加快網站的速度。

7.最小化你的網站的腳本和樣式表

代碼最小化是指從代碼中去除不必要的元素的過程。 對於一個WordPress網站來說,這主要包括對JS腳本和CSS樣式表的最小化。

這些元素是代碼的一部分,因為它很容易被人類(或網路開發者)閱讀。 這種元素的一個簡單例子是代碼註釋。 然而,這些元素對機器(或網路瀏覽器)來說並不是必需的。

通過最小化你的網站代碼,你有更小尺寸的JavaScript和CSS檔。 它們不僅載入速度更快,而且瀏覽器對它們的解析也更快。 它們加在一起,可以極大地提高你的頁面載入速度。

大多數WordPress性能外掛程式將説明你毫不費力地做到這一點。 一個流行的選擇是免費的Autoptimize外掛程式,在寫這篇文章的時候,它有超過100萬的活躍安裝。

8.在每個頁面載入時只載入必要的腳本

大多數WordPress的主題和外掛程式資源經常在所有的頁面上載入和運行,即使它們在某些頁面上不需要。 例如,一個聯繫表單外掛程式可能會在每個頁面上載入它的資產,而不是只在有聯繫表單的頁面上載入(例如聯繫頁面)。

縮小和合併這些腳本可能會稍微提高你的網站性能,但首先要防止這些腳本和樣式的載入。

我面建議免費的 Asset Cleanup 外掛程式 完成這個任務. 所有資產。 然後你可以選擇這個頁面上不需要的CSS和JS檔–從而減少臃腫。

Using the Asset CleanUp WordPress plugin to block certain scripts and styles from loading on a page.
使用 Asset Cleanup 外掛程式。 (來源:WordPress.org)

Asset Cleanup 與緩存結合使用效果最佳,因為網路伺服器不必重複生成優化后的頁面。

9.加快你緩慢的WordPress管理儀錶板的速度

通常情況下,後端優化是從優化前端開始的,因為加快前端的速度幾乎總是也能修復後端的性能問題。

如果你有一個遲緩的WordPress管理員,你可以反過來做同樣的事情–修復你的後端性能問題可能有助於為訪問者加速你的網站。

在這種情況下,一個伺服器級別的APM工具總是很方便,因為安裝額外的外掛程式可能會進一步減慢你的網站。

Finding the slowest transactions with Kinsta APM.

高的Admin-Ajax使用率是WordPress網站的一個常見的性能瓶頸。 然而,緩慢的WordPress管理也可能是由於後台WordPress任務,如WordPress備份、WP-Cron等(就像我們前面的例子)。 也可能是一個臃腫的外掛程式在你的管理儀錶板上添加了太多的橫幅。

10.伺服器位置和配置事項

你的網路伺服器的位置和它的配置會對你的網站速度產生重大影響。

例如,如果你的網站伺服器在美國,你的網站對來自歐洲或印度的訪問者的載入速度會比來自美國的訪問者慢。

你可以通過使用來緩解這個問題。

  • 離你和你網站的大多數訪問者最近的網路伺服器。
  • 一個具有廣泛全球覆蓋的CDN。
A global map of Google Cloud’s worldwide zones.
谷歌雲的全球區域。 (來源:谷歌)

如果你的網站吸引了全世界的觀眾,你可以通過選擇雲交付網路(CDN)來進一步提高其速度。

接下來是伺服器配置– 它使用什麼硬體和軟體棧? 它們是為快速的WordPress主機設計的嗎?

伺服器資源是在一個大的網站池中共用,還是只為你的使用而隔離?

如果有不可預測的流量激增,伺服器資源是否可以自動擴展,或者每次發生這種情況,你都必須升級到一個新的計劃?

這些都是一個有信譽的網路託管公司會熱心提供的問題。 你必須時刻積極關注它們。

11.使用內容交付網路(CDN)。

加快網站速度的最簡單方法之一是使用一個快速和可靠的CDN。

CDN通過直接向你的訪問者提供內容來減輕你的網站伺服器的負擔。 這些是一個伺服器網路(也被稱為POP),旨在託管和提供你的網站內容的副本,如圖像、樣式表、字體、腳本和視頻。

A screenshot from Cloudflare's website showing a global map of all its POPs.

我們建議每個網站至少使用某種類型的CDN來加快其性能。

12.刪除不必要的URL重定向

如果你正在用新的文章和頁面更新網站,你很可能會對你的URL結構進行修改。 在這種情況下,URL重定向是一個福音。 然而,如果你不遵循WordPress重定向的最佳做法,你可能會對你網站的用戶體驗和搜尋引擎優化(SEO)產生負面影響。

配置不當的URL重定向最常見的問題是造成一連串的重定向。 在某些情況下,這個鏈條是一個無限的重定向迴圈。 這種重定向鏈往往會導致頁面載入時間增加。

錯誤配置的URL重定向有時會導致錯誤404 “未找到頁面 ”的錯誤。 如果你的網站產生了大量的404錯誤,也會影響你的網站性能,因為這些回應通常不會被緩存。

A graph of the 404 errors and 30x redirects breakdown as shown in MyKinsta.

你可以設計一個創造性的404錯誤頁面來安撫在此登陸的使用者。 但從長遠來看,這對你沒有説明。

Kinsta’s Error 404 “Page not found” page.

以下是你如何避免創建不必要的重定向。

  • 使用適當的URL前綴(HTTP或HTTPS)。
  • 保留或刪除URL中的 「www」子域(不要把它們混在一起)。
  • 不要在URL中使用帖子和頁面ID。
  • 包括整個URL路徑。
  • 確保你的頂級功能變數名稱(TLD)在一次重定向中得到解析(理想情況下,應該沒有重定向)。

WordPress 有很多重定向外掛程式,其中比較流行的是 John Godley的 Redirection plugin 

Using the free WordPress 'Redirections' plugin.
使用免費的WordPress 「重定向 」外掛程式。

13.修復WordPress混合內容警告(HTTPS/SSL錯誤)

在HTTPS協議上運行你的WordPress網站在今天是必須的。 然而,從HTTP遷移到HTTPS時,你可能會面臨幾個問題 –最常見的是 “混合內容警告 ”警報。

當一個頁面包括HTTP和HTTPS內容時,會出現混合內容警告。 不安全地載入資源不僅是一個安全問題,也是一個潛在的性能問題。

如果你的網站出現混合內容錯誤,你可以使用像Why No Padlock這樣的免費工具來查看哪些資源正在被不安全地載入。

一個簡單的搜索和替換應該可以解決你所有的混合內容警告。 但如果沒有,可能有一些硬編碼的腳本,你需要找到並手動更新。 或者僱用一個可以為你做這個的開發人員。

14.定期優化你的WordPress資料庫

一個WordPress網站的資料庫存儲著它的所有關鍵資訊。 但如果沒有定期維護,它可能會拖慢你的網站。

例如,WordPress的資料庫可能仍然有你幾年前啟動網站時的資訊。 這包括帖子和頁面的修訂、草稿、廢棄的評論和刪除的帖子。 雖然它們可能對編輯和發佈最近的帖子有説明,但隨著時間的推移,資料庫會積累很多不必要的數據,變得臃腫。

因此,優化你的WordPress資料庫是必要的,以改善和保持你的網站性能。

另外,一些外掛程式和主題將數據添加到wp_options表中,以使它們更容易配置和自動載入設置。 但是,自動載入太多的數據會減慢頁面回應時間。

你可以使用各種技術來優化WordPress的資料庫。 一種方法是使用phpMyAdmin或Adminer來手動清除過時的資料庫專案。 或者你可以使用WordPress資料庫優化外掛程式,如WP-Optimize、WP-Sweep和高級資料庫清理器。

Showing the UI of Advanced Database Cleaner WordPress plugin.
使用 「高級資料庫清理器 」外掛程式。

15.選擇一個基於雲的WordPress安全服務

每天都有數以千計的WordPress網站被黑。 因此,安全是WordPress網站的一個關鍵問題,你必須始終保持在這個問題上。

你有兩種主要方式用防火牆來保護你的WordPress網站。

選擇一個有良好記錄的安全虛擬主機服務

使用一個專門的第三方安全服務來保護你的網站

第一個選擇是明確的。 一個可靠的WordPress主機供應商將為你處理大部分的網站安全措施。

然而,如果你不得不選擇第二個選項,你還有另外兩個選擇。

選擇一個WordPress安全外掛程式(如Wordfence)。

選擇DNS防火牆(如Cloudflare)。

由於WordPress安全外掛程式總是在線和定期掃描的要求,所以會消耗你的網站資源。

相反,你可以使用基於雲的安全解決方案,如Cloudflare。 它們還能提供額外的保護,防止機器人、DDoS攻擊和代理流量。

16.升級到最新的PHP版本

WordPress主要由PHP驅動,這是一種伺服器端的程式設計語言。 甚至它的主題和外掛程式也主要是用PHP編寫的。

通常情況下,較新的PHP版本要比較舊的版本快。

我們的年度PHP基準測試發現WordPress在PHP 8.1上比在PHP 8.0上快47.10%。 與PHP 7.2相比,它甚至更快,每秒處理的請求數遠遠超過50%。

Graphs for the WordPress 5.9-RC2 PHP Benchmarks.
WordPress 5.9-RC2 PHP基準測試。

在寫這篇文章時,大多數WordPress外掛程式、主題和開發工具還不支援PHP 8.1。 如果你打算把生產網站的環境升級到PHP 8.1,我們建議你在一個暫存環境上進行徹底的測試,以確保它不會崩潰。

儘管如此,如果你的伺服器還在使用 PHP 7.x 版本,你可以升級到 PHP 8.0 並獲得大部分相同的好處。

分享你的喜愛

發佈留言

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