Modificar el contenido del archivo .htaccess es la forma más rápida y eficiente de incrementar la velocidad de carga de la web, y mejorar el Posicionamiento Natural en todos los buscadores.
Este no pretende ser un manual de utilización de htaccess ni mucho menos. Para eso ya hay otras páginas que explican el funcionamiento de este archivo de modo exhaustivo. Simplemente indicaré los códigos que se deben incluir, para que el rendimiento de la página incremente de modo notable, para que mejore la posición en los buscadores. Recordemos, como ya comenté en el artículo "Como mejorar la rapidez de carga de tu web", que Google usa la velocidad de carga como variable para su ranking.
El .htaccess (acrónimo de HyperText Access) es un archivo que se coloca en la raíz de tu web (siempre que uses un servidor Apache), que contiene cierta información acerca del modo de acceder a los archivos. Del gran abanico de posibilidades que nos permite, hoy nos centraremos en las que mejoran la velocidad de carga:
1. Control de caché: Con esto hacemos que las personas que ya han visitado nuestra página y regresen de nuevo a ella, no se bajen de nuevo todos los archivos, sino que utilicen los que ya tienen en caché (guardados en su ordenador). Se debería utilizar en archivos multimedia, scripts, y hojas de estilos. El código es el siguiente:
<FilesMatch "\.(js|css|ico|pdf|flv|jpg|jpeg|png|gif|swf|mp3|mp4)$"> Header set Cache-Control "public" Header set Expires "Thu, 15 Apr 2020 20:00:00 GMT" </FilesMatch>
Con la directiva "FilesMatch" le estamos diciendo a que tipos de archivo (según su extensión) se le debe aplicar el caché. Y con la directiva "Header" le indicamos el Cache-Control como "public" para que permita cachear públicamente el archivo, y el "Expires", que indica la fecha en la que finaliza el caché. Prefiero utilizar el "Expires" antes que el "max-age" porque he visto que no falla en ninguna plataforma, en cambio el "max-age" tiene problemas en algunas versiones de Internet Explorer.
2. Activar la compresión: La idea es simple: Es más rápido comprimir un archivo, enviarlo, y descomprimirlo, que no enviarlo directamente sin comprimir. Aunque el proceso es más complejo, es mucho más rápido, ya que la información comprimida que se envía ocupa mucho menos. El código es el siguiente:
<FilesMatch "\.(js|css|ico|pdf|jpg|jpeg|png|gif|php)$"> SetOutputFilter DEFLATE </FilesMatch>
Una vez más, con la directiva "FilesMatch" le decimos a que archivos se le debe aplicar la compresión, y con la directiva SetOutputFilter le indicamos que debe comprimir los archivos con el mod DEFLATE, que es el más extendido. Si quisiéramos comprimirlo todo, simplemente deberíamos eliminar la directiva "FilesMatch" y dejar únicamente la segunda línea.
3. Desactivar las Etags: Las Etags son una etiqueta o código que se asigna a cada archivo. La idea es que se comprara si la Etag del archivo en el caché del navegador coincide con la del servidor. En caso de ser así, no se descarga el archivo. El problema de las Etags es que se definen con atributos únicos para cada servidor, y muchas veces no coinciden, obligando a descargarse el archivo aunque ya esté en cache. Aquí tenemos el código:
Header unset ETag FileETag None
En este caso no las colocamos en una directiva "FilesMatch", porque queremos que se anulen en todos y cada uno de los tipos de archivos, sean los que sean.
4. Desactivar el Last-Modified: Desactivando las Etags y el LastModified eliminamos totalmente las peticiones de If-None-Match y If-Modified-Since, y nos ahorramos las respuestas 304 Not Modified, por lo que el contenido quedará en Caché hasta que el Expires que le hemos dicho en el punto 1 nos diga que ya está disponible.
<FilesMatch "\.(js|css|ico|pdf|flv|jpg|jpeg|png|gif|swf|mp3|mp4)$"> Header unset Last-Modified </FilesMatch>
Este comando también se puede incluir en el apartado número 1, dentro de la directiva "FilesMatch" para ahorrar unas líneas de código, ya que se trata del mismo tipo de archivos. Es importante no colocar ahí los archivos HTM, HTML y PHP, ya que el contenido que hay en estos es mucho más dinámico, y actualizado de forma más frecuente. Es por eso que solo dejamos Last-Modified.
5. Cuatro en uno: Así pues, el archivo .htaccess definitivo, en cuanto a gestión de la velocidad de carga de una web, simplificando el código al máximo (al menos, el máximo que yo he sido capaz) es el siguiente:
SetOutputFilter DEFLATE Header unset ETag FileETag None <FilesMatch "\.(js|css|ico|pdf|jpg|jpeg|png|gif)$"> Header set Cache-Control "public" Header set Expires "Thu, 15 Apr 2020 20:00:00 GMT" Header unset Last-Modified </FilesMatch>
Recordemos que el archivo .htaccess solamente funciona en servidores Apache. En caso de que ya exista, no se debe sobrescribir, sino simplemente añadir los códigos de los apartados descritos anteriormente que no estén ya incluidos.