PageSpeed-vinkki: siirrä HubSpot-lomakkeet myöhemmäksi muokkaamatta sivuasi

Pääse eroon niistä renderöinnin estävistä HubSpot-skripteistä

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

'Defer HubSpot forms' lyhyesti

HubSpot-lomakkeet ovat loistava tapa integroida lomakkeet suoraan HubSpot CRM:ään. HubSpotissa voit helposti luoda lomakkeita ja sijoittaa ne suoraan verkkosivustollesi JavaScript-koodilla

On vain yksi pieni ongelma. HubSpot ei pidä Core Web Vitals -mittareista ja HubSpot-lomake hidastaa verkkosivustoasi.

HubSpot-lomakkeet estävät renderöinnin oletuksena. PageSpeed-tuloksen korjaaminen vaatii koodin uudelleenkirjoittamisen jokaiselle sivulle, jolla HubSpot-lomake esiintyy.

Joskus se ei ole välitön vaihtoehto. Olen luonut suoraan käyttöönotettavan korvaavan ratkaisun, joka nopeuttaa lomakkeitasi ilman sivutason koodimuutoksia.

HubSpot

HubSpot-lomakkeen koodi, hidas menetelmä

Oletusarvoinen HubSpot-koodi lomakkeiden sijoittamiseen verkkosivustolle näyttää tältä:

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

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

Tämä aiheuttaa Lighthouse-varoituksen ''Eliminate render blocking resources. HubSpot-lomake estää sivun renderöinnin kokonaisen sekunnin ajan.

render blocking hubspot forms

Ensimmäinen ideasi saattaa olla HubSpot-skriptin siirtäminen myöhemmäksi. Tämä ei toimi ja aiheuttaa virheen, koska hbspt.forms.create() odottaa HubSpot-skriptin olevan ladattu. Korjataan tämä!

HubSpot-lomakkeen koodi, nopea korjaus

Joskus ei yksinkertaisesti ole aikaa käydä läpi satoja sivuja ja kirjoittaa koodia uudelleen jokaiselle HubSpot-lomakkeelle. Siksi olen luonut suoraan käyttöönotettavan korvaavan ratkaisun nopeampiin, renderöintiä estämättömiin HubSpot-lomakkeisiin:

Idea on yksinkertainen. Lomakkeet kutsutaan käyttämällä hbspt.forms.create-funktiota. Kaapataan lomakkeet, odotetaan kunnes HubSpot-koodi latautuu taustalla ja suoritetaan sitten lomakeskripti.

<script>
// override the hbspt functionality while hubspot is loading
var hbspt = {
   //push form to hubcache queue
   forms:{create:function(c){hubspot.forms.push(c)}},
};

// cache hubspot forms here
var hubcache = {
        forms:[],
        letsgo:function(){
            for (var i in hubspot.forms){
              //hubspot is now loaded
              hbspt.forms.create(hubcache.forms[i]);            }            
        }
    }
</script>
<script 
   type="text/javascript" 
    
   src="//js.hsforms.net/forms/v2.js" 
   onload="hubcache.letsgo()">
</script>

Älä unohda varata tilaa lomakkeelle, koska se ei enää estä renderöintiä ja aiheuttaa suuremman Cumulative Layout Shift -siirtymän kuin jos aiemmin unohdit varata tilaa.

HubSpot-lomakkeen koodi, oikea tapa

En ole suuri fani tällaisten hakkerointien toteuttamisessa (vaikka pidänkin niiden kirjoittamisesta). Joskus ne ovat välttämättömiä, koska aikaa verkkosivuston uudelleenkirjoittamiseen ei yksinkertaisesti ole tarpeeksi. Ota siksi aina PageSpeed huomioon ennen kuin sitoudut ulkoiseen sovellukseen/lisäosaan jne., joka saattaa aiheuttaa kaikenlaisia ongelmia. Jos olet epävarma PageSpeed-vaikutuksista, kysy joltakulta kuten minulta. Me tiedämme :-)

Oikea tapa on käyttää HubSpot API:a () lomakkeille. Luo oma lomakkeesi kuten aina ja lähetä lomake

Lab data is not enough.

I analyze your field data to find the edge cases failing your user experience.

Analyze My Data >>

  • Real User Data
  • Edge Case Detection
  • UX Focused
PageSpeed-vinkki: siirrä HubSpot-lomakkeet myöhemmäksi muokkaamatta sivuasiCore Web Vitals PageSpeed-vinkki: siirrä HubSpot-lomakkeet myöhemmäksi muokkaamatta sivuasi