Jul 19, 2018 8:18 AM
Hi,
I want to know how to implement the lazy loading in hubspot website pages I am using .html template where image modules are implemented and read this article https://www.bluleadz.com/blog/lazy-loading-images-on-hubspot but this is for blog not for the website pages I want to implement in website pages only.
Thanks
Apr 19, 2020 8:14 PM - edited Apr 19, 2020 8:15 PM
Hi,
I've done this by just creating a custom module for images.
{% if module.image_field.src %} {% set sizeAttrs = 'width="{{ module.image_field.width }}" height="{{ module.image_field.height }}"' %} {% if module.image_field.size_type == 'auto' %} {% set sizeAttrs = 'style="max-width: 100%; height: auto;"' %} {% elif module.image_field.size_type == 'auto_custom_max' %} {% set sizeAttrs = 'width="100%" height="auto" style="max-width: {{ module.image_field.max_width }}px; max-height: {{ module.image_field.max_height }}px"' %} {% endif %} <img src="{{ module.image_field.src }}" alt="{{ module.image_field.alt }}" {{ sizeAttrs }} loading="lazy"> {% endif %}
loading="lazy"
Apr 20, 2020 10:55 AM
Nice to see the 'loading' prop finally make it into the real-world!
Just a note for anyone else finding this today or in the future: as James states, it's available in recent Chromium builds, but as of writing it's NOT yet fully supported across all browsers (Safari on MacOS and iOS are obvious misses at this point), so if you have something that's very image-heavy and care about those users, you may want to use another solution in the meantime.
Have a check of caniuse.com to see latest progress. But there's no harm doing both to be future-proofed.
It's certainly welcome addition, anyway. Much better to use the browser-built handling than to use custom JS solutions, so I look forward to the day we can rely on browsers handling this across every platform 🙂
Apr 20, 2020 10:06 AM
Thanks @jamesmccarthynz ! This is really great.
I'd still like to see HubSpot integrate Lazy Loading into the pages by default so we don't have to worry about it. In the meantime, this is a big help!
May 13, 2019 10:27 AM
After some digging around I was finally able to to use lazy load on my website. It's hard-coded in, so this might not be optimal, but it works for us.
First, we added this into a custom html module in our global header:
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/lozad/dist/lozad.min.js"></script>
Then, we added this into the footer of all pages:
<script> const observer = lozad(); // lazy loads elements with default selector as '.lozad'
observer.observe(); </script>
Finally, it's just a matter of adding the lozad class to our img tags. <img class="lozad" data-src="url"...
Hope this helps!
Mar 14, 2019 3:58 AM
i've been searching fot the answer long ago but couldn't found any way to implement lazy loading in hubspot pages not blog,
Mar 13, 2019 9:06 AM
Hey @ramanverma2005 , in order to implement lazy loading on your website across the board, you will have to:
I like kudos almost as much as cake – a close second.
Oct 15, 2019 4:16 PM
The answer @John gave still seems to be the best/realistic option right now. Creating custom modules to handle this isn't quick and easy. I really hope HubSpot adds lazy loading as a core feature so we don't have to worry about it. This is important to ranking on Google.
Nov 20, 2019 9:50 PM
I think it needs a push, i.e the idea you posted to be upvoted enough for the dev team to actually pick it up:
Mar 4, 2019 1:41 PM
Hi there,
I've been able to implement this only on Rich Text modules, not Image Modules. The reason for this is you need to be able to add the extra html markup to the image for the Lazy javascript to work. I haven't found a way to target anything in an Image Module.
So put this code in your "Additional <head> markup:
<script src="https://cdnjs.cloudflare.com/ajax/libs/vanilla-lazyload/8.6.0/lazyload.min.js"></script>
And this code needs to be put in the html for every image (make sure to put the right URL in the 3 locations and don't include the brackets []:
<img src="[Your image URL]" alt="[your alt text]" width="12" style="width: 100%;" data-src="[Your image URL]?width=600 600w" data-srcset="[Your image URL]?width=600 600w">>
Nov 12, 2019 2:12 AM
We have used above solution but here images downloaded two times, once when page load and second when we scrolll down the page.Is there a solution for this?
Nov 28, 2018 10:46 AM
I am looking for a lazy loading solution for HubSpot beyond the blog. This is a Google PSI recommendation to improve mobile site speed. With the updates to PSI with LightHouse there's more technical recommendations for speed optimization so I am looking for ways to execute in HubSpot.
Jan 10, 2019 11:24 AM
have you found any solution to this?
Aug 22, 2018 8:22 AM
Hey @ramanverma2005,
Are you still experiencing this issue? If so, please let me know and I can assist in getting you a solution.
If you found an answer, do you mind sharing it with the Community?
Thank you,
Jenny
Jan 11, 2019 3:18 AM
no, lazy loading for page I did not find any solution