我們在以前的文章中探討過如何加快你的WordPress網站的速度,并研究過各種形式的緩存。
然而,像那些使用WooCommerce的動態電子商務網站,在讓緩存正常工作方面往往會面臨重大挑戰。
在本指南中,我們將告訴你如何為WooCommerce設置任何WordPress緩存插件,如果出了問題該怎么辦,以及如何測試你的修改是否有效。
什么是緩存?
簡單地說,緩存就是將網站 “保存 “起來,使最終用戶能夠比每次加載網站的所有方面更快。
緩存網站的資產已經被加載,因此比起網站每次被請求時都要加載和 “建立 “頁面,可以更快得到服務。
緩存是如何影響WooCommerce的?
像WP Rocket這樣的緩存插件,默認情況下是不會對登錄用戶進行緩存的,但如果你對登錄用戶進行了緩存,而你的網站又沒有進行必要的設置,會發生什么情況?
你是否遇到過這樣的情況?
- 顧客看到其他顧客的賬戶信息?
- 顧客在他們的購物車里有神秘物品,但他們發誓他們沒有添加?
- 顧客抱怨在結賬時看到別人的地址?
那么你對WooCommerce的緩存設置就不正確了! 別擔心,我們稍后會討論如何解決這個問題。
但了解其中的隱患是非常重要的。
- 客戶失去信任。
- 潛在的數據保護問題
作為一個店主,你有責任確保你的商店是安全的,并遵循所有的法律規定。
為什么需要明確配置WooCommerce的緩存?
當您在網站上緩存內容時,它就不再是動態的了,內容被保存下來,然后每次都以相同的方式提供給您的訪問者。這意味著如果你緩存了你的結賬頁面,它永遠不會向客戶展示他們正確的購物車。
WooCommerce是動態的,您需要確保動態頁面被排除在緩沖區之外。
如何設置WooCommerce的緩存?
如果你使用的是W3 Total Cache、WP Super Cache或WP Fastest Cache等流行的緩存插件,你需要做以下工作:
Step 1: 從你的緩存插件中排除WooCommerce頁面
在大多數WooCommerce緩存插件中,排除頁面是相當直接的,只需進入緩存插件設置,尋找排除選項,并將以下頁面設置為排除:
- 購物車
- 付款頁面
- 我的賬戶
- 產品
以上是WooCommerce提供的主要動態頁面,其內容會根據誰在看這個頁面而改變。
如果您使用的是WP Rocket,好消息!您不需要做什么(WP Rocket默認不包括所有WooCommerce頁面)!不需要做什么(WP Rocket默認排除了所有WooCommerce頁面)。
此外,從WooCommerce 1.4.2開始,WooCommerce設置了DONOTCACHEPAGE常量,這意味著從技術上講,你不需要將這些頁面從你的緩存方案中排除。
但是,如果你的緩存插件不支持DONOTCACHEPAGE常量,那么你仍然需要將其排除在外。大多數緩存插件都特別提到WooCommerce的兼容性,如果它們有的話。
如果你有客戶重設密碼和登錄的問題,可以嘗試從你的緩存插件中排除my-account.php。
Step 2: 將WooCommerce會話排除在緩存之外
這個具體步驟取決于你使用的緩存插件,大多數緩存插件不包括數據庫緩存。然而,有些則有,在這些插件中,你需要將”wc_session”排除在緩存之外。
在W3 Total Cache中,這是自動完成的,可以通過你的wp-admin > Performance > Database Cache找到:
Step 3: 將WooCommerce Cookies排除在緩存之外
你是否有過這樣的經歷:你在購物車中添加了一些物品來測試緩存,你清空了購物車,刷新頁面,砰!你的物品還在購物車中?
這不僅讓你的訪客感到擔心和困惑,而且還會導致對你的網站的不信任,最終,潛在的客戶不會再回來。
幸運的是,有一個簡單的方法可以通過排除WooCommerce cookies的緩存來解決這個問題。
目前,有四個WooCommerce cookies應該從緩存中排除,它們是:
- woocommerce_cart_hash — 處理決定購物車何時更新或被刷新的幫助器。必須從緩存中排除,以確保購物車反映正確的項目。
- woocommerce_items_in_cart — 另一個幫助器,幫助WooCommerce確定購物車中的正確數據。必須從緩存中排除,以確保購物車反映正確的項目。
- wp_woocommerce_session — 這個cookie包含了訪客的唯一代碼,分配給每個客戶,它幫助WooCommerce在數據庫中為每個客戶找到購物車數據。再次強調,你必須將此排除在你的購物車之外。
- woocommerce_recently_viewed — 最近瀏覽的小工具,同樣,你必須從緩存中排除這個cookies,以確保最近瀏覽的小工具對每個訪客都能正確顯示。
有興趣了解更多關于cookie以及它們在WooCommerce中的使用方法嗎?請查看官方指南。
Step 4: 要不要最小化?這是個問題
WooCommerce自己建議不要對JavaScript進行最小化。然而,如果不進行最小化,你將失去潛在的性能改進。
相反,我們建議仍然對JavaScript進行最小化,但在最小化過程中不包括WooCommerce的腳本。
WP Rocket有一個很好的指南,告訴你如何找到正確的腳本來排除掉最小化。
Step 5: 如何測試WooCommerce商店存后是否正常工作
一旦你對你的緩存配置感到滿意,現在是時候測試你的WooCommerce商店是否還能正常工作了,但是你如何做到這一點?
你需要做以下工作:
- 測試你的產品頁面是否加載并顯示正確的產品。
- 測試你的分類頁面是否加載并顯示了正確的產品。
- 在你的網站上進行購買,以客人身份登錄。確保結賬正常,付款成功,并且顯示的細節是正確的。
- 在您的網站上以客戶身份登錄后進行購買。確保結賬正常,付款順利,并且顯示的細節是正確的。
- 創建一個優惠券并嘗試在結賬時使用,確保優惠券被應用,購物車中的金額和支付的價格是正確的。
- 嘗試重新設置密碼,確保一切正常。
上述所有的工作?太好了! 那么就沒有其他事情可做了,有問題嗎?進入第6步。
Step 6: 當緩存還是破壞了WooCommerce網站時該怎么辦?
最重要的部分是不要驚慌! 當你的網站出現故障時,這可能很可怕,但不要擔心。任何問題都有可能解決。
首先,如果你已經啟用了最小化和合并文件(在一些插件中,這被稱為串聯)。禁用這些選項,清除你的瀏覽器緩存,然后在一個隱身瀏覽器會話中嘗試你的網站。
現在一切正常了嗎?試著在不合并文件的情況下啟用最小化,并再次測試你的網站;如果它再次中斷,你知道合并文件會破壞你的網站,如果它仍然不工作。你已經按照我們在這篇文章中的建議做了,現在可能是時候找一個開發人員了。
如果你確實需要專家的幫助,可以嘗試找我們(當然是付費的,而且不便宜)。
哪些緩存插件對WooCommerce效果最好?
根據我們的經驗,WooCommerce最好的緩存插件是WP Rocket;它開箱即用,不需要額外配置。如果因為任何原因,你確實遇到了麻煩,他們有一支一流的緩存支持專家團隊等著幫助你。
如果你正在尋找一個免費的替代品,在我們自己的測試中,WP Fastest Cache和W3 Total Cache都被證明是很好的免費替代品,在最小的設置麻煩下運行良好。
小結
設置帶緩存的WooCommerce不一定很復雜。希望這篇指南對你有所幫助!