我们在以前的文章中探讨过如何加快你的WordPress网站的速度,并研究过各种形式的缓存。
然而,像那些使用WooCommerce的动态电子商务网站,在让缓存正常工作方面往往会面临重大挑战。
在本指南中,我们将告诉你如何为WooCommerce设置任何WordPress缓存插件,如果出了问题该怎么办,以及如何测试你的修改是否有效。
- 什么是缓存?
- 缓存是如何影响WooCommerce的?
- 为什么需要明确配置WooCommerce的缓存?
- 如何设置WooCommerce的缓存?
- 哪些缓存插件对WooCommerce效果最好?
- 小结
什么是缓存?
简单地说,缓存就是将网站 “保存 “起来,使最终用户能够比每次加载网站的所有方面更快。
缓存网站的资产已经被加载,因此比起网站每次被请求时都要加载和 “建立 “页面,可以更快得到服务。
缓存是如何影响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不一定很复杂。希望这篇指南对你有所帮助!还有什么其他的提示我们没有包括在这里吗?请在下面的评论中告诉我们。