Cómo activar la caché del navegador en WordPress de forma efectiva

  • Autor Autor Cyber
  • Fecha de inicio Fecha de inicio
C

Cyber

Épsilon
Hola Betas,

Ando queriendo especificar la caché del navegador para un blog en WP. Ya probé muchos códigos, pero luego de implementarlos escaneo con la herramienta Enlace eliminado y me dice que la caché sigue deshabilitada.

¿La herramienta no sirve?

¿Tienes algún código que uses y que funcione?

Gracias!!!
 
Yo tb llevo mucho tiempo buscando algo asi para mi blog, no consigo cachearlo.
 
Yo tb llevo mucho tiempo buscando algo asi para mi blog, no consigo cachearlo.

Igual, aclaro por si estamos hablando de cosas diferentes. Lo que yo buscaba era habilitar el caché del navegador, no cachear el sitio en el servidor. Saludos!
 
¿Preguntas cómo hacer que el servidor envíe las cabeceras necesarias en la respuesta HTTP para que el navegador cachee la página?
W3 Super Cache, que yo sepa, lo tiene integrado o, al menos, se puede configurar para ello.
 
¿Preguntas cómo hacer que el servidor envíe las cabeceras necesarias en la respuesta HTTP para que el navegador cachee la página?
W3 Super Cache, que yo sepa, lo tiene integrado o, al menos, se puede configurar para ello.

Si, eso mismo preguntaba. Pero como le dije a Night en el comentario de arriba, prefiero no usar esos plugs "avanzados". Igual, gracias!! :encouragement:
 
Si, eso mismo preguntaba. Pero como le dije a Night en el comentario de arriba, prefiero no usar esos plugs "avanzados". Igual, gracias!! :encouragement:

No hay problema. Mira, un .htaccess con valores que puedes cambiar. Los valores están en segundos.
Insertar CODE, HTML o PHP:
# 1 YEAR
<filesMatch "\.(ico|pdf|flv)$">
Header set Cache-Control "max-age=29030400, public"
</filesMatch>
# 1 WEEK
<filesMatch "\.(jpg|jpeg|png|gif|swf)$">
Header set Cache-Control "max-age=604800, public"
</filesMatch>
# 2 DAYS
<filesMatch "\.(xml|txt|css|js)$">
Header set Cache-Control "max-age=172800, proxy-revalidate"
</filesMatch>
# 1 MIN
<filesMatch "\.(html|htm|php)$">
Header set Cache-Control "max-age=60, private, proxy-revalidate"
</filesMatch>
¿Necesitas ayuda para entender la sintaxis de estos bloques de ejemplo?
 

Básicamente me falta mucho para poder programar algo así, aunque de tantos que he visto ya, algo entiendo. Lo que me gustaría que me aclares, si no es molestia, es porque los primeros son "public" y los segundos "private". Y me interesa también el porque de "proxy-revalidate".

Tengo una grán duda, por lo que he quitado los .js de la lista. ¿Podría afectar ésto a los anuncios de adsense? Porque se estarían cacheando sus .js en el navegador del usuario, en vez de cargarse cada ver que ingrese a una página.

Ahora voy a probarlo, en unos minutos te digo si funciona. Gracias!! :encouragement:

pd: por cierto, que significa que se cachea el "php" ¿eso no se ejecuta a nivel de servidor??
 
a) la caché de wordpress se activa en el archivo de configuración con un simple "enable" aunque no sé si necesita algún soporte adicional
b) quickache se activa con un clic...

De pronto este artículo te ayude

Usando la caché interna de Wordpress | aNieto2K
 
No afectaría a la publicidad ya que se carga desde servidores externos. Estas cabeceras se envían con los archivos que el servidor devuelve... no hay manera de controlar el caché de servidores externos con cabeceras, que ahora recuerde.
Si me dices cómo quieres que sea el caché, yo te lo adapto. (Quiero que las imágenes sólo se actualicen cada semana, y las páginas HTML/PHP cada día...)

Y sí, el PHP se cachea. Pero es que el HTML también. Estás pidiendo a Firefox, Chrome... que haga el caché por tí. Los PHP van a seguir generándose cada vez que un cliente lo solicite (y eso debería ocurrir siempre que hayan pasado los tiempos de caché predeterminados).

 
Última edición:

Antes que nada muchas gracias ramonjosegn. Sabes que he leído ese artículo, incluso otros más. He agregado la línea en wp-config, pues no la tenía. Incluso creé una carpeta en donde supuestamente iba a guardarse la caché, pero siempre está vacía. Leo varias veces el artículo que me pasaste y me parece que soy demasiado bruto, porque no entiendo cómo y para qué usar todas esas variables 🙁

