Bug: loading="lazy" applied unconditionally to all listing images, including the LCP candidate — hurts Core Web Vitals
Theme: Epsilon (Osclass), lazy load setting = "Lazy load based on browser support"
Location: loop-single.php line 16 (and equivalent lines for the user-image avatar), the image tag:
<img ... <?php echo (eps_is_lazy_browser() ? 'loading="lazy"' : ''); ?> src="..." data-src="..." />
Problem: The native loading="lazy" attribute is applied to every listing card image regardless of its position in the grid, including the first (above-the-fold) item — which is typically the page's Largest Contentful Paint (LCP) element. Per Google's own guidance (web.dev/articles/lcp-lazy-loading), lazy-loading the LCP image delays its discovery and directly increases LCP, since the browser deprioritizes it instead of fetching it immediately. Confirmed via Lighthouse: on a category/listing page, "Load Delay" accounted for 48% of total LCP time specifically because the LCP <img> carried loading="lazy".
Suggested fix: eps_draw_item() already receives a position counter ($c, 1-based, passed from every calling loop in main.php/search.php/etc.). Pass this into loop-single.php/loop-single-premium.php (already in scope via PHP's include) and skip loading="lazy" for the first 2-4 items per grid (e.g. $c > 4), matching the standard "don't lazy-load above-the-fold images" pattern most modern themes/frameworks use.
Secondary inconsistency: loop-single-premium.php never applies loading="lazy" at all (no eps_is_lazy_browser() check present), unlike the regular loop-single.php — likely an oversight, worth reviewing for consistency.