對於效能愛好者來說,Cloudflare的APO代表著在最大化WordPress效能方面向前邁出了一大步。
在我們的基準測試中,我們發現在我們的測試站點上啟用APO可以將頁面載入時間減少70-300%,具體取決於測試位置。
在本文中,我們將深入探討Cloudflare APO的工作原理以及如何使用它來提高WordPress網站的效能!
- 什麼是自動平臺優化 (APO)?
- 邊緣的靜態HTML
- 2022年Web效能狀況
- Cloudflare的自動平臺優化如何工作
- 使用高效能託管和Cloudflare APO最大限度地提高WordPress效能
- 如何為WordPress使用Cloudflare自動平臺優化
- 如何確認適用於WordPress的Cloudflare APO是否正常工作
- 不使用Cloudflare外掛的自動平臺優化
什麼是自動平臺優化 (APO)?
Automatic Platform Optimization(以下簡稱APO)是Cloudflare提供的一套新的一鍵式平臺定製優化服務。
第一個接受“APO待遇”的平臺是WordPress,它是全球最受歡迎的CMS,市場份額超過60%。未來,我們希望看到類似的APO服務適用於其他CMS和平臺。
在較高的層面上,Cloudflare的WordPress APO通過兩種主要方式提高了網站效能。
- WordPress站點頁面的靜態HTML副本快取在全球各地的Cloudflare邊緣伺服器中。
- 第三方字型由Cloudflare快取和提供。
讓我們深入瞭解一下APO在技術層面上的工作方式和原因。
邊緣的靜態HTML
Cloudflare的APO與其他傳統頁面快取和CDN解決方案之間的關鍵區別在於它能夠在Cloudflare的邊緣直接快取靜態HTML。為了描繪更清晰的畫面,讓我們通過從“無優化”到APO的四種不同的WordPress設定。
WordPress設定 #1 – 無頁面快取或CDN
預設情況下,WordPress不提供頁面快取或CDN支援。使用此配置,即使請求之間沒有更改頁面內容,所有請求也需要由PHP動態生成。
此外,沒有內容交付網路 (CDN) 整合意味著所有靜態資產(如CSS、JS、影象和字型)都由源伺服器提供服務。
這種配置會使WordPress站點變得非常慢,尤其是對於遠離源伺服器的訪問者而言。
WordPress設定 #2 – 沒有CDN的頁面快取
實施頁面快取是提高WordPress效能的最佳策略之一。在一些WordPress託管伺服器,託管堆疊包括一個高度調整的頁面快取層,由Nginx的FastCGI快取模組提供支援。
頁面快取極大地減少了源伺服器上的CPU負載,因為可以從快取中提供請求,而無需生成動態HTML。
這可以釋放您的CPU以專注於其他重要的動態任務,並使您的WordPress網站更加穩定。雖然此配置可能允許您的站點每秒處理更多請求,但它並不能解決“距離問題”。
如果沒有合適的CDN,向遙遠的訪問者提供靜態資產仍然是一個問題。
WordPress設定 #3 – 使用CDN進行頁面快取
到目前為止,新增用於提供靜態資產的CDN的頁面快取是託管WordPress網站的最高效方式。
在這個模型中,源伺服器仍然負責為頁面提供實際的HTML。但是,CSS檔案、影象和字型等靜態資產被解除安裝到世界各地的各種CDN存在點 (PoP)。該模型背後的想法是靜態資產,尤其是大影象,構成請求頁面大小的大部分. 因此,通過將資產解除安裝到更靠近訪問者的伺服器,可以減少載入時間並提高效能。
使用CDN的全球流量路由
雖然此配置比前兩個配置提供了顯著改進,但它確實讓您想知道如果WordPress效能不再因必須從源伺服器提供HTML而成為瓶頸,會發生什麼。
令人驚訝的是,在為WordPress引入Cloudflare的APO之前,這樣的設定是不可行的——至少對於非技術使用者來說是不可行的。
WordPress設定 #4 – 適用於WordPress的Cloudflare APO
Cloudflare APO是世界上最新的WordPress效能優化解決方案。與之前受源站伺服器效能限制的WordPress設定不同,啟用APO的站點從訪問者的角度來看基本上變得“無源”。
使用Cloudflare APO進行全球流量路由
為此,Cloudflare利用其全球分佈的CDN以及Workers/Workers KV來建立您的WordPress站點的靜態HTML表示。我們將在本文後面深入瞭解Cloudflare APO的工作原理。
現在,只要知道啟用了APO的相容WordPress站點不再受制於來源引起的延遲。換句話說,來自美國、德國和日本的訪問者的請求將由附近的資料中心而不是您的源伺服器提供服務。
2022年Web效能狀況
在過去的幾年裡,專業的Web開發行業發生了很大的變化。越來越多的開發人員正在從WordPress這樣的單體架構轉向更靈活和高效能的靜態站點生成器,比如Hugo和JavaScript框架,比如Gatsby。
我們明智地使用“效能”一詞,因為Web效能通常可以被解釋為一個主觀指標。
例如,頁面的載入時間可能會根據測試位置和一天中的時間而波動。
因此,一味地說Gatsby靜態網站比WordPress網站快是沒有任何意義的,直到建立了一些論證的上下文。
在當今高度連線的世界中,Web效能測試最重要的環境之一是世界不同地區的載入時間。
這就是靜態網站在效能方面優於WordPress的地方。預設情況下,靜態站點可以直接上傳到全球分佈的CDN——這使得它們在全球範圍內快速傳播,無需任何額外工作。
由於WordPress站點需要某種型別的源伺服器來生成HTML,因此它無法直接利用Netlify、Vercel和Cloudflare自己的Workers Sites等平臺進行無摩擦的全球交付。從業務角度來看,這意味著您可能會失去遠離原始伺服器的潛在訪問者和客戶,因為Google在生成搜尋結果時會考慮頁面速度。
這就是Cloudflare的WordPress APO發揮作用的地方。
啟用Cloudflare APO將WordPress效能提高了300%
Cloudflare的WordPress自動平臺優化是對2022年WordPress效能意味著什麼的徹底重新思考。正如我們之前提到的,在我們的測試站點上啟用APO可將載入時間從70%減少到300%,具體取決於測試位置。這是可能的,因為APO有效地消除了作為效能瓶頸的源伺服器。
Cloudflare的自動平臺優化如何工作
使用Cloudflare APO,您的WordPress站點的HTML快取在Cloudflare的全球邊緣伺服器中。這可以通過Workers KV實現,這是一種分散式鍵值資料庫服務,具有超快的全域性傳播(不到60秒)。
當資料通過Cloudflare API寫入Workers KV時,它會在幾秒鐘內自動複製到全球150多個Cloudflare資料中心。
這使得Workers KV成為加速WordPress網站的主要候選者,因為文章和頁面可以很容易地用鍵值機制表示——URL是“鍵”,HTML頁面內容是“值”。
在Cloudflare Workers KV中儲存為鍵值物件的網頁
為您的WordPress站點啟用APO後,對您站點的大多數請求將不再訪問您的源伺服器。
相反,請求將從本地Cloudflare CDN快取(如果快取頁面存在)或Workers KV(如果快取頁面在Cloudflare的CDN上不存在)提供。
如果CDN快取或Workers KV資料庫中不存在頁面,則Cloudflare將向您的源伺服器發出單個請求並快取新頁面的HTML。
這裡的神奇之處在於Cloudflare Workers KV充當您的源伺服器的某種分散式映象。回想一下,儲存在Workers KV中的資料會在Cloudflare的整個伺服器網路中自動複製。
這意味著即使您執行WordPress的源伺服器位於美國某處,來自日本的訪問者的請求也不需要訪問您的源伺服器來啟動本地CDN快取區域。
相反,來自日本的訪問者將獲得來自附近Cloudflare資料中心的Workers KV資料庫或CDN快取的快取HTML。
這種新的交付模型與以前為WordPress快取HTML頁面的嘗試大不相同。
以前,最流行的“整頁快取”方法涉及建立Cloudflare頁面規則來“快取所有內容”。雖然這種方法可以顯著提高效能,但它並不是一種非常有效的快取方法,因為它依賴於“拉”模型而不是Workers KV的“推”模型,後者會自動在全球範圍內推送HTML。
通過上一頁基於規則的設定,訪問美國Cloudflare快取區的訪問者不會為其他位置的訪問者快取資產——這意味著從全球內容交付的角度來看,網站無法有效利用Cloudflare的網路。
自動平臺優化通過快取第三方字型更進一步。在許多情況下,字型最終會佔據頁面請求大小的很大一部分。
與通常從根域提供的CSS、JS和影象不同,字型通常來自第三方服務,如Google Fonts。這意味著Cloudflare等基於代理的快取服務無法快取字型和提供字型。
由於APO由Cloudflare Worker(位於源伺服器和訪問者之間的可程式設計JavaScript服務工作者)提供支援,因此可以注入額外的邏輯來完成基本快取之外的任務。
在這種情況下,APO使用Cloudflare Worker來快取第三方字型並使用內聯CSS修改頁面的HTML,以指向Cloudflare CDN上的快取字型。這消除了獲取字型的額外外部請求的需要,並減少了服務頁面所需的連線數量和載入時間。
最後,由於APO通過WordPress外掛與您的站點整合,因此每當您更新站點上的頁面時,都會自動清除Cloudflare快取。這可確保訪問者始終能夠看到您網站的最新版本,而無需任何人工干預。
使用高效能託管和Cloudflare APO最大限度地提高WordPress效能
然而,Cloudflare APO並不是靈丹妙藥。選擇以效能為中心的WordPress主機仍然非常重要,主要有兩個原因。
- Cloudflare APO僅快取未登入使用者的前端頁面。與伺服器級頁面快取配置類似,APO不會快取具有特定cookie和已登入使用者的頁面。這意味著原始伺服器效能仍然是等式的關鍵部分。
- 出色的WordPress體驗不僅僅包括快速的前端效能。由於WordPress本質上是一個動態CMS,因此在運營WordPress網站時需要考慮許多因素。
這裡有四個用例展示了為什麼即使您使用Cloudflare APO仍應選擇高效能WordPress主機。
1. WooCommerce, Easy Digital Downloads和電子商務
當檢測到某些與電子商務相關的cookie時,Cloudflare APO會選擇性地繞過快取。例如,當訪問者在WooCommerce網站上將商品新增到購物車時,WordPress會自動設定woocommerce_items_in_cart
cookie。當檢測到此cookie時,APO會繞過快取以避免快取和提供客戶特定的資料。因此,即使啟用了自動平臺優化,WooCommerce和其他基於WordPress的電子商務平臺仍將嚴重依賴原始伺服器的效能。
2. WordPress儀表盤效能
由於Cloudflare APO不會為登入使用者快取HTML,因此在WordPress儀表盤中導航將始終完全依賴於您的源伺服器效能。如果您沒有使用效能優化的主機,那麼在您的WordPress網站上編寫和釋出內容、管理影象和其他媒體資產以及執行維護例程等任務可能會變成非常緩慢的體驗。這會對您的業務成果產生直接的負面影響。
3. WordPress會員網站和論壇
如果您使用Ultimate Membership Pro之類的外掛來管理您的WordPress會員網站,或者使用bbPress來支援WordPress論壇,Cloudflare APO將無法優化您的大部分流量。由於會員網站和論壇通常需要使用者登入,Cloudflare APO將自動繞過這些使用者的HTML快取。因此,使用高效能主機仍然是WordPress會員網站和論壇保持快速使用者體驗的最佳方式。
4. WordPress Cron作業
WordPress cron (WP-Cron)可幫助您在WordPress網站上安排和自動化後端任務。您的站點可能會使用cron作業在特定時間釋出文章。像這樣的簡單任務在CPU資源方面不需要太多,但其他任務可能會佔用更多資源。例如,使用備份外掛每12小時自動將您的WordPress站點備份到ZIP存檔之類的任務會佔用更多CPU。
由於Cloudflare APO僅有助於優化前端內容,因此您仍需要將站點託管在高效能主機上,以最大限度地提高後端任務的效能和登入使用者體驗。
如何為WordPress使用Cloudflare自動平臺優化
既然我們已經討論了為什麼Cloudflare WordPress自動平臺優化會改變遊戲規則,那麼讓我們來看看如何將服務新增到您的WordPress網站。
APO適用於Cloudflare免費和付費計劃。對於免費的Cloudflare使用者,需要額外支付5美元/月的APO費用。如果您在Cloudflare上使用Pro、Business或Enterprise計劃,則可以免費啟用APO。
以下是開始使用Cloudflare APO所需的操作:
- 在Cloudflare儀表盤中建立API令牌。
- 安裝官方Cloudflare WordPress外掛。
- 啟用自動平臺優化。
1. 建立Cloudflare API令牌
在啟用APO之前,您需要先生成API令牌並安裝Cloudflare WordPress外掛。要生成API令牌,請單擊Cloudflare儀表盤右上角的個人資料圖示,單擊“My Profile”,選擇“API Tokens”選項卡,然後單擊Create Token。
建立Cloudflare API令牌
在“API Token Templates”下,單擊WordPress選項旁邊的Use Template。
選擇WordPress API令牌模板
“WordPress”模板將生成一個具有必要許可權的API令牌,以允許自動平臺優化正常執行。預設設定是您開始使用APO所需的全部,但如果您需要將API令牌鎖定到特定使用者或區域,請隨意調整“Account Resources”和“Zone Resources”設定。
完成令牌引數配置後,向下滾動並單擊Continue to Summary。
配置Cloudflare API令牌引數
最後,單擊Create Token以完成該過程。
確認Cloudflare API令牌的建立
請務必將API令牌複製到安全位置。稍後安裝Cloudflare WordPress外掛時將需要它。將API令牌記錄在密碼管理器等安全位置後,請隨時關閉頁面。
在安全的地方記錄您的Cloudflare API令牌
2. 安裝Cloudflare WordPress外掛
Cloudflare WordPress外掛可以直接從WordPress外掛庫安裝。要找到它,請在WordPress儀表盤中搜尋“Cloudflare”。請務必安裝官方Cloudflare外掛,而不是“WP Cloudflare Super Page Cache”,這是第一個搜尋結果。
安裝官方Cloudflare WordPress外掛
接下來,轉到WordPress儀表盤側邊欄中的設定 > Cloudflare,然後單擊“Sign in Here”。
登入您的Cloudflare帳戶
輸入與您的Cloudflare帳戶關聯的電子郵件地址以及您之前生成的API令牌。單擊Save API Credentials以完成登入過程。
輸入您的電子郵件地址和Cloudflare API令牌
現在Cloudflare WordPress外掛已全部設定完畢,讓我們前往Cloudflare儀表盤以啟用自動平臺優化。
3. 在Cloudflare中啟用自動平臺優化
Cloudflare Pro、Business和Enterprise計劃中包含WordPress的自動平臺優化,無需額外費用。如果您使用免費的Cloudflare計劃,則APO附加元件每月5美元。要啟用APO,請轉到Cloudflare儀表盤中的Speed > Optimization。
要啟用APO,請導航到Speed > Optimization
向下滾動到“Optimized Delivery”部分,並啟用“Automatic Platform Optimization for WordPress”。如果您使用的是免費計劃,Cloudflare將在此期間提示您提供賬單詳細資訊。啟用APO後,您應該會看到一條訊息“WordPress plugin successfully detected on [your domain]”。如果您沒有看到此訊息,我們建議您重新安裝Cloudflare外掛或聯絡Cloudflare支援以獲得進一步幫助。
在Cloudflare儀表盤中為WordPress啟用自動平臺優化
在您的WordPress儀表盤中,轉到側欄中的設定 > Cloudflare。單擊“Apply Recommended Cloudflare Settings for WordPress”旁邊的Apply按鈕——這將優化您的WordPress的Cloudflare設定。最後,確保在外掛設定中也啟用了“Automatic Platform Optimization”。
Cloudflare WordPress外掛設定
如何確認適用於WordPress的Cloudflare APO是否正常工作
此時,Cloudflare自動平臺優化應該在您的站點上處於活動狀態!以下是確認APO是否正常工作的方法。首先,確保為您的WordPress站點的域啟用了Cloudflare的DNS選項卡中的橙色雲。如果未啟用橙色雲,Cloudflare將不會為您的域代理流量——這意味著APO將無法正常工作。
確認Cloudflare橙色雲已啟用
如何使用瀏覽器檢查器檢查Cloudflare APO快取狀態
接下來,您可以使用Web瀏覽器的內建檢查器檢查對您網站的請求的HTTP標頭。我們將在下面的示例中使用Google Chrome。首先,在隱身模式下啟動一個新的瀏覽器視窗。
在Google Chrome中啟動一個新的隱身視窗
接下來,轉到您的WordPress站點,右鍵單擊該頁面,然後選擇“Inspect”以開啟瀏覽器檢查器。您還可以通過轉到Chrome更多按鈕選單欄中的更多工具 > 開發者工具來訪問檢查器。單擊對您的域的請求(下例中的brianwp.com)。在子選單中,單擊“Headers”以顯示HTTP響應標頭。
使用瀏覽器檢查器檢查Cloudflare快取狀態
啟用APO後,您應該會看到一些與APO相關的標頭。
cf-apo-via
指示從何處提供請求。此標頭有幾個可能的值——“origin, no-cache”、“origin, bypass”和“cache”。如果您看到此標頭的“origin, no-cache”值,則表示源伺服器已向Cloudflare傳送了“Cache-Control: no-cache”標頭。“origin, bypass” 值表示Cloudflare的HTML快取被繞過,請求是從源端提供的。最後,“cache”值表示請求是從Cloudflare的快取中提供的。cf-cache-status
指示頁面是否從Cloudflare的CDN提供。重新整理頁面幾次後,您應該會看到“HIT”狀態。如果您的cf-cache-status
標頭在幾次重新整理後顯示“DYNAMIC”,則可能是由於配置錯誤或與cookie相關的不相容而繞過了APO。cf-edge-cache
根據來自您的原始伺服器的快取指令指示頁面的快取相容性。此標頭有兩個可能的值——“no-cache”和“cache, platform=wordpress”。當使用Cloudflare WordPress外掛正確配置APO時,此標頭將為不應快取的頁面返回“no-cache”,為可快取的頁面返回“cache, platform=wordpress”。age
表示頁面在Cloudflare的CDN中快取的秒數。
如果您在檢查WordPress站點時看到上面的標頭,則表示APO已全部設定。現在,繼續進行速度測試,看看您的網站有多快!
如何使用curl檢查Cloudflare APO快取狀態
您還可以在終端中使用下面的curl命令確認Cloudflare APO是否正常工作。請注意,該命令傳遞了一個“Accept: text/html”標頭。這是檢查APO快取狀態時所必需的。
curl --request GET -I -H "Accept: text/html" https://www.website.com
執行命令後,您應該會看到如下所示的響應標頭列表。如您所見,cf-cache-status
、cf-apo-via
、cf-edge-cache
和age
標頭顯示請求由Cloudflare的快取提供服務。
使用curl檢查Cloudflare APO快取狀態
不使用Cloudflare外掛的APO自動平臺優化
Cloudflare建議將自動平臺優化與官方Cloudflare WordPress外掛一起使用。這也是我們建議的方法,因為它可以確保您從APO中獲得最大的效能優勢。如果您的網站與Cloudflare WordPress外掛不相容,我們建議您與開發人員合作以使您的網站相容。
如果您真的無法安裝Cloudflare外掛,則可以在沒有外掛的情況下使用APO。如果您選擇這條路線,您仍然可以利用一些效能優化,但有幾個重要的限制需要注意。
帶有WordPress外掛的Cloudflare APO
安裝Cloudflare WordPress外掛後,自動平臺優化提供以下HTML邊緣快取功能。
- 具有30天TTL的HTML邊緣快取。
- 文章釋出或更新後30秒內快取失效。
- 為登入使用者繞過HTML快取。
- 繞過某些cookie(如WooCommerce)的HTML快取。
- 如果可以從Cloudflare的CDN提供頁面,則跳過對源伺服器的請求。這減少了源伺服器上的負載。
沒有WordPress外掛的Cloudflare APO
如果未安裝Cloudflare WordPress外掛,您可能會看到以下APO HTML邊緣快取功能。
- 具有30天TTL的HTML邊緣快取。
- 快取在30分鐘內失效(而不是30秒)。
- 繞過某些cookie(如WooCommerce)的HTML快取。
- 為了提供正確的快取失效邏輯,仍然需要向源伺服器發出請求。
如您所見,將自動平臺優化與官方Cloudflare WordPress外掛一起使用有幾個優點。
小結
WordPress的Cloudflare自動平臺優化無疑是近期歷史上提升WordPress效能的最重要服務。它超越了通常的Web伺服器優化、伺服器端頁面快取和CSS/JS縮小策略,並呈現了一些全新的東西。
自成立以來,WordPress一直受到以下事實的限制:在CDN上快取HTML頁面沒有一種簡化且簡單的方法。通過利用其由150多個資料中心、Workers和Workers KV組成的網路,Cloudflare在WordPress站點和採用尖端框架設計的靜態站點之間拉平了效能競爭環境。
這是一項不小的壯舉,我們期待看到Cloudflare在未來如何將其自動平臺優化功能擴充套件到其他CMS平臺。
評論留言