Adiar Formulários HubSpot: Corrigir Bloqueio de Renderização Sem Editar Páginas

Uma correção drop-in para scripts de formulário HubSpot que bloqueiam a renderização

Arjen Karel Core Web Vitals Consultant
Arjen Karel - linkedin
Last update: 2026-03-10

'Adiar formulários HubSpot' em resumo

Os formulários HubSpot são uma ótima maneira de integrar formulários diretamente ao seu CRM HubSpot. No HubSpot, você pode criar formulários facilmente e inseri-los diretamente no seu site com algum código JavaScript.

Última revisão por Arjen Karel em março de 2026

Há apenas um pequeno problema. O HubSpot não se dá bem com o Core Web Vitals e o formulário HubSpot deixará o seu site mais lento.

Os formulários HubSpot causam bloqueio de renderização por padrão. O script do formulário (v2.js) tem aproximadamente 521 KB descompactado. Isso é quase o payload mediano inteiro de JavaScript de uma página mobile de acordo com o Web Almanac 2025 (646 KB). Tudo isso, apenas para um formulário.

Corrigir o PageSpeed exigirá uma reescrita para cada página onde um formulário HubSpot aparece. Às vezes, isso não é uma opção imediata. Eu criei um substituto drop-in para acelerar seus formulários sem a necessidade de alterar qualquer código no nível da página.

HubSpot

Código de formulário HubSpot, o método lento

O código padrão do HubSpot para colocar formulários em um site se parecerá com isto:

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

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

Isso resultará em um aviso no Lighthouse de 'Eliminar recursos que bloqueiam a renderização'. O formulário HubSpot bloqueia a renderização da página por um segundo inteiro. De acordo com o Web Almanac 2025, 87% das páginas ainda servem recursos de bloqueio de renderização. A incorporação padrão do HubSpot é um dos piores infratores porque carrega de forma síncrona sem nenhum atributo defer ou async.

render blocking hubspot forms

Sua primeira ideia pode ser adiar o script do HubSpot. Isso não vai funcionar e lançará um erro porque hbspt.forms.create() espera que o script do HubSpot já esteja carregado. Vamos consertar isso!

Código de formulário HubSpot, a correção rápida

Às vezes simplesmente não há tempo para vasculhar centenas de páginas e reescrever o código para cada formulário HubSpot. É por isso que criei um substituto drop-in para formulários HubSpot mais rápidos e sem bloqueio de renderização:

A ideia é simples. Os formulários são acionados ao chamar hbspt.forms.create. Vamos capturar os formulários, esperar que o código do HubSpot carregue em segundo plano e, em seguida, executar o script do formulário.

<script>
// cache hubspot forms here
var hubcache = {
    forms: [],
    letsgo: function() {
        for (var i = 0; i < hubcache.forms.length; i++) {
            // hubspot is now loaded, use the real hbspt
            hbspt.forms.create(hubcache.forms[i]);
        }
    }
};

// override hbspt while hubspot is loading
var hbspt = {
    forms: {
        create: function(c) { hubcache.forms.push(c); }
    }
};
</script>
<script
   type="text/javascript"
   defer
   src="//js.hsforms.net/forms/v2.js"
   onload="hubcache.letsgo()">
</script>

Não se esqueça de reservar algum espaço para o formulário, pois ele não bloqueia mais a renderização e causará um layout shift maior do que se você tivesse esquecido de reservar espaço antes. Defina uma min-height no contêiner do formulário que corresponda à altura do formulário renderizado.

Alternativa: o padrão hsFormsOnReady

O v2.js do HubSpot também suporta uma fila de callback não documentada chamada hsFormsOnReady. Se você controla o código de incorporação diretamente, esta é uma opção mais limpa:

<script defer src="//js.hsforms.net/forms/v2.js"></script>
<script>
  (window.hsFormsOnReady = window.hsFormsOnReady || []).push(function() {
    hbspt.forms.create({
      portalId: '123456',
      formId: '123456'
    });
  });
</script>

O hack drop-in acima é a melhor abordagem quando você não pode alterar o código de incorporação existente em todas as páginas. O padrão hsFormsOnReady requer a edição de cada snippet de incorporação de formulário individualmente.

Código de formulário HubSpot, a maneira correta

Eu não sou um grande fã de implementar hacks como este (embora eu goste de escrevê-los). Às vezes eles são necessários porque simplesmente não há tempo disponível para reescrever um site inteiro. Portanto, sempre leve o PageSpeed em consideração antes de se comprometer com um app/plugin externo que possa causar todo tipo de problema. Se você não tem certeza sobre as implicações no PageSpeed, basta perguntar a alguém como eu. Nós sabemos :-)

A maneira correta é usar a HubSpot Forms API diretamente. Construa o seu próprio formulário HTML, estilize-o como quiser e envie os dados para o HubSpot com uma simples requisição POST:

fetch(
  'https://api.hsforms.com/submissions/v3/integration/submit/PORTAL_ID/FORM_ID',
  {
    method: 'POST',
    headers: { 'Content-Type': 'application/json' },
    body: JSON.stringify({
      fields: [
        { name: 'email', value: email },
        { name: 'firstname', value: firstName }
      ]
    })
  }
);

Zero JavaScript do HubSpot. Zero bloqueio de renderização. Integração total com o CRM. O formulário ainda aparece no seu painel do HubSpot, aciona fluxos de trabalho e alimenta o seu banco de dados de contatos. Você simplesmente não precisa de 521 KB de código do HubSpot para enviar alguns campos.

Para confirmar que a sua correção realmente funciona para visitantes reais, configure o Real User Monitoring. As pontuações de laboratório dizem que o formulário não está mais bloqueando, mas os dados de campo dizem se o seu INP e LCP realmente melhoraram.

About the author

Arjen Karel is a web performance consultant and the creator of CoreDash, a Real User Monitoring platform that tracks Core Web Vitals data across hundreds of sites. He also built the Core Web Vitals Visualizer Chrome extension. He has helped clients achieve passing Core Web Vitals scores on over 925,000 mobile URLs.

I have done this before at your scale.

Complex platforms, large dev teams, legacy code. I join your team as a specialist, run the performance track, and hand it back in a state you can maintain.

Discuss Your Situation
Adiar Formulários HubSpot: Corrigir Bloqueio de Renderização Sem Editar PáginasCore Web Vitals Adiar Formulários HubSpot: Corrigir Bloqueio de Renderização Sem Editar Páginas