Forzar a no leer el cache del navegador web

Fecha: 19/10/2014
Mucha gente navega por Internet pero muy pocos conocen la existencia y la ayuda que prestan los “caches” a la navegación por Internet, ya que gracias a ellos conseguimos un acceso mucho más rápido a algunos servicios y además ahorramos recursos en la mayoría de los casos.

Teóricamente, según Wikipedia, un cache es un área de almacenamiento dedicada a la recuperación de datos utilizados frecuentemente a gran velocidad, pero realmente un cache va mucho más allá y más en el área de Internet.

browser

Los navegadores web guardan un cache con archivos estáticos descargados desde los sitios web: imágenes, páginas en HTML, archivos en CSS, archivos en javascript, etc…
Normalmente es beneficioso el cache de navegador debido a que el usuario obtendrá una carga mucho más rápida de la web después de acceder al sitio web por primera vez, y el servidor ahorrara recursos de ancho de banda y proceso al no tener que pasar los mismos archivos una y otra vez.

Pero cuando estamos desarrollando un sitio web o haciendo modificaciones en el, puede que el cache de navegador nos moleste, ya que puede ser que no se puedan visualizar los cambios al instante.

Usando unas simples etiquetas HTML podemos forzar para que el navegador del visitante no tenga en cuenta el cache del navegador, esto también es útil para cuando tenemos un sitio web que se actualiza mucho y el cache del navegador nos dificulta el proceso.

Todo lo que debemos hacer es introducir una de las siguientes etiquetas en el HEAD, es decir, entre la etiqueta <HEAD> y la etiqueta </HEAD>:
<meta http-equiv="Expires" content="0">

<meta http-equiv="Last-Modified" content="0">

<meta http-equiv="Cache-Control" content="no-cache, mustrevalidate">

<meta http-equiv="Pragma" content="no-cache">

Con esto, el navegador del cliente ya no tendrá en cuenta el cache que ha guardado anteriormente.

En Wordpress, para añadir estar etiquetas en el HEAD debemos editar la plantilla o theme, concretamente debemos editar el archivo “header.php” donde se encuentran las etiquetas <HEAD> y </HEAD> entre las que debemos meter una de las líneas anteriores.

También es posible forzar a una aplicación desarrollada en PHP para que no guarde cache de navegador, para ello debemos utilizar el siguiente código en el archivo PHP cargado:
<?php

header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1

header("Expires: Sat, 1 Jul 2000 05:00:00 GMT"); // Fecha en el pasado

?>

Con esto nos aseguraremos de que el cache se resetee en todos los navegadores web y proxy http que visiten el sitio web.

Si tienes algún problema con el cache del navegador en tu sitio web o quieres implementar cache de navegador correctamente en tu proyecto, contacta con nosotros sin compromiso y te informaremos.
Álvaro Fontela
Álvaro Fontela

Alvaro Fontela es consultor WordPress especializado en WPO y rendimiento web, además de co-fundador y CEO de Raiola Networks.

Artículos relacionados

Si te ha gustado este post, aquí tienes otros que pueden ser de tu interés. ¡No dejes de aprender!

Tenemos 77 comentarios en Forzar a no leer el cache del navegador web

Deja una respuesta

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

Avatar del autor del comentario

Mauro Man

09/11/2015 a las 17:18

..pero eso es para desarroladores. Ahora, la pregunta es, para evitar que lea de caché el navegador, en una web.. Cómo saber si al hacer , por ejemplo F5.. ya no lee del caché..si no que veo lo más reciente, actual.. el último cambio.. etc.. Cómo saber si está leyendo el browser directo del internet.. y no del caché ?...

Responder
Avatar del autor del comentario

Alvaro Fontela

10/11/2015 a las 13:36

Hola Mauro, que yo conozca no existe ninguna solución cien por ciento efectiva, exceptuando la de borrar todo el cache o usar el modo incógnito de Google Chrome.

Un saludo.

Responder
Avatar del autor del comentario

alder hernandez

19/01/2018 a las 21:43

hola @disqus_nyCYq4IYZs:disqus si queieres que tu navegador no tome la cache de la pagina q estas viendo en el instante, basta con presionar SHIFT+F5 automaticamente se recargara la pagina pero el navegador borrara la cache del sitio (probado en chrome)

Responder
Avatar del autor del comentario

martinse

04/11/2016 a las 10:08

funciona del todo ni con los cuatro, entonces, el codigo de php se aplicaria en un archivo a parte o còmo?

Responder
Avatar del autor del comentario

Alvaro Fontela

07/11/2016 a las 14:54

