PageSpeed hilesi: sayfanızı düzenlemeden HubSpot formlarını erteleyin
Render engelleyen HubSpot scriptlerinden kurtulun

'HubSpot formlarını ertele' kısaca
HubSpot formları, formları doğrudan HubSpot CRM'inize entegre etmenin harika bir yoludur. HubSpot'ta kolayca formlar oluşturabilir ve bunları birkaç JavaScript koduyla doğrudan web sitenize yerleştirebilirsiniz
Sadece küçük bir sorun var. HubSpot, Core Web Vitals ile pek iyi anlaşamaz ve HubSpot formu web sitenizi yavaşlatır.
HubSpot formları varsayılan olarak render engelleyicidir. PageSpeed'i düzeltmek, HubSpot formunun göründüğü her sayfa için kodun yeniden yazılmasını gerektirir.
Bazen bu hemen uygulanabilecek bir seçenek değildir. Sayfa düzeyinde herhangi bir kodu değiştirmek zorunda kalmadan formlarınızı hızlandırmak için doğrudan kullanılabilir bir çözüm oluşturdum.

HubSpot form kodu, yavaş yöntem
Bir web sitesine form yerleştirmek için varsayılan HubSpot kodu şöyle görünecektir:
<script
type="text/javascript"
src="//js.hsforms.net/forms/v2.js">
</script>
<script>
hbspt.forms.create({
portalId: '123456',
formId: '123456'
});
</script> Bu, Lighthouse'da ''Render engelleyen kaynakları ortadan kaldırın'' uyarısına neden olacaktır. HubSpot formu, sayfanın render edilmesini tam bir saniye boyunca engeller.

İlk fikriniz HubSpot scriptini ertelemek olabilir. Bu işe yaramaz ve hata verir çünkü hbspt.forms.create() HubSpot scriptinin yüklü olmasını bekler. Hadi bunu düzeltelim!
HubSpot form kodu, hızlı çözüm
Bazen yüzlerce sayfayı gözden geçirip her HubSpot formu için kodu yeniden yazacak zaman yoktur. Bu yüzden daha hızlı, render engellemeyen HubSpot formları için doğrudan kullanılabilir bir çözüm oluşturdum:
Fikir basit. Formlar hbspt.forms.create çağrısıyla oluşturulur. Formları yakalayalım, HubSpot kodu arka planda yüklenene kadar bekleyelim ve sonra form scriptini çalıştıralım.
<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> Form artık render işlemini engellemediği için form için biraz alan ayırmayı unutmayın, aksi takdirde daha önce alan ayırmayı unuttuysanız daha büyük bir layout kaymasına neden olacaktır.
HubSpot form kodu, doğru yöntem
Bu tür hileleri uygulamanın büyük hayranı değilim (her ne kadar yazmayı sevsem de). Bazen bir web sitesini yeniden yazmak için yeterli zaman olmadığından bunlar gereklidir. Bu nedenle, her türlü soruna neden olabilecek harici bir uygulama/eklenti vb. kullanmaya karar vermeden önce her zaman PageSpeed'i göz önünde bulundurun. PageSpeed etkileri konusunda emin değilseniz, benim gibi birilerine sorun. Biz biliriz :-)
Doğru yöntem, formlar için HubSpot API'sini () kullanmaktır. Her zamanki gibi kendi formunuzu oluşturun ve formu şuraya gönderin
CrUX data is 28 days late.
Google provides data 28 days late. CoreDash provides data in real-time. Debug faster.
- Real-Time Insights
- Faster Debugging
- Instant Feedback

