نحوه برطرف کردن ارور Fixing LCP Request Discovery برای محصولات سایت فروشگاهی

اگه تا حالا فروشگاه ووکامرس خودت رو با ابزار PageSpeed Insights تست کرده باشی و با ارور LCP Request Discovery — Resource not discoverable in initial document روبه‌رو شده باشی، نگران نباش تو تنها کسی نیستی که این ارور رو گرفتی. این مشکل معمولاً توی صفحات محصولاتی دیده می‌شه که با المنتور یا قالب‌های آماده ووکامرس ساخته شدن و معنی‌اش این که گوگل نتونسته تصویر اصلی LCP صفحه‌ت رو به‌موقع شناسایی کنه و همین باعث می‌شه فرآیند رندر صفحه به تأخیر بیفته و امتیاز LCP پایین‌تر از حد انتظار بشه.
نحوه برطرف کردن ارور Fixing LCP Request Discovery برای محصولات سایت فروشگاهی
نویسنده:
|
مدیر فنی
آژانس خلاقیت کوانتا
تاریخ بروز رسانی:
اگه دوست داری کسی کارای دیجیتال مارکتینگت رو انجام بده، من اینجام که کمکت کنم. اینجا کلیک کن

توی این آموزش یاد می‌گیری چرا این اتفاق می‌افته و چطور می‌تونی برای همیشه برطرفش کنی. فقط کافیه ویژگی fetchpriority=”high” رو به تصویر اصلی محصول ووکامرس اضافه کنی.

چرا این ارور داده میشه؟

به‌صورت پیش‌فرض وردپرس loading="lazy" رو به همه عکس‌ها اضافه می‌کنه. اما توی صفحه محصول، معمولاً تصویر اصلی محصول همون LCP element محسوب می‌شه؛ یعنی بزرگ‌ترین تصویریه که بالای بخش قابل مشاهده (fold) نمایش داده می‌شه.

وقتی اون تصویر به‌صورت lazy-loaded لود می‌شه، مرورگر برای دریافتش خیلی دیر اقدام می‌کنه و همین باعث می‌شه فرآیند render به تأخیر بیفته. ابزار Google Lighthouse هم این وضعیت رو به‌عنوان یه LCP discovery issue (مشکل در شناسایی LCP) تشخیص می‌ده.

نمونه خطای LCP discovery issue

برای حل این مشکل، باید lazy-loading رو برای همون تصویر مشخص غیرفعال کنیم و به مرورگر بگیم این تصویر یه high-priority resource (منبع با اولویت بالا) است.

نمونه برطرف شده خطای LCP discovery issue

راه‌حل: ویژگی fetchpriority="high" رو به تصویر اصلی محصول اضافه کن.

خیلی راحت می‌تونی این کار رو با اضافه کردن یه قطعه‌کد ساده به فایل functions.php قالب انجام بدی (یا اگه بخوای تغییراتت موقع آپدیت از بین نرن، توی یه custom functionality plugin قرارش بده یا از قالب چایلد استفاده کن).

کد کاملش اینجاست:


// Disable lazy loading & Add fetchpriority="high" to main WooCommerce product image
add_filter( 'wp_get_attachment_image_attributes', function( $attr, $attachment, $size ) {
    if ( is_product() && isset( $attr['class'] ) && strpos( $attr['class'], 'wp-post-image' ) !== false ) {
        // Disable lazy loading for the LCP image
        unset( $attr['loading'] );
        // Add fetchpriority to prioritize this image
        $attr['fetchpriority'] = 'high';
    }
    return $attr;
}, 10, 3 );

عملکرد این کد چیه؟

بیا بخش به بخش توضیح بهت بدم:

  • add_filter('wp_get_attachment_image_attributes', ...)
    این قطعه‌کد به سیستم داخلی رندر تصاویر وردپرس متصل می‌شه و اجازه می‌ده ویژگی‌های هر تصویر رو قبل از نمایش تغییر بدی.
  • is_product()
    باعث می‌شه این کد فقط روی صفحات محصولات ووکامرس اجرا بشه.
  • strpos( $attr['class'], 'wp-post-image' )
    بررسی می‌کنه که تصویر فعلی، همون تصویر اصلی محصول (featured image) باشه.
  • unset( $attr['loading'] )
    ویژگی loading="lazy" رو حذف می‌کنه تا مرورگر تصویر رو فوراً بارگذاری کنه.
  • $attr['fetchpriority'] = 'high';
    به مرورگر اعلام می‌کنه که این تصویر critical هست و باید در اولین فرصت دانلود بشه.

 

این کار باعث می‌شه تصویر اصلی محصولت زودتر دانلود بشه، سریع‌تر رندر بشه و توسط ابزار Lighthouse به‌عنوان یه LCP resource قابل شناسایی و بهینه تشخیص داده بشه.

تست کردن تغییراتت

بعد از اینکه این قطعه‌کد رو اضافه کردی، کش سایت رو پاک کن و یه تست جدید با ابزار PageSpeed Insights بگیر.

باید این نتایج رو ببینی:

  • ارور LCP Request Discovery کاملاً از بین می‌ره.
  • بهبود قابل‌توجهی در زمان بارگذاری LCP (معمولاً بین ۲۰ تا ۴۰٪).
  • و در نهایت، امتیاز Performance و Core Web Vitals کلی بالاتر می‌ره.

 

برای اینکه بهترین نتیجه رو بگیری، حتماً این نکات رو رعایت کن:

  1. اندازه و فرمت تصاویرت رو بهینه نگه دار (webp، avif یا نسخه‌های فشرده‌شده‌ی PNG/JPG).
  2. از یه افزونه‌ی کش خوب مثل LiteSpeed Cache یا WP Rocket استفاده کن.
  3. همه‌ی تصاویر دیگه رو lazy-load کن، به‌جز تصویر اصلی محصول.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

آموزش‌های کاربردی وب برای طراحان، توسعه‌دهندگان و متخصصان سئوی وردپرس
بازدید بیشتری از گوگل می‌خوای؟

درباره پیمان فراهانی

پیمان فراهانی هستم و الان مدیر فنی آژانس خلاقیت کوانتا

حدودا ۱۰ سال هست که به عنوان یه دیجیتال مارکتر در چند شاخه تخصصی این حوزه مثل سئو، طراحی و توسعه سایت‌های وردپرسی، سایت‌های فروشگاهی، تبلیغات و برندینگ دیجیتال، ویژوال دیزاین، طراحی و مدیریت محصول در حال فعالیت هستم و به برندهای زیادی برای رشد در فضای دیجیتال کمک کردم