Google Pagespeed me dice que aproveche el almacenamiento en caché del navegador cuando el almacenamiento en caché ya está habilitado

8

Google Pagespeed Insights todavía me dice que tengo que habilitar el almacenamiento en caché del navegador, pero no entiendo lo que me falta. Estoy usando cloudflare con optimizaciones habilitadas. Veo este encabezado HTTP en las herramientas de desarrolladores de Chrome:

control de caché: público, max-age = 86400

¡así que el almacenamiento en caché ya parece estar habilitado! También agregué

<staticContent>
    <clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="1.00:00:00" />
</staticContent>

en mi archivo web.config.

No sé que más hacer. Aquí está el error que Google me da:

ingrese la descripción de la imagen aquí

euge9522
fuente
2
Debe pasar ~ 8 días para que caduque para aprobar esa regla.
dhaupin

Respuestas:

6

24 horas es demasiado poco para ser suficiente como control de caché :) En teoría, las imágenes nunca cambian sin que su nombre también cambie, por lo que puede configurarlo fácilmente en un año (o un mes si se siente más cómodo con eso).

Si reemplaza una imagen con una nueva imagen, tiene un nuevo nombre. picture-of-cat-on-18th-birthday.jpgDe repente, no habrá otra imagen con el mismo nombre de archivo. Por esta razón, los nombres de archivo deben ser algo específicos para su contenido.

Para otros tipos de recursos como CSS y JS, es posible que desee optar por una táctica diferente. Tiene (a menudo) cambios de archivos, y nunca / apenas cambia, desea dividir la longitud de almacenamiento en caché de ellos:

  • nunca cambia -> caché muy larga
  • cambiando -> caché bajo

Esto no es factible. Puede hacer ambos o ninguno, .htaccess ve un tipo de archivo.
Debido a esto, lo configura en el caché largo y usa un postfix para forzar una nueva descarga si cambia:

<script src="static.js" />  
<script src="changing.js?last_update=150422" />

De esta forma, el usuario solo tiene que volver a descargarlo si realmente ha realizado un cambio.
Esta técnica funciona en todos los recursos. Siempre apunte a la mayor duración del almacenamiento en caché.

Martijn
fuente
¡gracias! resuelve el problema. Sí, fue demasiado corto, puso todo a 8 días para que ya no me diera el mensaje. problema es los widgets! cosas como purechat y kudobuzz, plugin de facebook y google +. están ralentizando mi sitio y no almacenan en caché bien ...
euge9522
connect.facebook.net/en_US/all.js (20 minutos) connect.facebook.net/it_IT/sdk.js (20 minutos) apis.google.com/js/api.js (30 minutos) oauth.googleusercontent.com … E: rpc: shindig.random: shindig.sha1.js? C = 2 (60 minutos) google-analytics.com/analytics.js (2 horas)
euge9522
Puede establecer una gran memoria caché en archivos CSS y JS siempre que consulte la marca de tiempo de la cadena de tiempo src ... que puede hacer dinámicamente filemtime(). Luego, si se modifica el archivo, se creará una nueva uri, lo que obligará a la readquisición del activo sin borrar cachés y otras cosas. Puede hacer lo mismo con imágenes o lo que sea. Y creo que a Google le gusta el tiempo de caché de algo como 8 días mínimo para pasar la velocidad de página.
dhaupin
4

Veo que la respuesta anterior dice que 24 horas no son suficientes. Pero mirando el documento de Google: https://developers.google.com/web/fundamentals/performance/optimizing-content-efficiency/http-caching#defining-optimal-cache-control-policy dice que las imágenes se almacenarán en caché 1 día para un almacenamiento en caché óptimo.

El almacenamiento en caché de imágenes por poco tiempo tiene sentido, porque para mejorar el SEO, es mejor no tomar huellas digitales de las imágenes. Por lo tanto, es una buena compensación si desea cambiar la imagen.

Además, después de 24 horas, las imágenes se volverán a cargar (cuando establezca el control de caché en 1 día), usará la etiqueta electrónica y comparará las imágenes haciendo un recorrido de ida y vuelta del servidor.

Entonces, la pregunta sigue siendo por qué la herramienta de comprensión de la velocidad de página no respeta la recomendación de Google.

Samuel
fuente