PageSpeed 黑客技巧:延迟加载 HubSpot 表单而无需编辑页面

消除那些阻塞渲染的 HubSpot 脚本

Arjen Karel Core Web Vitals Consultant
Arjen Karel - linkedin
Last update: 2024-11-27

简述"延迟加载 HubSpot 表单"

HubSpot 表单是将表单直接集成到 HubSpot CRM 的绝佳方式。在 HubSpot 中,您可以轻松创建表单并使用一些 JavaScript 代码将其直接放置到您的网站中

只有一个小问题。HubSpot 不喜欢 Core Web Vitals,HubSpot 表单会拖慢您的网站速度。

HubSpot 表单默认是阻塞渲染的。修复 PageSpeed 需要重写每个出现 HubSpot 表单的页面。

有时这不是一个即时选项。我创建了一个直接替换方案,可以在不更改任何页面级代码的情况下加快表单速度。

HubSpot

HubSpot 表单代码,慢速方法

在网站上放置表单的默认 HubSpot 代码如下所示:

<script 
   type="text/javascript" 
   src="//js.hsforms.net/forms/v2.js">
</script>

<script>
  hbspt.forms.create({ 
    portalId: '123456',
    formId: '123456'
  });
</script>

这将导致 Lighthouse 警告"消除阻塞渲染的资源"。HubSpot 表单会阻塞页面渲染整整一秒钟。

阻塞渲染的 HubSpot 表单

您的第一个想法可能是延迟加载 HubSpot 脚本。这不会起作用并会抛出错误,因为 hbspt.forms.create() 期望 HubSpot 脚本已加载。让我们来修复这个问题!

HubSpot 表单代码,快速修复

有时候就是没有时间筛选数百个页面并为每个 HubSpot 表单重写代码。这就是为什么我创建了一个直接替换方案,用于更快、非阻塞渲染的 HubSpot 表单:

想法很简单。表单通过调用 hbspt.forms.create 来调用。让我们捕获这些表单,等待 HubSpot 代码在后台加载,然后执行表单脚本。

<script>
// 在 hubspot 加载时覆盖 hbspt 功能
var hbspt = {
   //将表单推送到 hubcache 队列
   forms:{create:function(c){hubspot.forms.push(c)}},
};

// 在此缓存 hubspot 表单
var hubcache = {
        forms:[],
        letsgo:function(){
            for (var i in hubspot.forms){
              //hubspot 现在已加载
              hbspt.forms.create(hubcache.forms[i]);            }            
        }
    }
</script>
<script 
   type="text/javascript" 
    
   src="//js.hsforms.net/forms/v2.js" 
   onload="hubcache.letsgo()">
</script>

不要忘记为表单预留一些空间,因为它不再阻塞渲染,如果您之前忘记预留空间,会导致比以前更大的布局偏移。

HubSpot 表单代码,正确的方法

我不太喜欢实现这样的黑客技巧(尽管我确实喜欢编写它们)。有时它们是必要的,因为没有足够的时间重写网站。因此,在承诺使用可能导致各种问题的外部应用程序/插件等之前,请始终考虑 PageSpeed。如果您不确定 PageSpeed 的影响,只需询问像我这样的人。我们知道 :-)

正确的方法是使用 HubSpot API () 来处理表单。像往常一样创建您自己的表单,然后将表单提交到

Performance is a Feature.

Treating speed as an afterthought fails. Build a performance culture with a dedicated 2-sprint optimization overhaul.

Initialize Project >>

  • 2-Sprint Overhaul
  • Culture Building
  • Sustainable Speed
PageSpeed 黑客技巧:延迟加载 HubSpot 表单而无需编辑页面Core Web Vitals PageSpeed 黑客技巧:延迟加载 HubSpot 表单而无需编辑页面