9 jun 2013

La caché en Blogger

La mejora en el rendimiento de nuestros blogs influye a nivel de optimización de para los motores de búsqueda. Es decir, la posición de nuestro sitio en los resultados de búsqueda se ve influenciada por la velociad con la cual somos capaces de ofrecer nuestras páginas a los usuarios.

Es normal que no puntúe igual para la colocación en los primeros puestos de resultados una página lenta frente a una rápida. Por ello, es importante que ajustemos bien los consejos de "Page Speed Insights" para optimizar todo lo posible nuestros resultados. No sólo ya de cara a obtener mejores resultados SEO sino también porque nuestros usuarios agradecerán enormemente el tiempo de respuesta que nuestro sitio les brinde. Sin embargo, dado que utilizamos Blogger, tendremos "limitadas" algunas posibilidades que nos permitirían tener un mayor control de la caché de nuestro sitio y que no podemos resolver de otra manera que a través de meta etiquetas que emulan la respuesta de las cabeceras HTTP de nuestro sitio web.

Aunque las mejoras que te presento no cambiarán tu puntuación en el page-speed, notarás que sí hay mejoría en la gestión de la caché en los navegadores de tus usuarios, transmitirás una mayor sensación de velocidad y "paliarás" en parte el problema que tenemos de no poder editar las cabeceras HTTP del servidor.


CONCEPTOS INICIALES:


Para podernos hacer una idea de cómo objetivamente estamos trabajando con nuestra web para obtener los mejores resultados de rendimiento, debemos realizar las mediciones a tal efecto siguiendo la guía sobre resolución de problemas en dicha materia. En ella, prestamos especial atención al uso de "Page Speed Insights" como herramienta para nuestras mediciones.

LA CACHÉ:


Al utilizar la herramienta Page Speed, en el listado de resultados con alerta puedes encontrar una frase como esta:

"El período de validez de los siguientes recursos que se pueden almacenar en caché

es muy breve."

La caché, sin entrar en detalles muy técnicos que escapan a las pretensiones del artículo, es una "memoria intermedia" que se encuentra disponible en tu navegador para almacenar objetos o componentes de las páginas webs (imágenes, .css, etc...) que visitas en tu disco duro. De esa manera, cuando vuelves a visitar ese sitio web, tu navegador no tiene que solicitar al servidor de nuevo los objetos que componen la página web porque dispone ya de ellos en tu disco duro.

Así pues, si tienes componentes ya "cacheados" en tu disco duro, tu navegador no tendrá que volver a solicitarlos al servidor y esperar a que se descarguen desde él porque ya los tienes tú cargados y listos en tu disco duro.

El problema es que no podemos tocar las cabeceras HTTP en Blogger, como mucho podemos intentar utilizar meta-etiquetas para paliar el problema. Por ello, aunque hagas el cambio para controlar la caché, no desaparecerá de la lista de avisos de Pagespeed pues sólo los usuarios con dominio propio podrían llegar a editar estos valores donde realmente son efectivos: en la cabecera HTTP.

CÓMO ADMINISTRAR LA CACHÉ ADECUADAMENTE EN TU BLOG:


Google es muy preciso al informar en el soporte de Page Speed la recomendación para el control de caché:

"Recommendations

Set caching headers aggressively for all static resources.
    For all cacheable resources, we recommend the following settings:

        Set Expires to a minimum of one month, and preferably up to one year, in the future. (We prefer Expires over Cache-Control: max-age because it is is more widely supported.) Do not set it to more than one year in the future, as that violates the RFC guidelines.

        If you know exactly when a resource is going to change, setting a shorter expiration is okay. But if you think it "might change soon" but don't know when, you should set a long expiration and use URL fingerprinting (described below). Setting caching aggressively does not "pollute" browser caches: as far as we know, all browsers clear their caches according to a Least Recently Used algorithm; we are not aware of any browsers that wait until resources expire before purging them.
        Set the Last-Modified date to the last time the resource was changed. If the Last-Modified date is sufficiently far enough in the past, chances are the browser won't refetch it."

El uso de "Expires" como mínimo a una mes parece la opción recomendada más fácil de aplicar.

"EXPIRES" UTILIZACIÓN:


La función para control de Caché EXPIRES se debe incluir antes del final de la etiqueta </head> con el siguiente formato:

<meta content='Sat, 20 May 2014 22:25:27 GMT' http-equiv='Expires'/>

Donde expresamos a nivel Blogger que en la plantilla HTML establecemos un período de expiración del uso de caché del tiempo que prefiramos.

La fecha de expiración debe ponerse como mínimo un mes más tarde de cuando implementemos esta nueva línea de código y como máximo un año más tarde (se puede más pero no está indicado como una buena práctica, procurad no pasar de un año).


ACTÍVALO EN TU BLOG CON UNA META-ETIQUETA:


1) Realiza una copia de seguridad antes de introducir cambios en el código fuente de la plantilla HTML de tu Blog.

