Google Analytics应该放在网页的头部还是尾部?

53

我的问题是,您将Google Analytics JavaScript代码放在页面头部还是在页面底部(在</body>之前)。我听说过有人说最好将Google Analytics JavaScript代码放在html的末尾。其他人说最好将其放在页头中。是否有最佳实践?


相关内容:https://dev59.com/LXVC5IYBdhLWcg3w7V1q - ajax333221
8个回答

82
将其放在您的头部。它是异步的,因此不会阻止页面加载,并将其放在头部中,您更有可能获得准确的统计数据。

7
与其错过很多目标,不如有一些错误的结果。 - John Conde
7
如果您想要将Google Analytics用于身份验证Google网络管理员工具(用于SEO和网站分析等),则需要将其跟踪代码放置在<head>标签中。这表明,从一开始就将其放在正确的位置上是比较合适的。请参见http://support.google.com/webmasters/bin/answer.py?hl=en&answer=185871。 - Chris
我认为这是一次点击和跳转,您可以使用分析统计数据来跟踪它。 - Charlie Schliesser
3
大家好。我们现在已经进入了2020年,这个答案应该标记为过时的。 - AldorEla
1
@ElaAle 在没有验证的情况下废弃答案对我来说毫无意义。它会出现在Google SERP上,我认为至少应该有一条评论解释为什么这个答案已被废弃。 - Jarmos
显示剩余2条评论

31

这是 Google 关于此事的说法

一旦找到代码片段,请将其复制并粘贴到您的网页中,在闭合的 </head> 标签*之前。如果您的网站使用模板生成页面,请在包含 <head> 部分的文件中,将其输入在结束标记之前。为了在所有浏览器上获得最佳性能,我们建议您按以下方式之一定位网站中的其他脚本:

  1. 在 HTML 的 <head> 部分中跟踪代码片段之前
  2. 在跟踪代码片段和所有页面内容(例如在 HTML 主体底部)之后

这里是 *:

*异步代码片段的主要优点之一是可以将其放置在HTML文档的顶部。这增加了跟踪信标在用户离开页面之前发送的可能性。通常将JavaScript代码放置在部分中,我们建议将代码片段放置在部分底部以获得最佳性能。

8
区别很简单,答案取决于您的需求。假设有人误点击了您的网站并迅速关闭了它。如果脚本在顶部,则表示有访问者;如果脚本在底部,则表示没有访问者。我将脚本放在底部,因为对我来说,如果有人不看我的网站,那么他就不是访问者。

7
不同意。我希望知道有人来了然后“跳出”。这可能表示页面加载或其他方面存在一些问题。在你的例子中,你根本不会知道。在Google Analytics中,你可以看到多少比例的访问者是“跳出者”,这是非常有用的信息。 - matt burns
1
多年以后回应@matt,我理解你的观点,根据你想要做什么与数据有关的事情,这确实很有道理,但是我把性能放在第一位,因为我的许多网站并不是非常“数据驱动”,通常人们只想知道他们有多少访问者,并不会根据用户活动来制定活动计划。 - Edu Ruiz
1
是的,随着岁月的流逝,我现在可以看到双方的争论了 ;) 我也会优先考虑性能而不是分析数据中的轻微不准确之处。尽管大多数网站首先需要进行“减肥”,并且可以在其他地方获得更好的性能提升。(假定使用异步分析;)) - matt burns

3

根据Google Analytics

跟踪代码的放置位置

跟踪代码旨在在页面内容加载完成后读取数据。因此,代码片段应该位于网页的结束标签之前。一旦页面内容加载完成,执行跟踪代码时,它将按照文档对象模型(DOM)读取页面内容。所有与跟踪相关的信息都用于建立页面信息、设置/更新 cookie,并将GIF请求发送到Google Analytics服务器。

将脚本放在页面正文结尾处可以确保跟踪代码作为DOM的最后一个元素执行。如果某个页面加载由于某种原因中断,则可能无法执行该页面视图的GIF请求。但是,如果您将跟踪代码放在页面顶部,任何加载中断都可能导致不完整或不准确的报告,因为跟踪代码依赖于页面数据来生成报告。