Hola Martinse, si lo aplicamos a Wordpress, el código PHP podría meterse en el index.php o en el header.php del theme activo.

Los código HTML si que funcionan, pero debes meterlos en el lugar exacto y no deben solaparse con otras reglas, como por ejemplo cache de navegador en el .htaccess, sino claro que no funcionan.

Un saludo.

Responder
Avatar del autor del comentario

martinse

04/11/2016 a las 10:09

Gracias por difundir pero no funciona del todo ni con los cuatro, entonces ¿el codigo de php se aplicaria en un archivo a parte o còmo?

Responder
Avatar del autor del comentario

RocketRoa

27/07/2017 a las 18:21

Muy buena informacion amigo, te lo agardezco.

Responder
Avatar del autor del comentario

Alvaro Fontela

11/09/2017 a las 01:20

Muchas gracias.

Un saludo.

Responder
Avatar del autor del comentario

Duda

08/03/2018 a las 14:35

Buenas, necesito ayuda.

Necesito que cuando modifico un archivo (o subo una nueva imagen con el mismo nombre que una anterior) el navegador no muestre lo que tiene en cache y pida los archivos modificados de nuevo al servidor.

Responder
Avatar del autor del comentario

Héctor Luaces

06/04/2018 a las 11:03

Hola.

Lo mejor es que fuerces al navegador a refrescar la caché (enviando la cabecera pragma: no cache).

La forma de hacerlo depende de tu sistema operativo y de tu navegador.

En Chrome:
- Si usas Windows o Linux: Pulsa y mantiene la tecla "control" y a continuación pulsa "F5".
- Si usas MacOS: Pulsa y mantiene las teclas "comando" y "shift" para después pulsar "R".

En Opera:
- Mismo procedimiento que en Chrome.

En Firefox:
- Si usas Windows o Linux: Pulsa y mantiene la tecla "control" y "shift" para después pulsar "R".
- Si usas MacOS: Pulsa y mantiene las teclas "comando" y "shift" para después pulsar "R".

Adicionalmente, puedes abrir las herramientas de desarrollo de tu navegador (da igual cual sea), dirigirte a la pestaña "network" y marcar la opción "disable cache". Esto hará que mientras las herramientas de desarrollo estén abiertas no se aplique la caché de navegador.

Un saludo.

Responder
Avatar del autor del comentario

Leopoldo De Rosenzweig

28/05/2018 a las 06:47

Cuando incluí las etiquetas meta empece a tener problemas con el charset.
Opté por elimniarlas

Responder
Avatar del autor del comentario

Héctor Luaces

30/05/2018 a las 08:26

Hola, Leopoldo:

Esas etiquetas no tocan ninguna configuración del charset. Asegúrate de que las introduces sin enviar espacios en blanco ni antes ni después, puesto que eso puede causar que sea el navegador —y no tu página— el que intente averiguar la configuración de juego de caracteres, causando que pueda detectar de forma errónea uno que no estés usando.

Un saludo.

Responder
Avatar del autor del comentario

NETMarmota Tech.

11/06/2018 a las 17:23

Interesante este hilo... me pregunta si en un sistema wordpress con un plugin de caché como wp super caché o w3 total caché afectaría al código instalado en la cabecera head

Responder
Avatar del autor del comentario

Héctor Luaces

12/06/2018 a las 08:15

Hola:

Esto que explica el artículo solo sirve para ignorar la caché del navegador (o dicho de un modo más técnico: para enviar la cabecera "pragma: no-cache" en todas las peticiones HTTP).

Por lo tanto, los sistemas de caché de página, objetos, base de datos, etc. que tengas en WordPress no se verán afectados y se seguirán aplicando de forma normal (salvo que tú manualmente crees una regla que respete la cabecera que mencionaba antes). Esto implica que si tienes un código en el "" de tu página web —y éste está cacheado por W3 Total Cache— lo que explicamos en el artículo no te servirá.

Cualquier cosa nos dices.

Un saludo.

Responder
Avatar del autor del comentario

AC

06/09/2018 a las 04:57

Una consulta.. navegando quiero forzar a no usar el cache.. borrando todo el cache y usando posteriormente el modo incógnito del chrome por ejemplo.. lo estaria logrando? No almacena cache y no posee cache cual consultar.. es así ?? Gracias

Responder
Avatar del autor del comentario

Héctor Luaces

06/09/2018 a las 08:20

Hola:

si abres una nueva ventana de incógnito ya no estarás usando la caché de tu ventana principal, por lo que no tienes que borrarla primero. Eso sí: esa ventana de incógnito tendrá su propia caché, una vez entres un par de veces en las webs.

