W3 Total Caché es un gigantesco plugin de optimización cuyo objetivo es reducir la carga del servidor web para mostrar más rápidamente nuestras páginas. Tiene un montón de opciones y parámetros para afinar al máximo el rendimiento dependiendo de cada web y tipo de servidor, lo que estudiarlo a fondo requeriría prácticamente un curso propio.
Para explicar el funcionamiento a groso modo, debemos entender que cada vez que un usuario solicita una página de nuestra web comienza una serie de procesos internos que van desde la petición al servidor, pasando por las consultas a la base de datos para extraer la información solicitada y la final construcción en HTML de la página final que será mostrada al usuario. Pues bien, W3 Total Caché, se encarga de, por cada página visitada, crear una página estática HTML, que será servida al siguiente usuario sin tener que pasar por todo el proceso anterior, con lo que la carga puede realizarse hasta 1o veces más rápido.
Esto también provoca que si realizamos una modificación en una página, esta no se verá reflejada hasta que la página se vuelva a «cachear», además se reducirá el espacio web en nuestro servidor debido a la creación de estas páginas estáticas. A continuación veremos cómo podemos configurarlo para sacarle un buen partido y además evitar este tipo de problemas.
Como siempre localizamos el plugin en el repositorio de WordPress y lo instalamos:
Al activarlo nos aparecerá una nueva sección en el menú principal de WordPress llamada Performance:
Este menú está dividido en varias subsecciones de las cuales veremos las más interesantes, aquellas que podemos configurar para la mayoría de portales web sin entrar en opciones más profundas que ya dependerían de las características propias de cada servidor y sitio web.
General Settings
En él podemos gestionar de forma básica la mayoría de opciones que ofrece el plugin.
General
Esta opción permite activar o desactivar todas las opciones de cacheo de una vez. El preview mode se aconseja dejarlo desactivado para mejorar el rendimiento.
Page Cache
Habilitando Page Caché conseguimos que por cada página que un usuario visite, se genere automáticamente una página estática que será ofrecida a los siguientes visitantes, evitando que el servidor tenga que realizar otra vez las mismas consultas y peticiones y mejorando por tanto la velocidad de carga.
El apartado Page Cache Method, permite seleccionar entre varias opciones, por defecto se usa Disk: Enhanced, pero si notamos problemas para visualizar las páginas, podemos cambiarlo a Disk: Basic. Como ya dijimos, estas opciones dependen en parte del tipo de servidor que estemos usando.
Minify
La opción Minify reduce el tamaño de los ficheros CSS, Javascript y HTML, eliminando partes del código que considere innecesarias, como los comentarios o espacios en blanco haciendo que se carguen más rápido.
Activarlo con las opciones por defecto suele dar buen resultado, aún así se recomienda visualizar detenidamente el resultado, y en caso de observar fallos o errores, mantenerlo desactivado.
Database Cache
Esta opción permite reducir el número de consultas que se realizan a la base de datos, ya que cuando un usuario realiza una consulta, el resultado se guarda en un sistema de caché que puede ser reutilizado por otro usuario. Al igual que las anteriores opciones, su función es reducir el tiempo de carga.
El Database Cache Method también dependerá de nuestro servidor, pero lo normal es dejarlo en Disk.
Object Cache
Esta opción consigue aumentar el rendimiento de las webs que utilizan la API de caché de objetos. Es útil cuando se hace uso de consultas a bases de datos complejas que tardan tiempo en ejecutarse.
Browser Cache
Activar esta opción hace que el navegador guarde una copia de la página en el PC del usuario, así la próxima vez que la visite, no hará una llamada al servidor, si no que usará la guardada en el PC. Este método se controla mediante un sistema de expiración que hará que pasado el tiempo indicado, se vuelva a guardar una versión actual de la página.
CDN
El CDN se trata de una red de servidores que se dedican a cachear datos estáticos de sitios webs que estén adheridos a este tipo de servicios. Cachean datos como imágenes, archivos de css, JavaScript, etc, para servirlos más rápidamente. Debemos usar esta opción solamente si nuestro dominio hace uso de alguno de estos servicios.
En la parte final tenemos opciones de importación/exportación, muy útiles si tenemos el plugin bien configurado y queremos guardar una copia de la configuración para poder restaurarla en otro proyecto o como copia de seguridad.
Estas son las opciones básicas de configuración de W3 Total Cache. Cada opción puede ser configurada más detalladamente dentro de su sección en el menú de Performance, como veremos a continuación.
Page Caché
La sección Page Caché nos ofrece las siguientes opciones:
Las opciones más interesantes de esta sección son:
- Cache posts page: Esta opción activa el cacheo de la página que lista nuestras entradas (página blog). Activarla aumentará considerablemente la carga pero si publicamos una nueva entrada, esta no aparecerá listada hasta que el cacheo expire, por lo que se recomienda borrar el cacheo de la página de blog cada vez que publiquemos una nueva entrada.
- Don’t cache front page: Si nuestra web usa una página estática como página principal, esta ya habrá sido cacheada como una página más, por lo que no necesita volver a ser cacheada. Se recomienda marcar esta opción en este caso.
- Cache SSL: Si nuestro servidor utiliza el protocolo HTTPS, esta opción cacheará todos los contenidos solicitados bajo este protocolo.
- Don’t cache pages for logged in users: Esta opción desactiva el cacheo para los usuarios que están logueados en la web. Puede ser interesante para administradores, editores, colaboradores, ver el contenido en tiempo real, y no versiones cacheadas de la web.
- Cache 404 (not found) pages: Esta opción almacena en caché todas las páginas que han sido devueltas como no existentes, reduciendo la carga del servidor al no tener que volver a revisarlas.
Caché Preload
En este apartado podemos indicar el tiempo que queremos que dure el cacheo de una página. Por defecto son 900 segundos. Pasado este tiempo, el servidor volverá a generar una nueva página estática por si hubiese habido cambios en el contenido. Si nuestros contenidos generados no van a cambiar muy a menudo, podemos alargarlo al doble o triple.
Por último, hay una sección donde podemos indicar aquellas páginas que no queremos que sean cacheadas:
Minify
En el apartado Minify podemos especificar a qué tipo de archivos queremos aplicar la reducción de espacio:
Por defecto nos marca los archivos CSS y JavaScript. Podemos probar activando o desactivando los que nos interese, y ver los resultados asegurándonos de que no se produzcan errores.
Si hacemos uso de librerías externas, podemos indicar el tiempo de cacheo de estas en el apartado:
También podemos especificar aquellos archivos en los que queremos que se realice la reducción de tamaño.
Database Cache
La opción más importante de esta sección es el tiempo que se mantendrán cacheadas las consultas a la base de datos, por defecto 180 segundos. El resto de opciones las podemos dejar por defecto.
Browser Cache
Las opciones más interesantes para activar son:
- Enable HTTP (gzip) compression: que comprimirá la información enviada al usuario.
- Set Last-Modified header: que añade el parámetro «Last-Modified» a la cabecera que envía la respuesta 304 cuando la información no se ha modificado, reduciendo el ancho de banda y el reprocesamiento tanto del servidor como del cliente.
Conclusiones
Como hemos visto en este artículo, hemos pasado por alto muchas de las opciones avanzadas del plugin, ya que están orientadas a usuarios expertos que quieran afinar al máximo la optimización del sitio web, parámetros que pueden funcionar bien en determinados portales o causar el efecto contrario en otros, por lo que no se aconseja probarlos sin los conocimientos adecuados.
Pero las opciones vistas en el artículo funcionan sin problemas en prácticamente cualquier tipo de portal o servidor.