Rubén, parte de este equipo de trabajo, nos ha hecho el favor de redactar esta reseña ya que conoce a la perfección este tema.
Solución:
La forma más fácil de agregar estos encabezados es un .htaccess
archivo que agrega alguna configuración a su servidor. Si los activos están alojados en un servidor que no controla, no hay nada que pueda hacer al respecto.
Tenga en cuenta que algunos proveedores de alojamiento no le permitirán utilizar .htaccess
archivos, así que verifique sus términos si no parece funcionar.
El proyecto HTML5Boilerplate tiene una excelente .htaccess
archivo que cubre los ajustes necesarios. Vea la parte relevante del archivo en su repositorio de Github
Estas son las partes importantes
# ----------------------------------------------------------------------
# Expires headers (for better cache control)
# ----------------------------------------------------------------------
# These are pretty far-future expires headers.
# They assume you control versioning with filename-based cache busting
# Additionally, consider that outdated proxies may miscache
# www.stevesouders.com/blog/2008/08/23/revving-filenames-dont-use-querystring/
# If you don't use filenames to version, lower the CSS and JS to something like
# "access plus 1 week".
ExpiresActive on
# Your document html
ExpiresByType text/html "access plus 0 seconds"
# Media: images, video, audio
ExpiresByType audio/ogg "access plus 1 month"
ExpiresByType image/gif "access plus 1 month"
ExpiresByType image/jpeg "access plus 1 month"
ExpiresByType image/png "access plus 1 month"
ExpiresByType video/mp4 "access plus 1 month"
ExpiresByType video/ogg "access plus 1 month"
ExpiresByType video/webm "access plus 1 month"
# CSS and JavaScript
ExpiresByType application/javascript "access plus 1 year"
ExpiresByType text/css "access plus 1 year"
Han documentado lo que hace ese archivo, lo más importante es que debe cambiar el nombre de sus archivos CSS y Javascript cada vez que cambien, porque los navegadores de sus visitantes no los volverán a revisar durante un año, una vez que se almacenan en caché.
prueba esta solución y me funciona bien
## EXPIRES CACHING ##
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"
ExpiresByType text/html "access 1 month"
ExpiresByType application/pdf "access 1 month"
ExpiresByType text/x-javascript "access 1 month"
ExpiresByType text/css "access plus 1 year"
ExpiresByType application/x-shockwave-flash "access 1 month"
ExpiresByType image/x-icon "access 1 year"
ExpiresDefault "access 1 month"
Header append Vary: Accept-Encoding
mod_gzip_on Yes
mod_gzip_dechunk Yes
mod_gzip_item_include file .(html?|txt|css|js|php|pl)$
mod_gzip_item_include handler ^cgi-script$
mod_gzip_item_include mime ^text/.*
mod_gzip_item_include mime ^application/x-javascript.*
mod_gzip_item_exclude mime ^image/.*
mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*
SetOutputFilter DEFLATE
AddOutputFilterByType DEFLATE text/html text/css text/plain text/xml text/x-js text/js
## EXPIRES CACHING ##
Puede agregarlos en su archivo htaccess o configuración de vhost.
Ver aquí: http://httpd.apache.org/docs/2.2/mod/mod_expires.html
Pero a menos que usted sea el propietario de esos dominios… están bajo su control.
Comentarios y puntuaciones del post
No se te olvide mostrar este tutorial si te ayudó.