Blogs / WordPress

WordPress: Graves problemas con W3 Total Cache

Aunque se trata de un completo plugin para activar la caché de páginas en WordPress, en algunos casos, como es el mío, su instalación puede traer consigo problemas. Explicamos lo que nos ocurrió a nosotros.

Cualquier web dinámica debe utilizar un sistema de caché que libere en parte los accesos a la base de datos. Con este sistema, el servidor web almacena una copia estática de cada una de las páginas tras una primera carga de cada una de ellas. En WordPress existen varios plugins que se ocupan de este trabajo, destacando dos en la lista, el veterano WP Super Cache y el cada vez más usado W3 Total Cache. En Batiburrillo.net y blogs allegados hemos utilizado ambos. Últimamente nos habíamos decantando por el segundo, W3 Total Cache, a pesar de tener que luchar constantemente con las opciones de configuración.

Hasta hace sólo tres días teníamos activado dicho plugin, utilizando las opciones estándar, las que recomiendan en el sitio de soporte del plugin y confirman unos cuantos expertos. Desde hace algún tiempo, tal vez desde la última actualización del plugin, veníamos observando en los logs de errores del servidor que se producían una gran cantidad sin motivo aparente, que traían consigo problemas de cargas en el sitio, con repetitivos errores internos del servidor (Error 500). A pesar de contactar con el soporte de nuestro proveedor de hosting, no pudimos averiguar en donde radicaba el fallo, aunque ellos lo achacaban a un script. Hasta que decidimos desactivar W3 Total Cache.

Como no queríamos quedarnos sin un plugin de caché, decidimos instalar WP Super Cache, y los fallos y errores desaparecieron. El log de errores del servidor está ahora vacío y la carga de las páginas sigue en las mismas pautas, mostrando los mismos o mejores resultados en los servicios que se ocupan de medir los tiempos de carga y demás.

No hemos hecho nada especial en la configuración del plugin. Tras activarlo, hemos marcado las opciones recomendadas (Recommendedi) en la pestaña Avanzado, actualizado el estado y las reglas Mod_rewrite. En Cache timeout pusimos 3600 segundos. Activamos el mismo CDN que teníamos en W3 Total Cache, en Preload activamos, tal como se recomienda, el Preload mode y lo fijamos cada 10800 minutos.

Con el fin de incrementar la velocidad del sitio añadimos en la parte superior del archivo .htaccess las instrucciones que regulan mod_expires y mod_headers:

# Turn on Expires and set default to 0
ExpiresActive On
ExpiresDefault A0

# Set up caching on media files for 1 year (forever?)
<FilesMatch "\.(flv|ico|pdf|avi|mov|ppt|doc|mp3|wmv|wav)$">
ExpiresDefault A29030400
Header append Cache-Control "public"
</FilesMatch>

# Set up caching on media files for 1 week
<FilesMatch "\.(gif|jpg|jpeg|png|swf)$">
ExpiresDefault A604800
Header append Cache-Control "public"
</FilesMatch>

# Set up 2 Hour caching on commonly updated files
<FilesMatch "\.(xml|txt|html|js|css)$">
ExpiresDefault A7200
Header append Cache-Control "proxy-revalidate"
</FilesMatch>

# Force no caching for dynamic files
<FilesMatch "\.(php|cgi|pl|htm)$">
ExpiresActive Off
Header set Cache-Control "private, no-cache, no-store, proxy-revalidate, no-transform"
Header set Pragma "no-cache"
</FilesMatch>

Enlace | WP Super Cache

Fabriciano González

Amante de la informática y de Internet entre otras muchas pasiones. Leo, descifro, interpreto, combino y escribo. Lo hago para seguir viviendo y disfrutando. Trato de dominar el tiempo para que no me esclavice.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.