Lo que no logro también entender es, de una forma sencilla, para que sirve esa cache interna de WP.

Gracias!!:encouragement:
 
Disculpen y aprovecho el thread pero yo tengo un problema de caché en wordpress uso el script de geo ip de adjal y w3 total cache el problema yace en que el script no funciona bien porque se queda en caché la ultima visita antes del barrido 🙁... Es decir que si visitó uno de españa antes el barrido pues a los demás le mostrará anuncios para españa 🙁
 
Usa algo en la QUERY_STRING. Por ejemplo, si la dirección es
Insertar CODE, HTML o PHP:
http://www.example.com/
tienes que probar con
Insertar CODE, HTML o PHP:
http://www.example.com/?nc2=2
Creo que con eso se soluciona, con la configuración por defecto. Aunque, si no te da resultado... ve cambiando la URL usando scripts que ya existen, para que añada un nº aleatorio en lugar del 2.

La mejor solución sería usar una URL que no esté usando la caché... un subdominio sería muy sencillo, por ejemplo.
 
[MENTION=24248]NetGratis EU[/MENTION] fíjate que acabo de poner el código que me pasate dejando los archivos .js para que también se cacheen. Luego miré con Pagespeed de Firebug y los .js de los anuncios tienen definida una caché de 1 hora, cuando yo configuré todo para que tenga 1 semana. Eso te da la razón en lo que dices.

Créeme que no sabía que el php se podía cachear en el navegador del usuario, yo pensé que el mismo sólo recibía datos en html y afines.

Aprovecho, ya que noté que sabes tanto, para preguntarte algo un poco mas "complicado", que hace semanas que intento entender pero no logro. Resulta que la herramienta que mecioné antes, me indica que tengo una falencia grave, y me recomienda "Habilitar Keep-Alive".

Muchas gracias igual por el ofrecimiento de personalizarme el código (creo ya haber entendido como hacerlo), y por toda la ayuda que me estas brindando. Gracias!! :encouragement:
 
Sin problemas 🙂

Créeme que no sabía que el php se podía cachear en el navegador del usuario, yo pensé que el mismo sólo recibía datos en html y afines.
Es que, técnicamente, el navegador no distingue entre HTML y PHP: eso lo hace el servidor; el navegador simplemente recibe el archivo y lo interpreta como HTML.

Por supuesto. Tienes que añadir esto a httpd.conf:
Insertar CODE, HTML o PHP:
KeepAlive On
Aunque estoy asumiendo que no estás en alojamiento compartido. En ese caso, no hay manera, a mi entender, de configurar eso sin que el hosting lo añada para todo el servidor.
Puedes comprobar el Keep Alive tú mismo: si no ves "Connection: Keep-Alive" entre los headers de tu web, no está configurado de esa manera.
 

Gracias por aclararme lo del cacheo de php.

Lamentablemente estoy en un compartido 🙁. Lo curioso es que para unos blogs me dice que no tengo activo el "Keep Alive", mientras que para otros que están en el mismo servidor sí. Por eso me desconcierta un poco.

Me queda una última pregunta. Para ver los encabezados como dices ¿sólo tendría que mirar en el código de fuente del blog, una vez cargado en el navegador? Gracias!!! :encouragement:
 
No, para ello necesitas Firebug (veo que ya lo usas) o similar. Son los HTTP headers (cabeceras HTTP) de la respuesta del servidor. También las puedes ver en sitios como http://web-sniffer.net/
 
No, para ello necesitas Firebug (veo que ya lo usas) o similar. Son los HTTP headers (cabeceras HTTP) de la respuesta del servidor. También las puedes ver en sitios como View HTTP Request and Response Header

Perfecto!! Muchas gracias por pasarme la herramienta!!!

La respuesta que obtengo es la misma en todos los sitios: Connection: close[CRLF]

Incluso he testeado sitios de otros usuarios "mas profesionales" del foro, y es igual. Así que no creo que sea tan importante ¿o si?

Muchísimas gracias por todo, realmente gracias :encouragement:
 

Ya te he dicho. En lo que se pueda ayudar 🙂

Si afecta a tu rendimiento, es importante. Pero si la velocidad no es lenta, no hay problema. Aunque te da una ventaja extra ante tus competidores en Google.
Una pregunta. Cuando probaste, en su momento, plugins de cacheo, ¿cambiaste los permisos de la carpeta que creaste (CHMOD)?