Si quieres desactivar la caché durante una sesión puedes abrir las "Herramientas de desarrollador" de tu aplicación y usar la opción "Red → Deshabilitar caché". De esta forma, mientras la ventana esté abierta no tendrás caché de navegador.

Cualquier cosa nos dices.

Un saludo.

Responder
Avatar del autor del comentario

AC

06/09/2018 a las 16:05

Estas seguro que mientras navego en incógnito guarda caché de la navegación? Pues, estuve controlando el almacenamiento de historial mientras navego y no incrementa a medida que lo hago.. siempre se mantiene se cero. Bueno, en caso que sea como dices.. lo mejor será deshabilitar caché.

Responder
Avatar del autor del comentario

AC

06/09/2018 a las 16:07

Una consulta más, no es que el modo incógnito no almacena caché? o simplemente lo borra al finalizar la navegación?

Cuando dices: "esa ventana de incógnito tendrá su propia caché, una vez entres un par de veces en las webs.", cuando se actualiza la página mediante F5 vuelve a crear su propio caché desde 0 o sigue usando el de la navegación privada? Se borra una vez cerrado el navegador?

Muchas gracias!

Responder
Avatar del autor del comentario

Héctor Luaces

06/09/2018 a las 16:37

Hola, AC:

el modo incógnito, al abrirse, es un navegador "de cero", sin caché, cookies, sesiones, etc. No obstante, una vez comiences a navegar, éste incógnito comenzará a guardar cookies, sesiones, y caché de forma normal.

En el momento en el que cierres la última pestaña de modo incógnito todo se borrará de forma que, si vuelves a abrirlo, empezarás de cero.

Si pulsas F5 se actualizará de forma normal la página: lo que tengas en la caché de incógnito se servirá desde caché de incógnito.

Te paso aquí una captura en la que puedes ver que estoy navegando en modo incógnito y hay recursos que se están sirviendo desde la caché (te lo señalo con una flecha).

https://uploads.disquscdn.c...

Un saludo.

Responder
Avatar del autor del comentario

AC

06/09/2018 a las 17:01

Bien, entiendo. Y aprovecho para cerrar el tema.. si yo navego en modo incógnito.. y en vez de apretar F5, hago recarga forzada con CTRL + F5.. por más que esté acumulando caché la navegación incógnita, forzaría a cargar la última versión de la página.. no es así?

Responder
Avatar del autor del comentario

AC

06/09/2018 a las 17:07

Ahí probé lo que me decías, perfecta la explicación.
Osea, la única forma de que tenga las actualizaciones de una página 100% fiables es deshabilitando el caché como me dijiste al principio, cierto?.
Te comento, navego por una página que necesito tener la ultima versión apenas cambia inmediatamente.. por eso mi inquietud.
Muchísimas gracias, realmente muy útil tu ayuda. Un abrazo!

Responder
Avatar del autor del comentario

Héctor Luaces

06/09/2018 a las 17:21

Te contesto a la última pregunta: si usas "Control+F5" siempre se ignorará la caché de navegador en esa actualización, estés en incógnito o en escritorio.

Ten en cuenta que la caché de página no puede ser controlada desde el navegador.

Gracias por comentar y por hacer tan buenas preguntas.

¡Un saludo!

Responder
Avatar del autor del comentario

AC

18/09/2018 a las 12:43

Hola Hector, como estás? Ayer probé Deshabilitar caché y ver si lograba ver primero la actualización de una página y no funcionó... la página se había modificado y sin embargo yo seguía viendo la versión vieja.. aún así tocando F5 con el caché desactivado. Alguna posible solución que se te ocurra? La página es una versión mobile.. puede tener algo que ver? Gracias!

Responder
Avatar del autor del comentario

Luis Sol Mar

18/10/2018 a las 21:07

Buenas,

y para prestashop 1.7.4.3 es igual??

