Website-এ image lazy loading থাকলে page প্রথমে হালকা হতে পারে, কিন্তু ভুল setup-এ hero দেরিতে আসে, scroll করার পরে ফাঁকা box দেখা যায় বা layout হঠাৎ নড়ে যায়। শুধু DevTools-এ loading="lazy" দেখলেই test শেষ নয়। Real phone, slow network এবং বিভিন্ন viewport-এ কোন ছবি কখন load হচ্ছে, তার size reserve আছে কি না এবং content বোঝা যাচ্ছে কি না—সব মিলিয়ে দেখুন। এই guide developer, content editor এবং small business owner-কে একটি repeatable test দেবে।
প্রথমে image inventory ছোট করুন
একটি representative page নিন: hero, card grid, article image, logo এবং footer image থাকলে ভাল। প্রতিটির expected position, source file, alt text ও mobile crop লিখুন। Homepage-এর সঙ্গে একটি detail page-ও test করুন। একসঙ্গে গোটা site ধরলে failure-এর কারণ বোঝা কঠিন হয়। Cache clear করে logged-out visitor-এর মতো page খুলুন।
Hero image-কে lazy করবেন না
Initial viewport-এর প্রধান বা Largest Contentful Paint candidate image সাধারণত সঙ্গে সঙ্গে request হওয়া দরকার। web.dev-এর browser-level lazy-loading guidance প্রথম viewport-এর image-এ lazy loading না দিতে বলে। Hero-তে eager loading বা appropriate priority ব্যবহার হলেও file size, format এবং responsive source ঠিক রাখতে হবে। শুধু high priority দিয়ে 2 MB photo দ্রুত হয় না। Desktop ও mobile-এ কোন element LCP হচ্ছে তা আলাদা হতে পারে, তাই দুটো viewport মাপুন।
Below-the-fold image scroll করে দেখুন
Page load হওয়ার সঙ্গে সঙ্গে নিচের সব image network request করছে কি না দেখুন। তারপর ধীরে scroll করুন। Image viewport-এর কাছে এলে request শুরু হওয়া স্বাভাবিক; একেবারে সামনে এসে blank থেকে গেলে user-visible delay বেশি। খুব আগে সব load হলে bandwidth saving কমে যায়। Browser timing implementation-specific, তাই exact pixel threshold ধরে pass/fail বানাবেন না। Slow 4G throttling-এ card image, caption এবং link usable আছে কি না দেখুন। একই image বারবার request হলে markup বা cache header review করুন।
Width ও height দিয়ে জায়গা reserve করুন
Image আসার আগে browser যেন aspect ratio জানে। HTML width-height attributes বা CSS aspect-ratio দিয়ে stable box রাখুন। Placeholder-এর ratio এবং final crop আলাদা হলে content নিচে সরে যায়। LCP, INP ও CLS measurement ধরে layout shift record করুন। Fixed height দিয়ে portrait image চেপে দেবেন না; object-fit ও focal point review করুন। Ad, font বা cookie banner-এর shift-কে ভুল করে image issue মনে না করে recording-এ কোন element নড়েছে দেখুন।
Responsive source এবং fallback পরীক্ষা করুন
srcset ও sizes থাকলে 360px phone-এ অযথা 1600px asset download হচ্ছে কি না Network panel-এ দেখুন। CSS-এ image যতটা render হচ্ছে তার কাছাকাছি candidate browser বেছে নিচ্ছে কি না মিলান। JavaScript disabled test applicable হলে native markup-এ meaningful fallback আছে কি না দেখুন। Broken source দিলে alt text দেখা যায় এবং link/card usable থাকে কি না পরীক্ষা করুন। Decorative image-এর alt খালি হতে পারে; content image-এর alt ছবির প্রয়োজনীয় অর্থ সংক্ষেপে বলবে।
Lazy-loaded image test checklist
- Hero: initial viewport-এর প্রধান image lazy নয়।
- Scroll: নিচের image সময়মতো load হয়, blank অপেক্ষা নেই।
- Layout: width-height বা aspect ratio দিয়ে space reserved।
- Responsive: phone অযথা oversized source নেয় না।
- Fallback: failed image-এ alt ও surrounding content usable।
- Metrics: mobile ও desktop LCP/CLS আলাদা দেখা হয়েছে।
- Record: route, viewport, network ও result লেখা আছে।
Test result প্রমাণসহ লিখুন
“Images okay” না লিখে route, viewport, connection profile, cache state এবং observed behaviour দিন। যেমন: 360px, slow 4G, cold load-এ hero immediately requested; তৃতীয় card scroll-এর আগে requested; visible blank নেই। Screenshot-এর সঙ্গে Network request order বা performance trace রাখুন। Failure intermittent হলে video capture useful। Third-party widget image আলাদা owner-এর হলেও user experience-এ তার effect record করুন। Fix-এর পরে একই condition-এ retest করুন।
Release-এর পরে ছোট monitoring রাখুন
Local test pass হলেও production CDN, cache এবং real device আলাদা হতে পারে। অনুমোদিত release-এর পরে representative route-এ field data, image errors এবং LCP trend দেখুন। নতুন CMS template বা component এলে inventory আবার চালান। Editor-কে hero ও below-fold placement-এর সহজ rule দিন। লক্ষ্য সব image-এ lazy attribute বসানো নয়; first screen দ্রুত meaningful রাখা, নিচের bandwidth প্রয়োজনমতো ব্যবহার করা এবং scroll-এর সময় stable experience দেওয়া।
দ্রুত উত্তর
সাধারণ প্রশ্ন ও উত্তর
সব image-এ loading lazy দেব?
না। Initial viewport বা LCP candidate hero image সাধারণত lazy করা উচিত নয়; নিচের image-এ প্রয়োজনমতো ব্যবহার করুন।
Scroll-এর কত pixel আগে image load হওয়া উচিত?
Browser নিজে threshold ঠিক করতে পারে। Exact pixel নয়, slow network-এ visible blank, request timing এবং user experience দেখে test করুন।
Width ও height কেন দরকার?
Image আসার আগে browser aspect ratio reserve করতে পারে, ফলে content হঠাৎ সরে গিয়ে layout shift কমে।