Google Pagespeed 的缓存生命周期 "Best Practice"
Caching Lifetime "Best Practice" for Google Pagespeed
我目前在提高客户网站的页面速度时遇到了一些问题。 Google 说:有几个资源不符合完美的缓存寿命。他们没有为此提供任何最佳实践,那么哪个值最适合哪个资源?
目前这是我的 htaccess 部分:
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType text/css "access 1 month"
ExpiresByType text/html "access 1 month"
ExpiresByType image/gif "access 1 year"
ExpiresByType image/png "access 1 year"
ExpiresByType image/jpg "access 1 year"
ExpiresByType image/jpeg "access 1 year"
ExpiresByType image/x-icon "access 1 year"
ExpiresByType image/svg+xml "access plus 1 month"
ExpiresByType audio/ogg "access plus 1 year"
ExpiresByType video/mp4 "access plus 1 year"
ExpiresByType video/ogg "access plus 1 year"
ExpiresByType video/webm "access plus 1 year"
ExpiresByType application/atom+xml "access plus 1 hour"
ExpiresByType application/rss+xml "access plus 1 hour"
ExpiresByType application/pdf "access 1 month"
ExpiresByType application/javascript "access 1 month"
ExpiresByType text/x-javascript "access 1 month"
ExpiresByType text/x-component "access plus 1 month"
ExpiresByType application/x-shockwave-flash "access 1 month"
ExpiresByType font/opentype "access plus 1 month"
ExpiresByType application/vnd.ms-fontobject "access plus 1 month"
ExpiresByType application/x-font-ttf "access plus 1 month"
ExpiresByType application/font-woff "access plus 1 month"
ExpiresByType application/font-woff2 "access plus 1 month"
ExpiresDefault "access 1 month"
</IfModule>
Google 说:更好,但还不够好。那么,有没有人可以为我提供一些关于完美资源缓存时间的信息或最佳实践?非常感谢。
Google 建议静态资产为 1 年。
We recommend a minimum cache time of one week and preferably up to
one year for static assets, or assets that change infrequently. If
you need precise control over when resources are invalidated we
recommend using a URL fingerprinting or versioning technique...
Source: https://developers.google.com/speed/docs/insights/LeverageBrowserCaching
如前所述,您需要确保实施缓存清除技术,以确保您不会无意中提供旧的 CSS 等
它是按非线性比例计算的(即 6 个月不是 3 个月的两倍)所以不可能给出确切的天数,但是 6 个月对于所有资产都会过去,而所有资产除了 CSS 在 1 年和 CSS 在 1 周可能不会。
如果您将 CSS 和 JS 缓存时间更改为 1 年,我想这个诊断将不会显示。
请始终牢记这些是建议和最佳做法,您必须采取最适合您网站的方式,以确保您设置的任何缓存长度都适合您的用例。
我目前在提高客户网站的页面速度时遇到了一些问题。 Google 说:有几个资源不符合完美的缓存寿命。他们没有为此提供任何最佳实践,那么哪个值最适合哪个资源?
目前这是我的 htaccess 部分:
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType text/css "access 1 month"
ExpiresByType text/html "access 1 month"
ExpiresByType image/gif "access 1 year"
ExpiresByType image/png "access 1 year"
ExpiresByType image/jpg "access 1 year"
ExpiresByType image/jpeg "access 1 year"
ExpiresByType image/x-icon "access 1 year"
ExpiresByType image/svg+xml "access plus 1 month"
ExpiresByType audio/ogg "access plus 1 year"
ExpiresByType video/mp4 "access plus 1 year"
ExpiresByType video/ogg "access plus 1 year"
ExpiresByType video/webm "access plus 1 year"
ExpiresByType application/atom+xml "access plus 1 hour"
ExpiresByType application/rss+xml "access plus 1 hour"
ExpiresByType application/pdf "access 1 month"
ExpiresByType application/javascript "access 1 month"
ExpiresByType text/x-javascript "access 1 month"
ExpiresByType text/x-component "access plus 1 month"
ExpiresByType application/x-shockwave-flash "access 1 month"
ExpiresByType font/opentype "access plus 1 month"
ExpiresByType application/vnd.ms-fontobject "access plus 1 month"
ExpiresByType application/x-font-ttf "access plus 1 month"
ExpiresByType application/font-woff "access plus 1 month"
ExpiresByType application/font-woff2 "access plus 1 month"
ExpiresDefault "access 1 month"
</IfModule>
Google 说:更好,但还不够好。那么,有没有人可以为我提供一些关于完美资源缓存时间的信息或最佳实践?非常感谢。
Google 建议静态资产为 1 年。
We recommend a minimum cache time of one week and preferably up to one year for static assets, or assets that change infrequently. If you need precise control over when resources are invalidated we recommend using a URL fingerprinting or versioning technique...
Source: https://developers.google.com/speed/docs/insights/LeverageBrowserCaching
如前所述,您需要确保实施缓存清除技术,以确保您不会无意中提供旧的 CSS 等
它是按非线性比例计算的(即 6 个月不是 3 个月的两倍)所以不可能给出确切的天数,但是 6 个月对于所有资产都会过去,而所有资产除了 CSS 在 1 年和 CSS 在 1 周可能不会。
如果您将 CSS 和 JS 缓存时间更改为 1 年,我想这个诊断将不会显示。
请始终牢记这些是建议和最佳做法,您必须采取最适合您网站的方式,以确保您设置的任何缓存长度都适合您的用例。