Velocidad del Sitio en Google Analytics

Lo que al principio había que añadir de forma manual al código de Google Analytics desde hace meses es ya una funcionalidad integrada. Los que revisáis el WPO de vuestro sitio sabéis que en Analytics existe la pestaña de Contenidos -> Velocidad del Sitio pero que estos datos son “poco fiables”.

Voy a poner un poco más de situación. Hoy en día hay 3 lugares en Google para hacer mediciones de tiempos de carga. El más antiguo es el de Webmaster Tools, dentro de Salud -> Estadísticas de rastreo. Aquí hay 3 gráficos, y el último hace referencia al Tiempo de descarga de una página (en milisegundos). Esta gráfica viene a ser el tiempo que Googlebot tarda en llegar a tu sitio, descargar el contenido e irse. Esta cifra debería estar por norma general entre los 200 y 500 milisegundos para ir bien, y como muy alto sobre los 1.000 milisegundos (es decir, 1 segundo). Esta gráfica sobre todo es sensible a problemas de conectividad.

El segundo lugar donde encontramos información sobre el estado de la velocidad de carga es también en Webmaster Tools, pero en la pestaña Labs -> Rendimiento del sitio. En este caso los datos son muy poco fiables ya que las estimaciones se toman según datos de la Google Toolbar. Teniendo en cuenta que la Toolbar hoy en día no existe oficialmente para Chrome, Firefox o Opera, el tipo de usuario que nos deja es el de Explorer, que es alto, pero ya no es tan significativo. Estos datos por lo tanto son muy poco fiables ya que en general las cifras están muy hinchadas.

Para acabar tenemos la opción más razonable y fiable, ya que los datos lo aportan los propios usuarios que navegan por el sitio web, y son “la realidad” del sitio (ni mediciones genéricas de barras, ni del propio Google). Como decía, esta información está en Contenidos -> Velocidad del Sitio. Aquí tenemos muchos datos:

  • Tiempo medio de carga de página: Este es el tiempo desde que se lleva la petición hasta que la página queda cargada completamente (con imágenes, publicidad y todo).
  • Tiempo medio de redireccionamiento: Este es el tiempo que se lleva desde que se pide la página hasta que se empieza a descargar la información de la página final. Si hay páginas intermedias que redireccionan, se cuenta aquí.
  • Tiempo medio de búsqueda de dominio: Es el tiempo que se lleva la búsqueda de las DNS para una petición. Si hay muchas peticiones DNS distintas, el tiempo se eleva.
  • Tiempo medio de conexión de servidor: Es el “famoso” connect. Va relacionado con la configuración del servidor y la conectividad.
  • Tiempo medio de respuesta de servidor: Es el “famoso” waiting. Suele ir relacionado con el tiempo de proceso de la página, de caché y de comienzo de envío.
  • Tiempo medio de descarga de la página: Es el “famoso” send. El tiempo que va desde que se manda el primer byte hasta que se manda el último byte del contenido.

Hay dos temas a tratar con esta información. La primera de ellas es que os recomiendo hacer comparativas por país. En general los datos varían muchísimo dependiendo del país desde el que el usuario se conecta. Por ejemplo, si tu sitio web en general es para españoles en España y tienes tus servidores físicamente en España, es probable que los tiempos sean muy bajos; en cambio, si filtras el tráfico por México es probable que los tiempos se disparen. Esto básicamente es por un tema de física (sí, de eso que te enseñan en el cole y que piensas que nunca usarás) ya que por mucha velocidad de la luz que lleve la fibra óptica, desde España hasta México hay muchísimos kilómetros de cable que hacen que “todo vaya más lento” (lento puede ser tranquilamente 1 o 2 segundos, nada más).

Otro tema importantísimo: los datos que se recogen suelen rondar el 1% de las visitas, por lo que la muestra suele ser bastante pésima. Pero esto tiene una solución bastante clara: hay que decirle a Google que la muestra sea mayor. ¿Cómo se hace esto? Añadiendo una pequeña línea de código más al código de Google Analytics (esto que os pongo es para el asíncrono) de forma que haga un muestreo mayor. Para decidir qué porcentaje hay que poner, hay que hacer un cálculo más o menos basado en unas 100.000 visitas/día (que es la cifra que documenta Google). Si tienes hasta 100.000 visitas/día puedes marcar un muestreo del 100%. En caso de tener más pues la idea es que la muestra sea siempre de aproximadamente 100.000, es decir, que si tienes 200.000 visitas/día la muestra debe ser del 50%, si tienes 1 millón de visitas/día pues del 10%.

