2010-09-12 9 views
10

¿Existe razón para poner google analytics en la cabeza y no en el final del cuerpo? (I trabaja en gran sitio web que sus obras de esta manera)¿Hay alguna razón para poner Google Analytics en la cabeza y no en el cuerpo?

Opción 1:

<head> 
<script src="http://www.google-analytics.com/ga.js"></script> 
</head> 

Opción 2 - en el fondo del cuerpo:

<body> 
//html code 

<script src="http://www.google-analytics.com/ga.js"></script> 
</body> 

Edit1: También la misma pregunta con jquery ui

Edit2: añadir ga.js. en el final del guión (fix)

Gracias

+0

Ver [ código de Google Analytics: ¿puede ir antes en el documento? ] (http://stackoverflow.com/questions/1708771/) y [ ] ¿Google Analytics tiene un efecto importante en el tiempo para descargar una página web estática? ] (http://stackoverflow.com/questions/374084/). La conclusión es que Google recomienda ponerlo en el extremo del cuerpo para que no bloquee el resto de la página. Pero está bien ponerlo en la cabeza. Además, ahora GA tiene una versión asíncrona (consulte [esta pregunta] (http://stackoverflow.com/questions/2191325/)), que le permite colocar el código GA antes y cargarlo en paralelo en los navegadores modernos. –

Respuesta

6

Sugiero usar el código asincrónico de Google Analytics.

Asynchronous Google Analytics

Si se utiliza el código no asíncrona y ponerlo en la sección de cabecera, que puede bloquear la carga de su sitio web si el código ga sería lento para cargar, ya que espera hasta que los guiones son cargado. Y debido a que Google Analytics es un script externo, es posible que no tenga influencia en el rendimiento de la carga (normalmente no debería importar, pero puede suceder que incluso Google tenga problemas con el servidor).

Así que no, no veo una razón real para hacerlo de esa manera.

+0

1. Así que tengo que poner en este caso: http://www.google-analytics.com/ga.jsin head? 2. ¿Cómo sabe navegar el navegador asyn = verdad? Gracias – Yosef

+0

Su uso de esta manera como en el artículo – Yosef

+0

Hola, el async = true es un atributo HTML5. El truco de no bloquear el sitio web mientras se carga el javascript se debe a la creación dinámica de la etiqueta del script. – enricog

2

No hay una buena razón para ello. Google mismo recomienda colocar la etiqueta en la parte inferior del cuerpo para evitar cargarla desde el principio y ralentizar la carga de la página.

Probablemente fue así porque alguien está acostumbrado a poner etiquetas <script> en el encabezado.

+0

No, otros ls excepto ui + jquery dentro del cuerpo – Yosef

+2

Esto ya no es cierto. Al usar el nuevo código asíncrono, Google recomienda colocarlo en la parte inferior de '', justo antes de la etiqueta de apertura ' '. – Yahel

0

Se recomienda poner tales scrips lo más bajo posible en el html por razones de rendimiento. Los scripts que deben cargarse interrumpen otras descargas en el navegador. Le sugiero que eche un vistazo a este artículo: Best Practices for Speeding Up Your Web Site.

+0

Lo sé, porque eso respondo. El sitio web está construido por buenas exportaciones, así que conozco el artículo. Demasiado deberían ser algunas de las razones que ponen en el encabezado porque la mayoría de js en el cuerpo. – Yosef

30

Incrustar el código ga.js de la manera que usted describe (con una etiqueta codificada <script>) es de hecho un bloqueo, y si carga el script de esa manera, se considera que la mejor práctica es cargarlo justo antes de la etiqueta </body> . Pero esta no es la práctica recomendada si está utilizando el nuevo código asíncrono. Google explicitly recommends placing the new asynchronous code in the <head>.

El nuevo código asincrónico no bloquea de dos maneras. Primero, pone en cola las variables para la página en una variable global _gaq. De esta forma, los datos se preparan de cualquier manera.

Luego, como se describe en este SO answer, usar javascript directamente para escribir el script como en el nuevo código asincrónico no es de bloqueo (este método de inyección directa es la forma de lograr asincronía, incluso en navegadores que no lo hacen) t observa directamente el atributo async). El resto del sitio puede seguir cargándose si, por alguna razón, los servidores de Google no funcionan o tardan en responder. Y eso es solo si el usuario ya no tiene caché ga.js, como muchos lo hacen, ya que ga.js se usa en muchos sitios web populares.

El beneficio de todo esto es que cuanto antes se carga ga.js y es capaz de transmitir el objeto _gaq a Google, es más probable que capture TODOS sus datos potenciales, como los datos de los usuarios quién hace clic muy rápido en tu página. Esto es particularmente importante para los sitios web 'grandes' que tienden a tener muchos usuarios regulares que siguen los hábitos de clic rápido.

Si es escéptico, pruébelo usando un inspector de carga de página como las herramientas de desarrollador de webkit. Lo he probado extensamente y no he encontrado evidencia de bloqueo significativo cuando uso el código asíncrono en el </head> como se describe.

+0

muchas gracias por una buena explicación – Yosef

Cuestiones relacionadas