如何避免Google Ads降低我的网站(特别是移动网站)的速度?

时间:2018-11-30 10:16:07

标签: pagespeed google-pagespeed

我知道许多网站管理员都认为页面速度没有任何意义。不过,我有信心,这一因素是Google决定对任何网站进行排名的TOP 3之一。

我讨厌看到Google自己的服务如何降低我的页面速度。我写干净的代码。当我启动任何网站/应用程序时,它在GTMetrix和Pingdom上的得分为“ A”,在Google Page Speed(移动版)上的得分为100/100。通常,Google Ads不会损害桌面版本。

但是,一旦我添加了至少一个Google广告,我的排名就会降为“ C”和60-67 / 100(移动)。

当然,可以说Page Speed不是SEO排名因素。好的,对于NYT,《华尔街日报》,《喧嚣》,《 HuffPost》等等。但是对于任何新网站,速度都是至关重要的因素。

不公正的是Google指出了自己的服务,这减慢了我(和您)的项目,例如:

有6个静态组件,没有到期日。

https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js
https://code.jquery.com/jquery-3.3.1.min.js (not Google)
https://adservice.google.ca/adsid/integrator.js?domain=xxx
https://adservice.google.com/adsid/integrator.js?domain=xxx
https://pagead2.googlesyndication.com/pub-config/r20160913/ca-pub- 
xxx.js
https://fonts.googleapis.com/css? 
family=Open+Sans:400,700|Roboto:700&lang=en

减少DNS查找:

pagead2.googlesyndication.com: 6 components, 368.9K (136.4K GZip)
code.jquery.com: 1 component, 86.9K (30.2K GZip)
adservice.google.ca: 1 component, 0.1K (0.1K GZip)
adservice.google.com: 1 component, 0.1K (0.1K GZip)
googleads.g.doubleclick.net: 11 components, 173.4K (45.9K GZip)
fonts.googleapis.com: 1 component, 7.0K (0.6K GZip)
tpc.googlesyndication.com: 5 components, 153.0K (57.0K GZip)
www.google.com: 1 component, 0.2K

避免URL重定向:

https://www.google.com/pagead/drt/ui redirects to 
https://googleads.g.doubleclick.net/pagead/drt/si

减少JavaScript执行时间:

/pagead/ads?client=…(googleads.g.doubleclick.net)
/pagead/ads?client=…(googleads.g.doubleclick.net)
…js/adsbygoogle.js(pagead2.googlesyndication.com)
…r20100101/osd.js(pagead2.googlesyndication.com)
…r20180604/show_ads_impl.js(pagead2.googlesyndication.com)
…activeview/osd_listener.js(tpc.googlesyndication.com)

等,等等,等等...

我知道我无法在他们这边编辑代码。但是,也许有某种方法可以推迟Google Ads或采取其他任何措施来减少Google自身服务的危害?至少有人在Google Page Speed(移动版)上获得100/100分,并且在一个页面上拥有2-3个Google Ads吗?

2 个答案:

答案 0 :(得分:0)

我最近进行了一些测试并仔细研究了这些问题。因此,有与此相关的一些解决方案和建议。

主要目标是为了最大程度地降低对网站速度的影响,并将所有转化脚本和第三方脚本移至较低优先级负载,例如,将其添加到页脚部分而不是顶部所有这些服务都建议这样做。从跟踪和分析的角度来看,以较低的优先级加载这些脚本不会造成太多损失。可能您会增加一些可能性,即某些转化将不会被跟踪并且会丢失在您的报告中,但与此同时,您将提高所有用户的网站速度。例外是将Google Analytics(分析)或Google跟踪代码管理器放在首位,因为从功能和跟踪的角度来看,这可能是更高的优先级并且很重要。

另一个重要且好的做法是,以检查并删除您没有有效广告系列的所有标签,并仅将这些跟踪脚本保留在网站上,从营销和跟踪的角度来看,重要的是什么才有意义。

我建议控制所有这些第三方脚本的方法是使用Google跟踪代码管理器并管理所有认为可行的标记。

在Google跟踪代码管理器中使用第三方脚本时,如何优化网站速度:

  1. 对所有脚本加载进行优先级排序,并按优先级对其进行排序
  