此外,将跟踪代码调用物理放置在页面底部比使用onLoad()函数调用跟踪代码更有效。如果使用onLoad()执行跟踪代码,则执行依赖于浏览器的事件模型而不是DOM。在这种情况下,如果远程图像在页面上未能加载,将不会调用onLoad(),而页面的DOM仍然可以完全加载。


那些主张代码应该在头部的人,也就是在关闭头标签</header>之前,应该更新他们的头部并更新他们的答案。建议别人按照你的方式去做而这不是标准或最佳方式是不可接受的。标准和最佳方式应该根据服务提供商的建议来确定,而不是根据你的感觉或想法... - Josh15

2
为了最佳实践,您必须了解新的异步代码,这将清除大部分早期页面加载和性能问题。虽然Google官方推荐说应该放在<head>标签关闭之前,但是有几个例外值得注意。
  1. 对于一般目的的代码使用,将代码放置在head标签之前是合理的,并且可以完美地工作。
  2. 但是,如果存在事件跟踪或电子商务转化跟踪以及涉及自定义代码,则建议将其放置在</body>标签之前以获得更好的结果。
注意:在搜索控制台中,点击量和真实用户仍会存在10-20%的差异,但定期集成Google AdWords已显示出100%的精度和准确性,因此如果您正在为您的网站使用Google AdWords,请尝试集成它们。同时阅读Google Analytics Header or Footer

“Note”部分的语法需要进行一些编辑。当前情况下,不太清楚要传达什么。 - SherylHohman
已经用Grammarly核对过了,但我理解你的意思了,谢谢Sheryl。 此外,在这里检查更多有关差异的信息 https://support.google.com/analytics/answer/1034383?hl=en - sachin arora
抱歉,我正在努力……我不理解这个“……使用搜索控制台的点击和真实用户占10-20%,但是常规……”我根本无法解析这个长句子,特别是那部分,也许只是我自己的问题。很抱歉。有没有其他重新表述它的方式?也许将其分成单独的句子?似乎有三个或更多不同的想法在这里结合在一起,以一种我无法理解的方式。我是一个母语为中文的人,通常能够理解非母语为中文的人试图传达的意思,但是在这里我真的无能为力。谢谢您的帮助。 - SherylHohman
也许是这样吧?“搜索控制台点击次数和真实用户数量之间仍然会存在10-20%的差异。但是,通过定期集成Google Adwords,已经证明可以实现100%的准确性。因此,如果您正在为您的网站使用Google Adwords,请尝试将它们全部集成在一起。”这是否接近您要传达的内容? - SherylHohman
是的,您需要在同一账户中连接分析、搜索控制台和Google AdWords,以获得100%的准确性,否则会出现10-20%的差异。它们必须在同一个Gmail账户中连接。 - sachin arora

1
"随着时间的演变,事物发生了变化。在我的GA账户上,到2016年,当我获取代码时,他们说:'这是此属性的通用分析跟踪代码。要获得此属性的所有通用分析收益,请将此代码复制并粘贴到要跟踪的每个网页中。' GA代码请使用上面的代码创建名为“analyticstracking.php”的文件,并将该文件包含在每个PHP模板页面中。在每个模板页面的开头标签<body>之后立即添加以下行:"
<?php include_once("analyticstracking.php") ?>

0
我认为最好将其放在页脚 - 这样赌徒可以获得整个页面并有机会查看所有内容。这样可以减少因选择错误网站而导致的误报的可能性。

0

我会将它放在页脚,即</body>标签之上,这样一旦跟踪代码加载完成,整个页面就已经加载完毕,以便于分析跟踪代码进行跟踪。


这实际上是我一直以来的做法,但我也看到很多人把它放在头文件中。 - Tyler
1
因为他们正在使用异步代码,将跟踪代码放在头部不会减慢页面的加载速度。通常情况下,JavaScript 按顺序逐个加载。一次只能加载一个 JavaScript。此外,JavaScript 占用了浏览器的主机,因此当 Web 浏览器加载 JavaScript 时,Web 浏览器不会加载其他任何内容。由于他们的 JavaScript 是异步的,所以他们可以这样做,并且知道在此过程中不会减慢其网站的速度。 - desbest
desbest仍然会对您的页面得分产生轻微的负面影响。 - Galactic Ranger

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接