Idealmente para mejorar la velocidad de la web, se puede permitir que el navegador no se descargue todos los ficheros cada vez y que ni siquiera consulte al servidor, si existe una nueva versión, en realidad, cambiaremos el nombre del fichero cuando haya una actualización de versión.
Para poder utilizar la configuración Expires hay que ‘unset’ los ETags, simplemente añadiendo el siguiente fragmento en el .htaccess que se suele encontrar en el directorio raíz(compatible con Apache y Litespeed web servers), añadiendo:
Header unset Pragma FileETag None Header unset ETag
Y un ejemplo de configuración de Expires, para insertar en el mismo .htaccess:
<IfModule mod_expires.c>
ExpiresActive on
# Perhaps better to whitelist expires rules? Perhaps.
ExpiresDefault "access plus 2 months"
# cache.appcache needs re-requests in FF 3.6 (thx Remy ~Introducing HTML5)
ExpiresByType text/cache-manifest "access plus 0 seconds"
# your document html
ExpiresByType text/html "access plus 0 seconds"
# data
ExpiresByType text/xml "access plus 0 seconds"
ExpiresByType application/xml "access plus 0 seconds"
ExpiresByType application/json "access plus 0 seconds"
# rss feed
ExpiresByType application/rss+xml "access plus 1 hour"
# favicon (cannot be renamed)
ExpiresByType image/x-icon "access plus 1 week"
# media: images, video, audio
ExpiresByType image/gif "access plus 2 months"
ExpiresByType image/png "access plus 2 months"
ExpiresByType image/jpg "access plus 2 months"
ExpiresByType image/jpeg "access plus 2 months"
ExpiresByType video/ogg "access plus 2 months"
ExpiresByType audio/ogg "access plus 2 months"
ExpiresByType video/mp4 "access plus 2 months"
ExpiresByType video/webm "access plus 2 months"
# htc files (css3pie)
ExpiresByType text/x-component "access plus 2 months"
# webfonts
ExpiresByType font/truetype "access plus 2 months"
ExpiresByType font/opentype "access plus 2 months"
ExpiresByType application/x-font-woff "access plus 2 months"
ExpiresByType image/svg+xml "access plus 2 months
ExpiresByType application/vnd.ms-fontobject "access plus 2 months"
# css and javascript
ExpiresByType text/css "access plus 2 months"
ExpiresByType application/javascript "access plus 2 months"
ExpiresByType text/javascript "access plus 2 months"
<IfModule mod_headers.c>
Header append Cache-Control "public"
</IfModule>
</IfModule>
Nota: Si al configurar la opción aparece en la página el siguiente error:
Internal Server Error The server encountered an internal error or misconfiguration and was unable to complete your request. Please contact the server administrator, admin@localhost and inform them of the time the error occurred, and anything you might have done that may have caused the error. More information about this error may be available in the server error log.
Y en el log hay referencia al .htaccess, esto es debido a que hay que habilitar el módulo de Apache para la etiqueta Header, mod_headers:
sudo a2enmod headers
Después reiniciar Apache
service apache2 restart
Te podría interesar
-
Qué es una PWA y cómo funciona (explicado en cristiano)
Las siglas PWA (Progressive Web App) suenan a tecnología complicada, y muchos artículos no ayudan: te sueltan un párrafo lleno de jerga y te quedas...
-
Cómo coordino reuniones entre zonas horarias sin liarme (y la calculadora que uso)
Si trabajas con gente en otros países, conoces el baile: “¿las 3 de la tarde tuyas o las mías?”, “espera, ¿ahí ya habéis cambiado la...
-
Seguridad desde el Diseño: El doble filo de los frameworks minimalistas
Cuando hablamos de Seguridad desde el Diseño (Security by Design), nos referimos a la práctica fundamental de integrar la seguridad en la arquitectura de nuestra...
-
Factura Electrónica y VeriFactu en España: La Guía Definitiva (2026)
Si gestionas un negocio o eres autónomo en España, llevas años oyendo hablar de la Ley Crea y Crece y la temida “Factura Electrónica Obligatoria”....
-
El laberinto de las redirecciones en Cloudflare Pages y Jekyll: Solución definitiva
Al migrar un blog a Cloudflare Pages con un generador de sitios estáticos como Jekyll, uno de los primeros retos técnicos es la gestión de...