使用Google跟踪代码管理器的页面视图触发器在页面处于空白状态时触发代码   加载到网络浏览器中。跟踪页面的三种触发类型   加载事件,并且每种类型具有略有不同的条件   确定触发器何时应触发代码:

     

页面视图:当网络浏览器开始加载   页。如果仅需要从页面生成的数据,请使用此选项   印象。

     

DOM就绪:浏览器完成后触发   用HTML和文档对象模型(DOM)构造整页   准备解析。与DOM互动的基于浏览量的标签   填充变量应使用此触发器类型,以确保   正确的值可用于标签管理器。

     

已加载窗口:页面完全加载后触发,包括所有嵌入式资源,例如图像和脚本。

     

要创建新的页面视图触发器,请执行以下操作:

     
      
  1. 单击触发器,然后单击新建。
  2.   
  3. 单击“触发器配置”,然后选择一个页面视图触发器类型。
  4.   
  5. 可选,但建议提高性能:为您希望点击的页面指定条件(通常为URL模式)   发生:

         
        
    • 在“此触发器触发”标题下,选择“某些事件”。
    •   
    • 在“发生事件且所有这些条件都为真时触发此触发器”下,添加一个过滤器以仅在   需要它的页面,例如点击URL包含/ path / to / promo。
    •   
  6.   
  7. 保存触发器并发布。

  8.   

来源:https://support.google.com/tagmanager/answer/7679319?hl=en

我建议仅对最重要的标签(例如Google Analytics(分析))使用“页面视图”触发器。对于所有其他标签,您至少应使用“ DOM就绪”或更可能的“页面加载”触发器。使用“页面加载”触发器将对所有这些第三方标签对您的网站速度产生较小的影响,但是如果用户尽快关闭“感谢页面”,然后加载跟踪脚本,则您将无法跟踪某些转化的可能性

有时也应将HotJar之类的脚本或类似的热图脚本与Page View脚本一起使用,以提高这些分析数据的准确性。

如果您在网站上添加了一些聊天或支持工具,则对于这些脚本,也应使用“页面加载”触发器。

  1. 根据需要查看和更新​​脚本。

您应该查看,更改或暂停未使用的标签,或者这些第三方工具没有任何活动的广告系列。

使用资源提示:DNS预取和/或预连接

此外,对于所有从其他域加载的第三方资源,您都应该使用这些资源提示。由于同一浏览器均不支持这两种浏览器,因此建议同时使用它们。

简而言之,您应该将这些用于所有域,如减少DNS查找所述。

应该添加在代码上的代码应如下所示:

<!-- Prefetch DNS for external assets -->
 <link rel="dns-prefetch" href="//fonts.googleapis.com">
 <link rel="dns-prefetch" href="//www.google-analytics.com">
 <link rel="dns-prefetch" href="//cdn.domain.com">

<!-- Preconnect for external assets -->
 <link rel="preconnect" href="//fonts.googleapis.com" crossorigin>
 <link rel="preconnect" href="//www.google-analytics.com" crossorigin>
 <link rel="preconnect" href="//cdn.domain.com" crossorigin>

答案 1 :(得分:0)

我在许多站点上特别注意到fonts.googleapis.com,这些站点将页面加载挂起长达10秒钟以上。这很烦人,因为我的uBlock Origin广告拦截器不会阻止它。

您可以做的一些事情是将内容托管在自己的服务器上(字体,JQuery),但是这样人们就不会将它们缓存到经常访问的库中。 (可能每个人都已经从CDN的缓存中获取了最新版本的JQuery,因为所有网站都在使用它。)您可以尝试托管广告脚本,但是Google可能会经常更改它们,或者包含一个每个唯一用户的哈希值,这将使该操作变得不可能。如果它们不是每个用户唯一的,则可能需要在后台频繁刷新它们,可能每小时或每天刷新一次。不确定。

还要将<script>标记放置在页面底部,甚至在</body>之后但在</html>之前。这将最后加载脚本并最后加载广告。

您可以做的另一件事是放置一个JQuery $(document).ready() {...}函数,将广告<script><iframe>(?)标签插入到之后的适当位置文档已加载。然后,它们将不会计入您的页面速度加载时间。使用<div class="ad"></div>占位符。