每当我运行Google Page Speed或YSlow时,建议的许多优化源自我对Google Adsense和Google Analytics(分析)的使用。

例如,YSlow说有“ 9个外部Javascript脚本”-我只有一个在我的网站上,所以其余的显然来自adsense或分析。同样在“减少DNS查找”下,列出了以下域:


pagead2.googlesyndication.com
www.google-analytics .com
altfarm.mediaplex.com
img-cdn.mediaplex.com
eu.bid.invitemedia.com
ad.doubleclick.net
s0.2mdn。 net
pixel.invitemedia.com
adadvisor.net


我能做些什么来减少这些或提高速度吗?

#1 楼

可以设置Google Analytics(分析),使其异步加载,这将有助于改善这种情况。他们目前似乎没有类似的AdSense脚本。

评论


您是否真的因为Google adsense看到网页加载时间显着延迟?我对此表示怀疑。

–删除
2010年7月25日在5:09

在较旧的浏览器或设计欠佳的网站上,AdSense最终可能会成为阻止脚本,从而阻止其他页面元素下载完成。可能会影响页面绘制时间。我没有注意到太多;但是,这不是我的问题,是DisgruntledGoat的问题。 :)

–Virtuosi Media
2010年7月25日在5:59

@Kinopiko:不,我没有遇到很大的延迟,尽管如果我的连接速度变慢了一点,那么在加载广告时就很明显了。正如问题所言,我之所以问是因为Yslow / PageSpeed中的建议大部分与不确定的元素相关。

–心怀不满的山羊
2010年7月25日在15:55

这可能是微优化,但是如果您喜欢异步Google Analytics(分析)代码段,请查看我的答案以获得更快的版本:webmasters.stackexchange.com/questions/1555/…

–leek
2010年9月3日在8:29

#2 楼

异步加载Google Analytics(分析)是一个不错的开始。除此之外,页面加载需要多长时间?如果您花费的页面不到2秒,则您可能不想再花时间对其进行优化。

如果您担心它的加载速度较慢,请访问http://www.webpagetest.org/,以针对全球其他地区和其他互联网速度来测试您的网页。此页面还将向您显示网站的每个块加载所花费的时间。

您必须记住,以“完美的速度”加载页面可能没有用,因为这会增加成本时间和精力太高了。根据Google的说法,如果您的页面可以在2秒以下出现,那么您将进入网站排名前20%的网站,这可能就足够了。如果不是,请查看还有哪些地方可以提高页面速度。有时候修复一堆较小的东西会使您的网站速度足够快。

放置它的最佳方法是,选择低下的水果,而Google Adsense并不是真正的低下。通过使其异步,Analytics已经并且应该很容易修复,也许您应该保留它。

#3 楼

如果您喜欢异步Google Analytics(分析)脚本,请在此处查看Mathias Bynens优化。显然,您应该了解Google是否对代码段进行了重大更改-但就目前而言,他的优化相对于Google的同一脚本版本,可提高40%的速度(对我而言)。

评论


太好了,我们将把它作为我们想要加载而不是阻止的JavaScript的通用代码模式(基本上是ads ..)

–杰夫·阿特伍德
2010年9月3日在8:35

#4 楼

通常,这些广告脚本中有很多是有目的地“缓存无效化”的,因此每次都会对服务器进行一次命中以注册视图。自己要面对很多外部JavaScript的麻烦,除了减少广告区域的数量(TOS仅允许每页3个)或根本没有运行adsense之外,您实际上无能为力。

您可以尝试将您的google ads javascript包装在您自己的托管javascript中,用于执行文档的每个区域。编写并输出所需的代码。我很确定这会导致它在正文加载后加载,因此意味着您的页面将首先加载。

#5 楼

只是一点-有一个新版本的Google Analytics(分析)代码可以提高其加载速度-因此可能值得更改。

#6 楼

如果存在问题,您可以执行的操作是在不加载这些脚本的情况下加载页面,然后在页面完全加载后使用Ajax将脚本导入到页面中。例如,假设您拥有页面上的一个空div,如下所示:

<div id="adsenseBanner"></div>


,然后再添加如下所示的javascript:

$(document).ready(function(){
    $('#adsenseBanner').append('<script>alert("this");</script>')
});


我添加了一个JavaScript警报,因此您可以看到它正在执行,但是您当然可以将其替换为需要加载的脚本。

这样,可以确保这些外部资源不会减慢您的页面加载速度,但要以加载一个额外的脚本为代价。

评论


我不知道$()是标准的JavaScript函数...

–汤姆
2010年9月3日,12:17

@Tom:不是,它是JQuery。现在有没有人愚蠢到可以直接用JS编写代码?

–西尔弗
2010-09-06 15:12

并非所有人默认都使用jQuery

–汤姆
2010年9月9日上午10:07

@汤姆:那是面颊。是的,说“ JQuery”而不是JavaScript会更准确。

–西尔弗
2010-09-12 6:08