如何修復“指定緩存驗證器”錯誤
已發表: 2022-06-11如果您使用 GTmetrix 或 Pingdom 測試網站的性能,您可能會遇到“指定緩存驗證器”的錯誤。 該消息意味著您沒有充分利用瀏覽器緩存。 不幸的是,這會對您網站的性能產生負面影響。
在本文中,我們將討論“指定緩存驗證器”錯誤的含義。 我們還將向您展示如何在 WordPress 中修復它並優化您網站的性能。 讓我們開始吧!
“指定緩存驗證器”是什麼意思?
通過啟用緩存,您可以指示訪問者的瀏覽器或“客戶端”在訪問您的網站時將關鍵文件存儲在本地。 這樣,用戶每次打開您的頁面時都不需要重新加載整個網站及其資源。
緩存是網站中非常普遍的做法。 這也是提高網站性能的最有效方法之一。 但是,正確的實現需要緩存“策略”。
該策略意味著包括緩存標頭,這些標頭提供有關以下內容的明確說明:
- 如何驗證緩存的資源
- 客戶端應該緩存哪些資源
- 客戶端應該緩存資源多長時間
- 客戶端應如何查找緩存資源的更改
“指定緩存驗證器”錯誤意味著您的網站在其響應中沒有相應的緩存標頭。 缺乏指令並不意味著緩存不起作用。 但是,它不會像它可以那樣有效地工作:
如果您在分析 WordPress 網站的性能時遇到此錯誤,這意味著您的網站可能無法盡快加載。 但是,您可以通過使用適當的緩存標頭來解決此問題。
如何在 WordPress 上指定緩存驗證器(3 種方法)
您可以在網站的標頭中實現幾種類型的緩存驗證器。 在某些情況下,服務器會自動添加它們,例如使用last-modified或ETag驗證器。
如果您遇到“指定緩存驗證器”錯誤,最可能的罪魁禍首是缺少緩存控製或過期標頭。 讓我們介紹如何將它們都添加到 WordPress。
1.手動添加緩存控制頭
緩存控制標頭使您能夠以秒為單位指定緩存的持續時間或“長度”。 您還可以使用這些標題來指示長度適用於哪些文件類型。 標頭本身的結構將根據您使用的 Web 服務器軟件而有所不同。
對於 Apache 服務器,您需要編輯.htacess文件。 您可以在 WordPress根文件夾中找到它。 但是,我們建議通過文件傳輸協議 (FTP) 訪問它。
打開.htaccess 文件並添加以下代碼片段,然後對其進行自定義:
<filesMatch ".(jpg|jpeg|png|gif|js|css)$"> Header set Cache-Control "max-age=604800, public" </filesMatch>
該代碼指示filesMatch標記中文件類型的緩存長度。 根據您要緩存的元素,您可以添加或刪除文件類型。
如果您使用的是 NGINX,則需要修改服務器的主配置文件。 您可以在/etc/nginx目錄中找到它。
打開文件並向其中添加以下代碼:
location ~* \.(jpg|jpeg|png|gif|js|css)$ { add_header Cache-Control "public"; }
保存對文件的更改並關閉它。 我們還建議在再次測試您網站的性能之前添加過期標頭。
2.手動添加過期頭
Expires標頭是一些過時的緩存驗證器類型。 事實上,緩存控制標頭現在取代了它們。 大多數現代瀏覽器會首先查找緩存控制標頭,但您可以指定兩個驗證器來覆蓋您的基礎。
手動添加過期標頭的工作方式類似於 Apache 和 NGINX 中的緩存控制條目。 要在 Apache 中添加過期標頭,您需要編輯.htaccess文件。
這是您可以復制的標頭示例,我們建議將其添加到文件底部以避免衝突:
## EXPIRES HEADER CACHING ## <IfModule mod_expires.c> ExpiresActive On ExpiresByType image/jpg "access 1 year" ExpiresByType image/jpeg "access 1 year" ExpiresByType image/gif "access 1 year" ExpiresByType image/png "access 1 year" ExpiresByType text/css "access 1 month" ExpiresDefault "access 7 days" </IfModule> ## EXPIRES HEADER CACHING ##
Expires標頭指示每種文件類型的特定到期日期。 如果您沒有為文件類型指定日期,它將使用ExpiresDefault值。
對於 NGINX 服務器,您需要修改主配置文件。 這是 NGINX 中過期標頭的樣子:
location ~* \.(png|jpg|jpeg|gif)$ { expires 7d; add_header Cache-Control "public"; }
將更改保存到您正在使用的任何文件中,就是這樣。 再次測試您網站的性能,看看“指定緩存驗證器”錯誤是否仍然存在。
3. 使用 WordPress 緩存插件
最後,您可以考慮使用插件來指定緩存驗證器。 一些最流行的 WordPress 緩存插件使您能夠為您的站點配置過期和緩存控制標頭,而無需接觸任何代碼。
使用緩存插件的缺點是許多網絡主機不允許它們。 事實上,特別是許多託管 Web 主機通常不允許您使用緩存插件,因為它們為用戶手動配置緩存以獲得最佳性能。
大多數緩存插件會自動將您的網站配置為使用ETag或Last-Modified標頭。 如果他們不這樣做,您可以默認使用緩存控制和過期驗證器。
例如,W3 Total Cache 讓您可以完全控制可以使用的緩存頭類型:
如果您的虛擬主機允許您使用緩存插件,我們建議您探索多個選項,看看您覺得哪個更舒服。 或者,您可以手動指定緩存驗證器(這並不難!)。
結論
緩存是減少用戶加載時間的最有效方法之一。 重複訪問者將受益於良好的緩存策略,因為加載時間將隨著本地存儲的文件而改善。 但是,如果您不配置特定的緩存策略,您將無法獲得最佳的網站性能。
如果您的服務器默認不這樣做(這是相對常見的),有幾種方法可以在 WordPress 中指定緩存驗證器。 根據您的主機和站點需求,手動添加緩存控制標頭,手動添加過期標頭或使用緩存插件將解決您的問題。 如果這些都沒有,是時候聯繫房東的支持以獲得更深入的幫助了。
您對如何在 WordPress 中指定緩存驗證器有任何疑問嗎? 讓我們在下面的評論部分中討論它們!
特色圖片來自 apghedia / shutterstock.com