He añadido en /themes/MITEMA/templates/_partials/head.tpl
pero nada.... safari y chrome en el movil siguen cogiendo cosas de la cache del navegador :(
desactivada toda la cache y opciones de rendimiento en el backoffice pero nada

alguna idea?




Responder
Avatar del autor del comentario

Héctor Luaces

19/10/2018 a las 08:22

Hola, Luis:

el caché de navegador es independiente del CMS que uses. ¡Ojo!, no confundas caché de navegador y caché de página de Prestashop.

Un saludo.

Responder
Avatar del autor del comentario

Luis Sol Mar

19/10/2018 a las 09:09

el problema lo tengo con la cache de los navegadores de los clientes finales... y obviamente no les voy a decir...mira vacia tus datos navegacion o entra con navegación privada y veras la web bien... jejej

Responder
Avatar del autor del comentario

Héctor Luaces

22/10/2018 a las 08:37

Soy consciente, Luis. Pero, lamentablemente, "es lo que hay". La caché de los navegadores existe por una razón. En todo caso puedes decir que la caché es de 0 (y que los navegadores tengan que revalidar siempre los archivos) pero en este caso tus visitantes sufrirían problemas de rendimiento con la web.

Si un recurso está cacheado en el lado del cliente, no hay nada que puedas hacer.

Una aproximación que se usa mucho es servir los recursos seguidos de un query string que identifique su versión. Por ejemplo, si tu archivo "css" es la versión 1.1.0 podrías hacer que la ruta fuese "/miarchivo.css?version=1.1.0". Si en el futuro cambiases la versión a, digamos, "1.1.1", la ruta la podrías cambiar a "/miarchivo.css?version=1.1.1". Esto forzaría a los navegadores a descargarse una nueva versión del mismo.

¡Un saludo!

Responder
Avatar del autor del comentario

Jose

06/05/2020 a las 19:34
Hola, como se podria hacer eso en prestashop, entiendo lo de rendimiento, pero aun asi deseo hacerlo
Responder
Avatar del autor del comentario

Hector Luaces

14/05/2020 a las 09:26
Hola, Jose:

primero, en la configuración de rendimiento de la tienda tendrías que desactivar todas las cachés.

Después, tendrías que modificar los archivos .htaccess de tu dominio para añadir estas cabeceras HTTP:



header set Cache-Control "no-cache, no-store, must-revalidate"
header set Pragma "no-cache"
header set Expires "0"



Ten en cuenta, no obstante, que la decisión de cachear o no recae últimamente en el navegador y si éste decide no obedecer a las cabeceras anteriores no hay nada que no puedas hacer desde el punto de vista de la administración de un sitio web.

Un saludo,
Responder
Avatar del autor del comentario

AC

06/11/2018 a las 18:39

Puede ser que las cookies afecten en la visualización de una actualización en la web?

Responder
Avatar del autor del comentario

Héctor Luaces

07/11/2018 a las 13:35

Hola:

desde luego, el código de una web puede comprobar que tengas una cookie para mostrar o no una cosa. P.ej.: si no tienes la cookie de sesión puede que se te muestre el contenido de invitado.

¡Un saludo!

Responder
Avatar del autor del comentario

AC

07/11/2018 a las 14:08

Gracias!

Responder
Avatar del autor del comentario

AC

04/12/2018 a las 15:30

Buenas tardes @hectorluaces:disqus / @alvarofontela:disqus tengo un problemita que no estaría pudiendo solucionar..

Les comento.. hay una página web en la cual te solicita loguearte con usuario y contraseña.. y en determinado momento del día habilita un contenido.. el cual al primero que llega, tiene la opción de una participación especial a un concurso.. es decir, el primero que ve la página "liberada" o "activada" y se inscribe.. tiene opción a una participación especial.
De aquí mi problema.. nunca logro ver a tiempo cuando se abre esta participación..
Siempre la veo una vez iniciada (y no es por problemas de lentitud, sino que la página se habilita y a mi me lo muestra unos minutos después de estar habilitada).. probé actulizar la página deshabilitando el caché desde el panel de "herramientas de desarrolladores - Devtools.. y a su vez borrando las cookies cada vez que se actualiza la página.. y aún así tampoco llego a ver la actualización en tiempo real.. siempre minutos luego de que ocurre. También me ha sucedido que desde dos PC ingresando con mismo usuario y contraseña (y las mismas condiciones de caché y cookies borrados cada vez q actualizo la página).. en una la veo refrescada antes que en otra.. es decir.. en una pc la veo ya activa y en la otra no.. (y se libera minutos después).. pero ninguna en el momento exacto en que se libera. (como para que llegue a participar a tiempo)..

Teniendo en cuenta que deshabilito y borro caché y cookies en cada refrescada de página.. y debería traerme la última versión del servidor.. que puede estar fallando? alguna idea de como poder solucionarlo?

Espero la explicación haya sido clara.. cualquier duda por favor avisenme..

Agradecería mucho su colaboración.

Saludos!

Responder
Avatar del autor del comentario

Héctor Luaces

10/12/2018 a las 10:20

Hola:

ten en cuenta que pueden existir muchos niveles de caché intermedio que estén interfiriendo en tu acceso.

Mi recomendación es que cuando quieras probar entres en modo incógnito. Si no lo ves bien, cierra el mismo modo incógnito y prueba un poco más tarde.

Si en modo incógnito el problema persiste la caché que ves no es algo que esté de tu lado, si no del lado del servidor o de una caché intermedia.

Cualquier cosa nos dices.

¡Un saludo!

Responder
Avatar del autor del comentario

AC

15/01/2019 a las 18:46

Cambiar el navegador no ayudaría en nada, no?

Responder
Avatar del autor del comentario

Héctor Luaces

16/01/2019 a las 12:14

Hola:

sí ayuda. La caché es de cada navegador (salvo en casos muy raros) por lo que si entras con un navegador nuevo éste usaría su propia caché, no la del antiguo.

No obstante, ten en cuenta que si usas el nuevo navegador para entrar a la página varias veces ya hará uso de su propia caché.

¡Un saludo!

Responder
Avatar del autor del comentario

AC

17/01/2019 a las 17:37

Pero me refiero, a que si el problema es cache de otros niveles (server, de la propia web), no cambiaría nada, no?

Responder
Avatar del autor del comentario

Héctor Luaces

18/01/2019 a las 10:18

Hola:

eso ya es más difícil contestar porque depende de la configuración del servidor

La respuesta más fácil es decirte que no, pero la respuesta técnicamente correcta dependerá de cómo se implemente la caché en el nivel de servidor, y te explico: para generar caché a nivel de servidor se toman datos de cada visita para generar un identificador único que será después reusado para buscar y presentar la caché.

Por norma general este identificador va a generarse con el protocolo de la petición (HTTP o HTTPS), el dominio, la URL, el tipo de petición (POST, GET, HEAD, etc.), los parámetros de la URL y la IP del visitante, aunque también pueden entrar en juego otros factores como tu sesión de usuario, tu navegador etc.

Así pues, la respuesta es que "puede", pero lo más probable es que no.

¡Un saludo!

Responder
Avatar del autor del comentario

AC

18/01/2019 a las 13:55

Excelente, siempre muy claro en tus respuestas. Muchas gracias!!

Responder
Avatar del autor del comentario

Héctor Luaces

18/01/2019 a las 20:22

Gracias a ti por comentar, ¡un saludo!

Responder
Avatar del autor del comentario

Héctor Luaces

18/01/2019 a las 20:28

Gracias a ti por comentar, ¡un saludo!

Responder
Avatar del autor del comentario

AC

30/10/2019 a las 18:11

Hola Hector, como estás? Sigo luchando con este tema pese a que pasó mucho tiempo.. jaja.
Te consulto una idea que se me ocurrió.. puede ser que el MAC address pueda llegar a generar algún caché que me altere/interfiera en las actualizaciones de la página? Tengo pensado probar modificar el MAC a ver si me soluciona..
La verdad que probé de todo, y se me ocurrió esto porque siempre a comienzo de ciclo me funciona perfecto.. pero a medida que avanza el tiempo se me arruina y no me permite verlo correctamente..

Que opinas? Gracias!

Responder
Avatar del autor del comentario

Héctor Luaces

13/11/2019 a las 10:34

Hola:

sí, el MAC se guarda tanto en las tablas ARP de todos los dispositivos de red que conozcan a la máquina que identifiquen, además de en la caché de los pools DHCP.

No obstante, me parecería raro que esto influyese en problemas de caché, ya que es un fallo muy bajo del stack de networking y eso implicaría que los fallos serían más del tipo "servidor no encontrado" o "tiranosaurio de chrome en fondo gris mirándote triste".

Me temo que no puedo ofrecer mucha más ayuda sin revisar el caso in situ.

Un saludo.

Responder
Avatar del autor del comentario

AC

13/11/2019 a las 16:07

Hola Hector, muchas gracias como siempre por tus respuestas.
Sigo sin poder visualizar en tiempo real el cambio de esa web al momento de activar la semana de juego. Seguiré probando con alguna otra alternativa, pero creo haber probado casi todo ya jaja.
Te agradezco mucho tu colaboración!
Un abrazo!

Responder
Avatar del autor del comentario

Héctor Luaces

22/11/2019 a las 14:28

Mucha suerte, espero que encuentres el problema.

¡Un saludo!

Responder
Avatar del autor del comentario

Jhonny Ly

26/12/2018 a las 04:41

Buenas, yo tengo un problema que supongo que tiene que ver con el caché de mi sitio web pero hay un detalle que no me cuadra.

Tengo una web donde cada 2 o 3 días tengo que actualizarle unos datos, resulta que si lo veo en mi pc u otra (con cualquier browser) se ven los cambios, pero cuando los reviso en mi celular no. Incluso tengo una app que se alimenta de ese sitio web a través de RSS y sucede lo mismo.

Será que tengo que lo que me muestran aquí me funciona?
Sólo tengo que poner una linea o todas las que muestran?
Al hacer esto no debo preocuparme porque se desconfigure otra cosa? Como el google webmaster tools, google analytics u otro.

Gracias de antemano.

Responder
Avatar del autor del comentario

Héctor Luaces

26/12/2018 a las 10:21

Hola:

me temo que no entiendo muy bién que nos dices en tu primera pregunta.

Respecto a la segunda: habría que poner todas, si bien es raro lo que nos comentas y no creo que sea problema del navegador web.

¿Estás usando caché de página a nivel de aplicación? — en caso afirmativo: vacíala.

Te recomendaría que pruebes desde el teléfono usando un navegador en modo "incógnito" para saber a ciencia cierta si es problema de navegador o no. En el caso de que el problema persista en este modo, el fallo viene derivado de otra cosa.

Un saludo.

Responder
Avatar del autor del comentario

Jhonny Ly

26/12/2018 a las 20:06

Buenas, ya probé con el navegador en modo incógnito y aún así no me sale actualizado en el chrome de mi celular, pero en el chrome de la PC si me sale actualizado.

En realidad necesito que en mi app para android se vea actualizado al instante, pero no sé qué puede ser. Lo raro es que en el chrome del celular no se actualiza. T_T

Qué puede ser?

Responder
Avatar del autor del comentario

Héctor Luaces

27/12/2018 a las 09:29

Hola, Jhonny:

entonces tu problema no es el caché de navegador. Puede que en tu página web tengas un sistema de caché o que haya alguna intermedia.

¿Con qué software has hecho tu página web?, ¿usas alguna CDN?,

Un saludo.

Responder
Avatar del autor del comentario

Jhonny Ly

28/12/2018 a las 20:11

Hola Héctor:

yo utilizo un plugin llamado wp fastes cache, lo configuré para que borrará el cache cada vez que se creará y/o actualizará una nueva página o un nuevo post.

Yo utilizo Wordpress y Hostgator.

Qué es un CDN?

Responder
Avatar del autor del comentario

Héctor Luaces

31/12/2018 a las 10:11

Hola, Jhonny:

en este artículo explicamos qué es un CDN, échale un ojo y me comentas cualquier duda.

Sobre el resto de cosas, me temo que todo parece estar correcto acorde a lo que nos dices. Si necesitas más ayuda dime el sitio (si es necesario te doy un correo) y te confirmo si está bien del lado del servidor o si es un problema de tu terminal.

Un saludo.

Responder
Avatar del autor del comentario

Jhonny Ly

03/03/2019 a las 07:32

Hola, disculpa que no contesté, gracias por escribirme. Ya lo solucioné, tuve que contactar a mi proveedor para que me eliminar eso, era algo que ellos implementaban con el caché (Hostgator). Gracias por todo

Responder
Avatar del autor del comentario

Bruno Mateo Castillo

02/01/2019 a las 15:02

Buenas tardes Alvaro, estaba viendo tus respuestas y son de mucha ayuda para mi en estos momentos, disculpa mi ignorancia... como se pone de modo incognito una web? yo estoy trabajando con dreamweaver, esos códigos que pusiste se adaptan al dreamweaver verdad?

Responder
Avatar del autor del comentario

Héctor Luaces

04/01/2019 a las 11:07

Hola, Bruno:

el modo incógnito lo pones en el navegador, no en la web. La forma de entrar varía, pero por lo general tienes que ir al menú "Archivo" y ahí deberías ver la opción de entrar en "modo incógnito".

Ese modo es muy práctico porque cada vez que lo abres se borra la caché sin necesidad de tocar nada en tu navegador "del día a día".

Respecto a Dreamweaver: sí, "se adaptan". Lo entrecomillo porque el código es código y es compatible con cualquier editor, como Dreamweaver.

Cualquier cosa nos dices.

Un saludo.

Responder
Avatar del autor del comentario

Marta Arroyo

19/10/2019 a las 20:19

Hola, mil gracias por el artículo!

Tengo una duda. Tengo una web que fue migrada de un .es a un .com, el problema es que aunque la redirección 301 se hizo bien, en las serps siguen apareciendo los resultados de los dos dominios, aunque redirigen al actual.

Tengo la duda de si esto puede pasar porque no estén bien implementado el status 304 en el Head de algunas páginas. O porqué existiese algún plugin de caché en el antiguo dominio que haya dado problemas en la migración.

Muchas gracias!

Responder
Avatar del autor del comentario

Héctor Luaces

13/11/2019 a las 10:27

Hola, Marta:

como bien dices, si estás enviando cabeceras 304 en alguna URL que no deseas, Google va a mantener dicho recurso indexado, con todo lo que ello implique.

Revisa que las URLs de las serps (en todas sus variantes -www, sin www, http, https, etc.- y todos los dominios -.com y .es-) estén devolviendo un 301 y reenvíen a la URL correcta.

De la misma forma, revisa el HTML generado en todas tus páginas y busca enlaces canónicos u otras URLs de tus dominios que puedan no estar actualizadas.

Finalmente, me consta que muchos plugins de caché no invalidaban correctamente la caché y generaban errores 304 cuando deberían generar otros, si bien esto se daba en las URLs de los ficheros de caché minificados/combinados, no en URLs propias de WordPress.

De cualquier forma, asegúrate de borrar la caché. En estos casos peleones yo tengo la manía de hacerlo a través de FTP para evitar suspicacias de los plugins que no borren ficheros viejos.

Finalmente, ten en cuenta que el 304 devuelto por cualquier plugin de caché puede ignorar tus peticiones de "Pargma: no-cache", que es de lo que habla este artículo.

¡Un saludo!

Responder
Avatar del autor del comentario

david limonche

02/01/2020 a las 20:00

hola pero lo quiero es controlar el cache para que alargue su duración dentro del navegador como se puede hacer eso?

Responder
Avatar del autor del comentario

Héctor Luaces

13/01/2020 a las 15:02

Hola, David:

para eso puedes usar el módulo "expires" de Apache y directivas del archivo .htaccess.

Te paso un ejemplo para que veas, cámbialo como necesites:

https://gist.github.com/hlu...

Un saludo.

Responder
Avatar del autor del comentario

Sergio Elías

02/01/2020 a las 23:56

Hola, gracias por la información.
Unas consultas, si pongo todas las etiquetas para evitar la caché en el cliente, habría problema o las puedo poner todas sin problema?

Responder
Avatar del autor del comentario

Héctor Luaces

13/01/2020 a las 15:03

Hola, Sergio:

puedes ponerlas todas, pero eso hará que tus visitantes no se beneficien de la caché de navegador.

¡Un saludo!

Responder
Avatar del autor del comentario

danny

07/04/2020 a las 07:28
no me funciono ninguno, estoy actualizando una imagen que previamente recorte con php y al regresar a la imagen history.back(-1), no la actualiza, es mas si apreto f5 tampoco la actualiza a pesar que la imagen ya cambio de tamaño pero conserva el mismo nombre
Responder
Avatar del autor del comentario

Alvaro Fontela

11/04/2020 a las 19:00
Hola Danny, ¿existe la posibilidad de que tengas un proxy cache, un CDN o CloudFlare por delante de la web?
Si es así, puede que sea esto lo que te esta guardando cache.
Responder
Avatar del autor del comentario

Jake

07/05/2020 a las 10:41
Hola! tengo un gran problema, mi pagina web iba bien y en orden en modo local trabajando en mi maquina, la termine y la subí a mi host, pero en cuanto se cargo a la web aparecieron errores, cada vez que entro pareciera que lo subí mal programado, pero al dar "refresh" y se acomodaba a verse bien, crei solo era algo que aun estaba cargando los archivos, pero no, el problema persiste, revice en diferentes navegadores y el efecto es el mismo, en la maquina de forma local el sitio luce bien y normal, pero en web al verlo y cargarla me manda errores hasta que de refresh, y esto aplica para cada html de los interiores del sitio, no logro entender que pasa, pueden ayudarme con esta duda? que puede ser el problema? como podría solucionarlo?
Responder
Avatar del autor del comentario

Alvaro Fontela

18/05/2020 a las 12:36
Hola Jake, con tan pocos datos no podemos ayudarte, ya que este tipo de errores se encuentran buscando en los logs de errores y descartando cosas.
Responder
Avatar del autor del comentario

Jose

30/09/2020 a las 04:38
En mi caso, para que tome los nuevos estilos lo que me ha funcionado es generar un archivo CSS con otro nombre. Se lo tengo que cambiar a las páginas pero veo que las máquinas remotas lo toman y actualizan. No sé si es lo mejor pero con los META que comentan aquí, y algunos código de JavaScript en otros lado no lo he podido lograr de forma 100% segura.
Responder
Avatar del autor del comentario

Alvaro Fontela

05/10/2020 a las 15:06
Hola Jose, puede ser también cache del CDN, no solo del navegador. Depende mucho del caso y las circunstancias.
Responder
Avatar del autor del comentario

Fabio Triana

14/10/2020 a las 23:40
Hola alvaro gracias por el articulo.. tengo una web y por error active cache de 1 año con w3 total cache, desinstalé todo el plugin, limpie cache. purgue engintron ..etc pero el cache del navegador sigue saliendo allí -la version antigua y con errores- alguna ayuda recomendación? te agradezco la ayuda. mi sitio entraba en producción y tuve que parar todo! estoy que lloro! (no es broma) .
Responder
Avatar del autor del comentario

Alvaro Fontela

15/10/2020 a las 12:58
Hola Fabio, si la web aun no esta en producción y solo has entrado tu, vacía cache en tu navegador y ya esta.

Si aun así no consigues es que hay algo mas, sea en Engintron o en un CDN o donde sea.
Responder
Avatar del autor del comentario

Fabio Triana

15/10/2020 a las 18:18
Gracias alvaro.. realmente no he conseguido solucionar nada... no tengo cdn. pero si Engintron, modifique algunas variables creo tocaban el cache, lo bajé a una hora max. limpie cache de engintron, limpie tambien con este comando a continuación y colocando estas lineas en acces.. adicional a eso resetee apache , el servidor. etc sin cambio

#!/bin/bash
sudo service nginx stop
sudo rm -rf /var/cache/nginx/*
sudo service nginx start | mail -s "Nginx Purged" me@gmail.com
exit 0
"
actualmente incluí esto en el hacess.

"
# DISABLE CACHING

Header set Cache-Control "no-cache, no-store, must-revalidate"
Header set Pragma "no-cache"
Header set Expires 0




ExpiresActive Off


FileETag None
Header unset ETag
Header unset Pragma
Header unset Cache-Control
Header unset Last-Modified
Header set Pragma "no-cache"
Header set Cache-Control "max-age=0, no-cache, no-store, must-revalidate"
Header set Expires "Thu, 1 Jan 1970 00:00:00 GMT"

"
Responder
Avatar del autor del comentario

Alvaro Fontela

20/10/2020 a las 17:59
Hola Fabio, pues...o Nginx no esta funcionando bien en lo que se refiere a cache, o...hay algo mas...
Responder
Avatar del autor del comentario

Pablo

29/12/2020 a las 00:39
Metí una dirección fttp en mi sitio web y me daba error cuando pasé a fttps, a pesar de cambiarlo porque las cachés de muchos usuarios ya tenían precargada esta dirección. Utilicé el código HTML que has dado y ahora funciona perfecto, muchas gracias.
Responder
Avatar del autor del comentario

Alvaro Fontela

23/01/2021 a las 20:47
Me alegro Pablo, gracias por el comentario :)
Responder
Avatar del autor del comentario

angelgutz77

16/01/2021 a las 07:04
Hola Álvaro! Gracias por compartir contenido de gran valor.
Intenté poner AMP a una web automática y el problema es que Google guarda la caché durante todo el día y el contenido no se actualiza en AMP.
¿Sabes si ésto serviría para forzar la caché en amp?
Vi que el plugin amp for Wp tiene una extensión para borrar la caché cdn amp pero el borrado es manual.
Gracias
Responder
Avatar del autor del comentario

Alvaro Fontela

23/01/2021 a las 20:19
Hola Angel, existen distintas formas de implementar AMP, en la oficial dependes de Google, pero existen otras. Lamentablemente no he profundizado mucho en esto y tampoco te puedo decir exactamente como implementarlo para que no haya cache.
Responder
Avatar del autor del comentario

Ricardo FS

23/04/2021 a las 17:00
Excelente, funciona a la perfección. Saludos y gracias por la info!
Responder
Avatar del autor del comentario

Andrea Barreiro

06/05/2021 a las 14:01
Estupendo, Ricardo, para eso estamos. ¡Gracias por comentar!
Responder
Avatar del autor del comentario

Darío

08/02/2022 a las 15:30
Hola.
En algunos navegadores no funciona. Por ej. en Opera.
Esto es porque si hago cambios en el código para forzar la actualización, el navegador no se entera ya que sigue mostrando la página con el código que tiene en caché.
¿Hay alguna manera de que se fuerce completamente la actualización? Incluyendo que sí o sí el navegador tenga que buscar la página en el servidor cada vez.
Gracias.
Responder

Deja una respuesta

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