_gaq.push(['_setSiteSpeedSampleRate', 100]);
_gaq.push(['_trackPageview']);

En este caso el “100” que aparece en la variable setSiteSpeedSampleRate hace referencia al porcentaje de muestreo. Personalmente no os recomiendo que os paséis de poner las cifras que os he dicho porque Google parece estar controlando bastante la cantidad de información que se recoge y quién hace un uso excesivo (recordad que hay unos términos y condiciones de uso, y que si os pasáis os pueden dar un toque de atención).

Otra pregunta interesante que se os puede estar pasando por la cabeza es… ¿de dónde saca Google estos datos? Pues depende de varias cosas, principalmente del navegador. Hay datos que los saca directamente de la Resource Timing API. El resto los saca de las mediciones que hace el propio navegador (de ahí que esto sea sólo un muestreo y no fiabilidad del 100%).

Ahora que sabes cómo medir los tiempos de carga de tu sitio web ¿no vas a dedicar unos minutos a optimizar algunos de ellos?

Categorías Javier, WPO

9 comentarios en “Velocidad del Sitio en Google Analytics”

  1. Hola Javier, ¿cuáles serían el baremo máximo para cada opción dentro Contenidos -> Velocidad del Sitio en Google Analytics?

  2. Pues también tenía puesto un cron el cron a las 4 de la mañana cada día pero un día falló y se descargó mal. La página es puro javascript y se hacen varias llamadas a la api de analytics para registrar eventos. Vamos, que me petó todo, no cargaba nada y, del cabreo, comenté el cron. Ya hace un año, creo… Quizás más. Así que estoy bastante desactualizado :-)

  3. Gracias Javier. Me he animado a comentar por primera vez aunque hace tiempo que te voy leyendo. Se me había pasado por alto las estadísticas en analytics. Pero llevo notando desde hace tiempo que existe cierta correlación visitas / velocidad del sitio. En parte porque a la gente no le gusta esperar y en parte también porque google lo sabe. Hasta ahora iba vigilando las estadísticas de Webmaster Tools. Curiosamente mi analytics no me da datos de velocidad (me indica 0 en todas partes). Creo que podría ser a que estoy usando un ga.js antiguo (lo cacheo en la web)… Entiendo que no has tenido que añadir ninguna llamada a la API de analytics, no?
    Gracias por el aporte!

  4. Hola Javier!

    Los valores varían dependiendo del sitio. Hay algunos que no tanto. Por ejemplo, los tiempos de redirección han de tender a cero (o ser cero). Los de las DNS deberían ser de 0,06 segundos (entre 50ms y 100ms es correcto). El connect y el waiting también deberían tender a cero, ya que la mayor parte del tiempo debería dedicarse al send (enviar la información) y luego a “procesarla”.

  5. Hola José Luis!

    En principio no hay que hacer nada… y con respecto a lo que dices de descargar el ga.js, yo también lo hago, pero con un CRON lo actualizo al menos 1 vez al día, de forma que en principio está actualizado siempre y así no hay problemas con la información que recoge el sistema :)

    Lo de la relación visitas/velocidad, bueno, haciendo unos experimentos principalmente con Latam, el tráfico de allí subió en 0,5 páginas vistas/visita (que aunque pueda parecer poco, es bastante).

  6. En estos casos y para un mayor rendimiento de la home, recomiendo hacerla estática. Recomiendo usar herramientas (en linux) como wget -S para obtener el index.html y subirlo a nuestro site. Se sule mejorar en un 30-40%

  7. Pues yo tengo un blog con unas 730.000 visitas al mes. Y los tiempos de carga me salen altisimos, como de 15 segundos, incluso desde España.

    Por eso me sale un porcentaje de rebote altísimo. ¿Cómo puedo solucionar este desastre?

  8. Por cierto en page speed obtenia un 89/100 , y ahora tras unas mejoras y cambios en mi plugin W3 total cache estoy obteniendo 94/100.

    Así que no entiendo porque me marca una carga tan alta cuando mi web carga al instante.

Deja un comentario