關於 WordPress 後台(儀錶盤)進入緩慢的原因分析
最近明月看到或者聽到很多 WordPress 新站長們反映在進入 WordPress 後台(也叫儀錶盤、控制面板)是明顯感覺到很卡頓、緩慢,甚至比首頁、文章頁的載入還要慢很多。關於 WordPress 後台慢其實很多老站長也會碰到,今天明月就結合多年 WordPress 使用經驗來給大家具體分析一下,以便大家可以根據自己站點的情況來有針對性的解決。
WordPress 自身存在的國外http請求
老站長們應該都知道 WordPress 是來自國外的PHP開發的博客平台,既然 WordPress
生在國外,那麼很多系統底層的介面庫調用的API基本上也都是國外的了,其中的涉及到http請求的API調用自然用的也是國外的http請求了,這些API調用請求很多都是 WordPress後台載入時需要載入的。所以,如果你的伺服器主機是國內主機的話,有的時候就會有卡頓和載入時間過長的現象發生,其實這個主要是你當前使用的伺服器主機海外帶寬造成的。用海外主機的基本上是很少會碰到
WordPress 後台載入慢的問題的,原因就出在這裡。比如, WordPress 後台默認首頁面你會看到 WordPress 的「Welcome」、「 WordPress 新聞」模塊,這就是典型的國外http請求的東西,可以在右上角的「顯示選項」里取消勾選,如下圖:
還有一個也是http請求的模塊那就是「活動」模塊里的「近期評論」了,確切的說是評論里的Gravatar頭像調用拖慢了 WordPress
後台的載入,雖然感覺Gravatar有中國伺服器,但是現實是雖然域名是http://cn.gravatar.com,但這僅僅是域名里有個cn而已,伺服器依然是在國外的,所以Gravatar頭像總是會出現失效和載入緩慢。這也是一個嚴重影響 WordPress 後台載入速度的地方。建議大家參考【如何定製WordPress後台儀錶盤指定模塊的顯示】一文運用代碼直接屏蔽 WordPress
後台儀錶盤指定模塊的顯示,這是最簡單有效的,上面說到的都可以通過這種方法來屏蔽掉,但是這樣明顯是「不科學」的,畢竟「近期評論」的顯示還是很有必要的嘛。Gravatar頭像問題解決方法
- 1、將Gravatar頭像緩存到本地
這個方法理論上來說是最快的Gravatar頭像調用方法,一般多採用插件或者代碼即可實現,優先推薦代碼來實現( WordPress 里能用代碼解決的絕對不用插件湊合!),但是這個方法有個最大的不足就是過渡依賴了伺服器主機的國外http請求了,如果評論很多的話,在生成本地緩存階段就會造成伺服器主機負載上升的危險,如果正是網站訪問的高峰期,那就是場災難了
!
- 2、使用國內第三方提供的Gravatar鏡像
這個方法也就是說不使用Gravatar的伺服器鏈接來引用評論頭像,使用國內第三方的Gravatar鏡像服務,比如:https://cdn.v2ex.com/gravatar
這樣的。所謂「鏡像」其實很好理解,大家可以理解為照鏡子一樣的複製就行了。這樣的鏡像等於說是把Gravatar伺服器上的頭像都給鏡像複製到國內的伺服器主機上了,自然訪問起來就順暢多了。這種第三方的Gravatar鏡像用的人越多其鏡像複製的Gravatar頭像就越豐富,引用時就越流暢。但是這個方法需要修改替換 WordPress 系統文件里的Gravatar國外伺服器鏈接才可以徹底的實現加速,雖然也不是很複雜,甚至用代碼來自動替換都可以。但是因為涉及到了 WordPress 文件的修改和第三方平台的穩定性,還是會出現一定引用失敗概率,特別是在更新 WordPress 後甚至需要重新部署代碼替換修改這些,還是稍顯麻煩了 。- 3、徹底拋棄Gravatar頭像,使用QQ頭像或者評論者名稱首字母等
這個方法比較極端,對代碼依賴性很大,如果懂得PHP代碼和 WordPress
函數庫的話明月認為是首選「折騰」方案,因為這樣的「個性化」還是很能提升一下「逼格」的。至於說不懂代碼的,目前很多主流的 WordPress
主題都內置了類似的功能的,大家可以考慮更換主題來試試。相對於上面兩個方法來說,這個方法成本最高,畢竟購買主題不是誰都可以接受的,至於說懂代碼的更是鳳毛麟角了。- 4、藉助國內雲存儲服務自建Gravatar鏡像
這個是目前明月幾個站點一直在使用的Gravatar頭像加速方案,兼容性非常的好,無論是 WordPress 還是 Typecho
博客平台都可以完美的支持和引用,並且引用的Gravatar頭像前綴域名可以自定義,比如類似:http://avatar.mydomain.com、http://tx.mydomain.com等等,跟自己網站域名高度貼合,絕對是提升「逼格」的最佳方案,甚至可以根據需要選擇http還是https都可以,具體大家參考【利用七牛雲存儲緩存Gravatar頭像加速 WordPress】一文里的方法來部署就可以了,雖然這個方法明月感覺最好,但是因為涉及到雲存儲、 CDN 、 WordPress 代碼這些東西,對於新手來說相對還是有些複雜的,新手可以嘗試著學習操作一下了 。另外 WordPress 原生的Auto Embeds、文章 Embed 功能、 Emoji 的渲染圖片、 wordPress 更新伺服器等等這些也都是需要海外https請求的,基本上國內主機使用的話建議都盡量的關閉為宜,具體關閉方法大家就自行百度一下吧,很多
WordPress 優化插件就可以開關這些功能的。WordPress 插件和主題拖慢了後台載入
很多新手站長們在選擇 WordPress 主題的時候優先考慮的都是免費主題,而免費主題很多都是移植國外 WordPress 主題而已,也有直接使用國外的「框架」開發的 WordPress 主題,這些主題本身就帶有不少的需要國外http請求的代碼,甚至有些還用的是國外的「免費在線字體」,比如著名的「谷歌字體」等。可以說這類主題如果是國外主機伺服器使用是基本沒有問題的,一旦遷移到國內主機的話性能就會下降很多。
很多的新手站長們一般都比較「痴迷」於 WordPress 主題的研究和嘗試,對那些炫酷的CSS/JS特效很嚮往,豈不知這些特效很多都是CSS庫、JS庫而已,並且大部分的都是在國外的伺服器上,這就是為啥很多新手站長新站非常慢的原因之一了,主題做的孽!關於 WordPress 主題其實明月很清楚「 WordPress 站點好創建,但一個稱心如意的 WordPress 主題難求」的道理,那麼我就多年來在 WordPress 主題的選擇和使用對 WordPress 後台載入速度的影響總結幾條建議,以供新手們注意。
- 1、優先使用國內作者開發的 WordPress 主題(一般負責任的主題作者都會做好主題本地化優化的。),國外主題是優秀但會嚴重的水土不服,你懂得!
- 2、盡量優先選擇收費主題,收費就意味著完整的文檔、持續的更新維護等等服務,沒有「更新」支持的主題就跟「殭屍」一樣,終究會被淘汰的。免費的永遠是最貴的,這是個至理名言!當然「玩票」性質的站長可以無視了。
- 3、不要使用長期沒有更新過的老「主題」,沒有更新的主題就意味著漏洞/BUG/不足/技術滯後問題的存在。
- 4、選擇主題要綜合考慮而不是單看主題外觀,兼容性、穩定性、是否對某個框架有依懶性等等,否則絕對是後患無窮的。
- 5、請記住,主題是來用的,不是經常更換的,頻繁的更換主題對網站SEO也不利,主題可以折騰,但不建議經常更換。
另外還有一個對 WordPress 後台載入影響很大的環節就是「插件」, WordPress 向來是以插件、主題豐富著稱的,插件可以很好的擴展 WordPress 功能,確實有些插件是必不可少的,無論是 WordPress 老手還是新手都會用到 WordPress 插件的,唯一的區別就是老手知道用什麼插件,新手是什麼插件都敢用。很多新手們特別熱衷於給 WordPress 安裝「SEO優化」類的插件,根本就不考慮適不適用?(就明月的經驗來說這類SEO插件除了拖慢你的 WordPress 站點速度以外,其它可以說是毫無用處!原因很簡單,國內主機你非要做谷歌SEO優化,意義何在呢?給百度優化?百度演算法頻繁的更換和調整,一個插件就可以搞定百度了?),其實這些「壞」的插件使用習慣都是受網上眾多的「老文章/教程」的毒害造成的,奉勸新手們盡量少用插件,更不要用來歷不明的插件(非 WordPress 官方途徑下載的)。關於插件明月其實最近折騰的最多的也就是那幾個緩存插件而已,其它的插件我是能不用就堅決不用。總之,對於插件來說,能用代碼實現的就用代碼,插件能少用就少用!下面在給大家總結和分享一下有關
WordPress 插件的建議,主要還是針對新手博客站長們的:- 1、選擇插件的時候必需要清除自己的需求是什麼,代碼可以解決的就盡量用代碼,不到萬不得已插件永遠都是最後的選擇。
- 2、那些對資料庫有操作需求的插件盡量遠離,影響性能的同時還會造成資料庫越來越臃腫效能低下,具體大家可以參考【親,你有多久沒有清理過資料庫wp_options表了?】一文。
- 3、對 WordPress 編輯器起輔助作用類插件少用,這類插件都會造成兼容性問題,並且還會嚴重拖慢後台載入速度。
- 4、SEO插件國內使用效果幾乎為零,因為 WordPress 上的大部分SEO插件主要都是針對谷歌(Google)的,對百度又多大的影響?我是深表懷疑的。
- 5、過多外鏈請求的插件慎用,這類插件一般都會存在安全隱患,外鏈請求還會消耗主機伺服器的負載,有時候伺服器負載居高不下一般都是這類插件造成的。
- 6、安全防禦類插件使用可靈活使用,需要的時候開啟,不需要的時候關閉,因為這類插件一般都會對資料庫有大量的連接操作,很容易引起主機伺服器的宕機的,虛擬主機用戶這點兒尤為突出。ECS獨立雲主機用戶建議加強主機層面的安全防禦,不建議在 WordPress 層面過多的安全防護,因為有時會影響到SEO。
- 7、像視頻支持、內容美化等等類型的插件更是影響 WordPress 後台載入時間的消耗大戶,我的建議是能不用就不要用。
- 8、選擇插件的時候盡量選用還在更新維護的插件,超過6個月以上沒有更新過的插件就不建議使用,插件涉及到伺服器端的操作是個很大的安全隱患。
- 9、非官方( WordPress 插件庫)插件是網站後門、木馬的重災區,為了網站的「長治久安」建議大家插件都要從 WordPress 官方插件庫里安裝和下載。
- 10、像代碼高亮類的需求,其實使用在線工具轉換為HTML後插入文章內是兼容性最好的方案了,為此要用個插件真的是「得不償失」的。
涉及插件方面的,目前我就總結分享這麼多吧,以後要是還有的話,我會及時更新補充的。
其實有關 WordPress 後台載入慢的原因可能跟伺服器部署也有一定的關係,所以,這個問題真的不是幾句話就可以分析的很清楚的,但基本上也就是今天講的這幾個方面而已,其中解決Gravatar頭像問題後,後台載入時間會有明顯的提高的。同樣的停用某些插件後速度提升也會很明顯,所以基本上可以總結為就是過多的站外http請求是 WordPress 後台載入慢的「罪魁禍首」之一,所以,再碰到 WordPress 後台載入慢的時候,大家就從這方面著手至少思路和方向上是對的。
其實, WordPress 能一直「長盛不衰」至今,其實最主要就是近乎完美的「自由、擴展」特性,如果要玩好 WordPress
,代碼這個「關」是必須要過的,如果無法逾越「代碼」這個門檻,那麼就不要將精力過多的放在「折騰」上,專心做好網站內容才是根本。不知道給位新手站長們是否注意過,幾乎所有比較著名的博客站都沒有很華麗的炫酷特效,一個主題幾年甚至幾十年都沒有更換過,甚至有些博客大咖們使用的主題竟然是 WordPress 默認主題,可見網站受不受歡迎跟你用的是啥主題真心沒有太大關係的,所以折騰主題、插件這些事兒我感覺就當是在創作「內容」的閑暇之餘的「課外活動」就行了,不用那麼執著的。推薦閱讀: