如果您使用 GTmetrix 或 Kingdom 测试您网站的性能,您可能会遇到“指定的缓存验证器”错误。此消息表示您没有充分利用浏览器缓存。不幸的是,这会对您网站的性能产生负面影响。

在本文中,我们将讨论“指定缓存验证器”错误的含义。我们还将向您展示如何在 WordPress 中修复它并优化您网站的性能。开始吧!

“指定缓存验证器”是什么意思?

通过启用缓存,您可以指示访问者的浏览器或“客户端”在访问您的网站时将关键文件存储在本地。这样,用户无需在每次打开您的页面时重新加载整个网站及其资源。

缓存是网站上非常普遍的做法。这也是提高网站性能最有效的方法之一。但是,正确的实现需要缓存“策略”。

此策略意味着包括提供明确说明的缓存标头:

  • 如何验证缓存的资源
  • 客户端客户端应缓存哪些资源
  • 客户端应该将资源缓存多长时间
  • 客户端应该如何查找缓存资源的变化

“指定缓存验证器”错误意味着您的站点在其响应中没有适当的缓存标头。缺少说明并不意味着缓存不起作用。但是,它不会像它那样有效地工作:

如果您在分析 WordPress 网站的性能时遇到此错误,则意味着您的网站可能无法尽快加载。但是,您可以通过使用适当的缓存标头来解决此问题。

如何在 WordPress 上指定缓存验证器(3 种方式)

您可以在网站的标头中实现多种类型的缓存验证器。服务器在某些情况下会自动添加它们,例如使用最后修改或电子标签验证器。

如果您遇到“指定缓存验证器”错误,最有可能的罪魁祸首是缺少缓存控制或过期标头。让我们来看看如何将它们全部添加到 WordPress。

1.手动添加缓存控制标头

缓存控制标头使您能够以秒为单位指定缓存的持续时间或“长度”。您还可以使用这些标头来指示该长度适用于哪些文件类型。标头本身的结构将根据您使用的 Web 服务器软件而有所不同。

对于Apache 服务器,您需要编辑.htacess 文件。您可以在 WordPress 根文件夹中找到它。但是,我们建议通过文件传输协议 (FTP) 访问它。

打开 .htaccess 文件并添加以下代码片段,然后对其进行自定义:

header set Cache-Control “max-age=604800, public”

这段代码表示缓存长度。根据要缓存的元素,您可以添加或删除文件类型。

如果你使用的是NGINX,你需要修改服务器的主配置文件。您可以在 /etc/nginx 目录中找到它。

打开文件,添加如下代码:

Location ~* .(jpg|jpeg|png|gif|js|css)$ { add_header Cache-Control “public ”; }

保存对文件的更改并关闭它。我们还建议在再次测试您网站的性能之前添加一个过期标头。

2.手动添加过期标头

过期标头是一些过时的缓存验证器类型。事实上,缓存控制标头现在取代了它们。大多数现代浏览器会首先查找缓存控制标头,但您可以指定两个验证器来覆盖您的基础。

手动添加过期标头的工作方式类似于 Apache 和 NGINX 中的缓存控制条目。要在 Apache 中添加过期标头,您需要编辑 .htaccess 文件。

这里是您可以复制的标头示例,我们建议将其添加到文件底部以避免冲突:

## EXPIRES HEADER CACHING ## ExpiresActive On ExpiresByType image/jpg “访问 1 年” ExpiresByType image/jpeg “访问 1 年” ExpiresByType image/gif “访问 1 年” ExpiresByType image/png “访问 1 年” ExpiresByType text/css “访问 1 个月” ExpiresDefault “access 7 days” ## EXPIRES HEADER CACHING ##

Expires header 指示每个文件类型的特定到期日期。如果您没有为文件类型指定日期,它将使用 ExpiresDefault 值。

对于 NGINX 服务器,您需要修改主配置文件。这就是 NGINX 中过期标头的样子:

Location ~* .(png |jpg|jpeg|gif)$ { 7d expires; add_header cache-control "public"; }

将更改保存到您正在处理的任何文件中,仅此而已。再次测试您网站的性能以查看如果“缓存验证器 spe cified”错误仍然存​​在。

3.使用 WordPress 缓存插件

最后,您可以考虑使用插件来指定缓存验证器。一些最流行的 WordPress 缓存插件允许您为您的站点配置过期和缓存控制标头,而无需触及一行代码。

使用缓存插件的缺点是许多网络主机不允许使用它们。事实上,许多托管网络主机通常不会让您使用缓存插件,因为它们会为用户手动配置缓存以获得最佳性能。

大多数缓存插件会自动将您的站点配置为使用 ETag 或 Last-Modified 标头。如果他们不这样做,您可以默认使用缓存控制和过期验证器。

例如,W3 Total Cache 让您可以完全控制可以使用的缓存标头类型:

如果您的网络托管服务商允许您使用缓存插件,我们建议您探索多种选择,看看您更喜欢哪一种。或者,您可以手动指定一个缓存验证器(这并不难!)。

结论

缓存是减少用户加载时间的最有效方法之一。重复访问者将受益于良好的缓存策略,因为本地存储的文件将缩短加载时间。但是,如果您不配置特定的缓存策略,您将无法获得最佳的网站性能。

如果您的服务器默认情况下不执行此操作(这相对常见),则有几种方法可以在 WordPress 中指定缓存验证器。根据您的主机和站点需要,手动添加缓存控制标头、手动添加过期标头或使用缓存插件将解决您的问题。如果这些都不是,是时候联系房东支持以获得进一步的帮助了。

您对如何在 WordPress 中指定缓存验证器有任何疑问吗?让我们在下面的评论部分讨论它们!

精选图片来自 apghedia/shutterstock.com

查看源代码