WooCommerce缓存教程 – 如何防止缓存破坏你的WooCommerce网站?

如何防止缓存破坏你的WooCommerce网站?

我们在以前的文章中探讨过如何加快你的WordPress网站的速度,并研究过各种形式的缓存。

然而,像那些使用WooCommerce的动态电子商务网站,在让缓存正常工作方面往往会面临重大挑战。

在本指南中,我们将告诉你如何为WooCommerce设置任何WordPress缓存插件,如果出了问题该怎么办,以及如何测试你的修改是否有效。

  1. 什么是缓存?
  2. 缓存是如何影响WooCommerce的?
  3. 为什么需要明确配置WooCommerce的缓存?
  4. 如何设置WooCommerce的缓存?
  5. 哪些缓存插件对WooCommerce效果最好?
  6. 小结

什么是缓存?

简单地说,缓存就是将网站 “保存 “起来,使最终用户能够比每次加载网站的所有方面更快。

缓存网站的资产已经被加载,因此比起网站每次被请求时都要加载和 “建立 “页面,可以更快得到服务。

缓存是如何影响WooCommerce的?

WP Rocket这样的缓存插件,默认情况下是不会对登录用户进行缓存的,但如果你对登录用户进行了缓存,而你的网站又没有进行必要的设置,会发生什么情况?

你是否遇到过这样的情况?

  • 顾客看到其他顾客的账户信息?
  • 顾客在他们的购物车里有神秘物品,但他们发誓他们没有添加?
  • 顾客抱怨在结账时看到别人的地址?

那么你对WooCommerce的缓存设置就不正确了! 别担心,我们稍后会讨论如何解决这个问题。

但了解其中的隐患是非常重要的。

  • 客户失去信任。
    潜在的数据保护问题

作为一个店主,你有责任确保你的商店是安全的,并遵循所有的法律规定。

为什么需要明确配置WooCommerce的缓存?

当您在网站上缓存内容时,它就不再是动态的了,内容被保存下来,然后每次都以相同的方式提供给您的访问者。这意味着如果你缓存了你的结账页面,它永远不会向客户展示他们正确的购物车。

WooCommerce是动态的,您需要确保动态页面被排除在缓冲区之外。

如何设置WooCommerce的缓存?

如果你使用的是W3 Total CacheWP Super CacheWP 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找到:

W3 Total 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不一定很复杂。希望这篇指南对你有所帮助!还有什么其他的提示我们没有包括在这里吗?请在下面的评论中告诉我们。

评论留言