2) Entra en Blogger y en el menú derecho dirígete a la opción "Plantilla".


3) Pulsa el botón "Editar HTML" (a la derecha de personalizar).

4) Justo debajo de la etiqueta <head> añade la línea de código:

<meta content='Sat, 20 May 2014 22:25:27 GMT' http-equiv='Expires'/>

pon el día, Fecha y hora que a tí te convenga, te recomiendo que sea como mínimo un mes o como máximo un año desde el momento en que lo hagas.



Escrito por Miguel García Sánchez - Colomer

Dispuesto a ayudarte con tu Blog en todo lo posible, Diarios de la nube es mi medio para llegar hasta ti. El conocimiento es universal, es del mundo, es de todos, esta es mi parte y la comparto contigo.

25comentarios:

  1. Gracias por tanta info!!!

    Un abrazo!

    Fer

    ResponderEliminar
  2. Gracias por la información, pero mi pregunta es, en el caso de ponerlo hasta un año, ¿dentro de un año debo volver a cambiar la fecha en el codigo html?.

    ResponderEliminar
    Respuestas
    1. Hola Jose L., Como comento en el artículo, al no poder sobreescribir las cabeceras HTTP poco se puede hacer. De todas maneras, si utilizas la meta-etiqueta expires (yo lo hago), debes poner como máximo un año y pasado ese año modificarlo manualmente para otro (no debes poner más de un año según las normas de calidad). ¿Utilizas Blogger?.

      Un saludo!,

      Eliminar
    2. Amigo... como se hace para modificar el cache de cada elemento, por ejemplo imágenes ? o adsense?
      porque google hace diferencia , en la explicación que da dice que es bueno darle poco tiempo a los Ads y mucho a cosas que no van a cambiar.
      saludos

      Eliminar
    3. Si es Blogger, no puedes editar el .htacces de tu servidor web para poder gestionar tu Caché. Si es una web en la que puedes tocarlo, sí puedes gestionar cada punto editando el .htacces.

      La cache para un anuncio carece de importancia, sí ayuda que aquellos elementos que te marca Pagespeed les incrementes el "tiempo de cacheo".

      Te recomiendo esta lectura: http://diariosdelanube.blogspot.com.es/2013/09/la-guia-de-rendimiento-para-bloggers_17.html aunque aplicable a Blogger, viene bien para todo tipo de publicaciones web.

      Un saludo y cualquier cosa aquí me tienes.

      Eliminar
  3. Si utilizo blogger, con el subdomino gratuito blogspot.com, igual que este blog. He visto algunos post interesantes en tu blog que pueden ayudarme para alguno de mis blogs, te agrego a mis favoritos para seguirte de cerca, hasta otra y muchas gracias, puse la fecha dentro de un año menos un dia, ya la cambiare el año que viene :), si me acuerdo.

    ResponderEliminar
    Respuestas
    1. Ya te digo, con lo de la caché poco hay que hacer sin poder reescribir las cabeceras HTTP con un archivo .htacces. Pero puedes mejorar y mucho la velocidad haciendo guías como estas:

      http://diariosdelanube.blogspot.com.es/2013/05/mejora-la-velocidad-de-tu-blog-i.html

      http://diariosdelanube.blogspot.com.es/2013/05/mejora-el-rendimiento-de-tu-blog-ii.html

      http://diariosdelanube.blogspot.com.es/2013/06/mejora-la-velocidad-de-tu-blog-iii.html

      http://diariosdelanube.blogspot.com.es/2013/06/mejora-la-velocidad-de-tu-blog-iv-que.html

      Con esto sí puedes conseguir buenos tiempos para tus usuarios.

      Cualquier cosa que necesites me dices. Un saludo!

      Eliminar
  4. Gracias, lo acabo de hacer, espero que pageSpeedInsights me lo tenga en cuenta

    ResponderEliminar
    Respuestas
    1. Hola Aurora,
      tal como indico en la guía, en Blogger no es posible controlar la caché. Para ello tendrías que tener capacidad de acceder al archivo .htacces de tu servidor o reescribir cabeceras http. La meta etiqueta no será capaz de resolver ese asunto (como comento en la guía). Pero no te preocupes, la puntuación que pierdes por ello no es tanta.

      Para mejorar el problema de la caché, intenta reducir la cantidad de objetos o componentes que utilizas en el Blog. Si quieres para Pagespeed lo mejor es que hagas esta guía: http://www.diariosdelanube.com/2013/09/la-guia-de-rendimiento-para-bloggers.html

      Un saludo y muchas gracias por participar. Cualquier duda aquí me tienes.

      Eliminar
  5. Hola, es interesante todo ésto para blogger... la verdad que no era una meta etiqueta que tenía en mi mente.
    Ahora bien, me llama la atención que tú no la estés usando en este sitio web. Entiendo que este sitio está bajo blogger, entonces pq no la usas?

    ResponderEliminar
    Respuestas
    1. Hola,
      actualicé este post para indicar que aunque se active a nivel de meta etiqueta de nada sirve porque tiene que ser por medio de las cabeceras HTTP (tocando el .htacess o similar).

      Para optimizar el rendimiento del Blog te recomiendo este post --> http://www.diariosdelanube.com/2013/09/la-guia-de-rendimiento-para-bloggers_17.html

      Un saludo y muchas gracias por participar.

      Eliminar
  6. Hola, amigo como uno espesifica una fecha, es muy complicado.

    me podrias hacer el favor de decirme cual es el dia de la semana, porque es confuso por la palabra (Sat) que esta en la etiqueta Sat, 20 May 2014 22:25:27 GMT, que significa eso??????

    ResponderEliminar
    Respuestas
    1. Hola Kelvin,
      es que esa fecha es un "timestamp". Es un tipo de fecha que se utiliza en los sistemas informáticos porque identifica unívoca e inequívocamente una acción en un momento del tiempo exacto. Este timestamp no es muy grande pues no marca milisegundos pero aún así tiene bastantes datos. Sat es el día (Saturday), 20 May 2014 (20 de Mayo de 2014) y 22:25:27 GMT indica que en horario del meridiano de Greenwich se hizo a las 22:25:27 horas de la noche.

      No obstante, ya sabes que en Blogger, como indico en la guía, aunque utilices las metaetiquetas expires o last modified, no podrás alterar el control de la caché porque no permite tocar el archivo .htaccess del servidor.

      Tampoco debe preocuparte porque el navegador y el buscador se ocupan en parte de suplir la carencia.

      Un saludo y para cualquier cosa aquí estoy.

      Miguel.

      Eliminar
  7. Te agradezco la información, muy util
    seguiré perfeccionando mi blog a mis usuarios, para una mejor carga
    saludos y gracias nuevamente

    ResponderEliminar
  8. Hola amigo ,gracias por toda tu información, no la había encontrado en ninguna parte aún. Entonces déjame ver si entendí completamente: esto ayuda en la práctica a que cargen más rápido nuestras páginas, pero los medidores de velocidad páginas seguirán mostrando la advertencia ? es eso verdad

    desde ya , muchísimas gracias por compartir todo tu conocimiento :D

    ResponderEliminar
    Respuestas
    1. Hola,
      la caché en Blogger no se puede activar, ni con meta-etiqueta ni con nada porque es algo que se controla a nivel de servidor y afectaría a todos los blogs. Si quieres controlar bien el rendimiento de tu web, para Blogger tienes esta guía: http://www.diariosdelanube.com/2013/09/la-guia-de-rendimiento-para-bloggers_17.html y también esta otra: http://www.diariosdelanube.com/2014/07/como-mejorar-el-rendimiento-de-tu-sitio.html

      Cualquier cosa que necesites me tienes también en los comentarios.

      Un saludo y gracias a ti por participar.

      Eliminar
  9. Muchas gracias por la info, se te agradece

    ResponderEliminar
  10. Muy util toda esta conversación sobre como mejorar la velocidad de Blogger. Me fue muy útil Gracias.
    Una pregunta. Google le permite descargar con la herramienta https://developers.google.com/speed/pagespeed/insights/
    un archivo .zip con las imagenes, CSS y JavaScript.... Pregunto: ¿Que hago con esos archivos? donde los coloco... Agradezco la respuesta del foro y de su administrador...

    ResponderEliminar
    Respuestas
    1. Pues quitaron recientemente la aplicación descargable que añadía una extensión al Chrome para descargarte los recursos optimizados y medir el rendimiento.

      Como esa aplicación está retirada, ahora proporcionan los recursos optimizados por ese enlace que has visto.

      Lo que hace es darte todo lo que "sale mal", "arreglado". Te da las imágenes optimizadas de tu web, los estilos comprimidos y el javascript para que lo coloques en ella.

      En blogger, como no es HTML puro, no puedes colocarlo como en cualquier otro medio de publicación HTML. Debes seguir los pasos que explico en la guía de rendimiento y colocar los optimizados segun explico en cada paso. Haré una guía en el futuro pero ahora puedes hacerlo tal como he comentado.

      Un saludo!

      Eliminar
  11. hola gracias por el articulo, pero es un poco molesto ir cada mes para modeficar la fecha...
    y que pasaria si nos olvida ?? el sitio no carga o que??

    ResponderEliminar
    Respuestas
    1. Hola, no es posible introducir cabeceras http en el html. Sólo puedes hacerlo tocando un archivo que se llama .htaccess y al que no tienes acceso en Blogger. Por tanto, no te preocupes por ello.

      Gracias por participar.

      Eliminar
  12. Hola Pedro , no sirve la utilización de la metaetiqueta, sólo puedes hacerlo retocando un archivo concreto del servidor que en Blogger no puede tocarse.

    Un saludo.

    ResponderEliminar

 

© 2015 Por: Miguel García Sánchez - Colomer en Diarios de la nube Todos los derechos reservados.