Lazy loading is a way of telling the browser to wait. Instead of downloading every image and video the moment a page opens, it only fetches what is visible, then loads the rest as the visitor scrolls toward it. The top of the page appears faster because there is less to grab up front.

Think of a buffet versus a set menu. A set menu brings every course at once and most of it goes cold while you eat the first plate. A buffet serves each dish as you reach it. Lazy loading is the buffet: nothing arrives before you need it. It works hand in hand with good image optimization and directly improves load time on image-heavy pages.

On modern sites you rarely need extra code for it. Adding loading="lazy" to an image or iframe tells the browser to handle the timing itself, and frameworks like Astro and Next often apply it by default. For long feeds it is the same idea behind infinite scroll, where new items load as you approach the bottom.

There is one rule worth remembering. The big image at the top, the one that counts toward your Largest Contentful Paint score, should load straight away rather than lazily, or it can actually hurt perceived speed. The other trap is layout shift: reserve the image’s width and height so the page does not jump as each one pops in, which annoys readers and dents your scores. And do not lazy load too aggressively either. If you defer something that sits just below the fold, the visitor scrolls down to an empty box that only starts loading once they arrive, which feels slower than no lazy loading at all.

At TopDevs we lazy load galleries, long article images and below-the-fold media while loading the hero immediately, so pages feel quick without breaking the first impression.