بهبود Largest Contentful Paint یا LCP؛ راهنمای تخصصی افزایش سرعت بارگذاری

بهبود Largest Contentful Paint یا LCP
بهبود LCP و افزایش سرعت بارگذاری سایت با بهینه‌سازی تصویر اصلی، TTFB، CSS، فونت‌ها و جاوااسکریپت در وردپرس.

آنچه در این مقاله می‌خوانید

بهبود Largest Contentful Paint یا LCP یکی از مهم‌ترین اقدامات برای افزایش سرعت بارگذاری صفحات و ارتقای تجربه کاربری است. زمانی که محتوای اصلی صفحه، مانند تصویر شاخص، عنوان مقاله یا بلوک بزرگ متنی، دیر نمایش داده شود، کاربر تصور می‌کند سایت کند است؛ حتی اگر سایر بخش‌های صفحه سریع‌تر بارگذاری شده باشند. در این راهنمای تخصصی، LCP را از دید فنی بررسی می‌کنیم و با روش‌های عملی، بهینه‌سازی آن را در سایت‌های وردپرسی توضیح می‌دهیم.

برخلاف تصور رایج، کاهش زمان LCP فقط با فشرده‌سازی تصاویر انجام نمی‌شود. این شاخص به مجموعه‌ای از عوامل مانند سرعت پاسخ‌گویی سرور، نحوه کشف منبع اصلی، وضعیت CSS، اجرای جاوااسکریپت، فونت‌ها و زمان رندر شدن محتوای اصلی وابسته است. بنابراین برای رسیدن به نتیجه پایدار، باید تمام مسیر نمایش عنصر اصلی صفحه بررسی شود.

بهبود Largest Contentful Paint یا LCP چیست؟

Largest Contentful Paint که به اختصار LCP نامیده می‌شود، مدت‌زمانی را اندازه‌گیری می‌کند که طول می‌کشد بزرگ‌ترین عنصر محتوایی قابل مشاهده در بخش ابتدایی صفحه نمایش داده شود. این عنصر معمولاً یکی از موارد زیر است:

  • تصویر شاخص مقاله
  • تصویر بزرگ بخش Hero
  • عنوان اصلی صفحه
  • پاراگراف یا بلوک متنی بزرگ
  • تصویر پس‌زمینه‌ای که با CSS بارگذاری شده است
  • ویدئو یا پوستر ویدئو

در گذشته برای سنجش سرعت نمایش محتوای اصلی از شاخص‌هایی مانند FCP و Speed Index نیز استفاده می‌شد، اما LCP ارتباط نزدیک‌تری با درک واقعی کاربر از آماده‌شدن صفحه دارد. اگر کاربر در چند ثانیه اول عنوان یا تصویر اصلی را ببیند، احتمال ترک صفحه کمتر می‌شود.

محدوده استاندارد LCP

بر اساس معیارهای رایج ارزیابی تجربه کاربری، وضعیت LCP معمولاً به شکل زیر تفسیر می‌شود:

زمان LCPوضعیت
کمتر از ۲٫۵ ثانیهخوب
بین ۲٫۵ تا ۴ ثانیهنیازمند بهبود
بیشتر از ۴ ثانیهضعیف

این زمان باید برای حداقل ۷۵ درصد بازدیدها، به‌خصوص بازدیدهای موبایلی، در محدوده مطلوب قرار داشته باشد. میانگین سرعت در یک سیستم قدرتمند دسکتاپ کافی نیست؛ زیرا بسیاری از کاربران با اینترنت ناپایدار و گوشی‌های میان‌رده وارد سایت می‌شوند.

بهینه‌سازی LCP چگونه انجام می‌شود؟

برای بهینه‌سازی LCP باید ابتدا مشخص کنید کدام عنصر به‌عنوان LCP شناسایی شده است و تأخیر آن در کدام مرحله اتفاق می‌افتد. مسیر نمایش عنصر اصلی را می‌توان به چهار بخش تقسیم کرد:

  1. دریافت درخواست و پاسخ سرور
  2. کشف منبع اصلی توسط مرورگر
  3. دانلود منبع، مانند تصویر یا فونت
  4. پردازش CSS، اجرای اسکریپت‌ها و رندر نهایی

ممکن است تصویر اصلی حجم کمی داشته باشد اما مرورگر آن را دیر کشف کند. در مقابل، گاهی منبع به‌سرعت دانلود می‌شود ولی به دلیل مسدود بودن CSS یا اجرای طولانی جاوااسکریپت، دیر روی صفحه نمایش داده می‌شود.

به همین دلیل، فقط نگاه‌کردن به حجم فایل یا نمره کلی PageSpeed Insights برای عیب‌یابی کافی نیست. باید Waterfall درخواست‌ها و جزئیات عنصر LCP را نیز بررسی کنید.

شناسایی عنصر LCP در صفحه

قبل از تغییر کدها، باید بدانید عنصر LCP در صفحه دقیقاً چیست. برای این کار می‌توانید از ابزارهای زیر استفاده کنید:

  • PageSpeed Insights
  • Chrome DevTools
  • Lighthouse
  • گزارش Core Web Vitals در Search Console
  • WebPageTest

در PageSpeed Insights معمولاً در بخش Largest Contentful Paint element، عنصر شناسایی‌شده نمایش داده می‌شود. این عنصر ممکن است در صفحه اصلی تصویر Hero باشد، اما در یک مقاله، عنوان اصلی یا تصویر شاخص نقش LCP را ایفا کند.

برای بررسی در مرورگر Chrome:

  1. صفحه را در حالت ناشناس باز کنید.
  2. ابزار Developer Tools را اجرا کنید.
  3. به زبانه Performance بروید.
  4. گزینه ثبت عملکرد صفحه را فعال کنید.
  5. صفحه را Reload کنید.
  6. در Timeline، رویداد LCP را پیدا کنید.

این بررسی کمک می‌کند بفهمید مشکل واقعی مربوط به تصویر، متن، فونت، CSS یا اجرای اسکریپت‌هاست.

تفاوت LCP با سرعت کلی سایت

LCP فقط یکی از شاخص‌های سرعت است و با سرعت کلی صفحه تفاوت دارد. ممکن است یک صفحه از نظر حجم کلی فایل‌ها سنگین باشد، اما عنصر اصلی آن سریع نمایش داده شود و LCP مناسبی داشته باشد. همچنین ممکن است حجم صفحه کم باشد، اما یک تصویر یا فونت مهم دیر رندر شود و LCP را افزایش دهد.

بنابراین برای تحلیل دقیق باید این موارد را از هم جدا کنید:

  • TTFB: زمان دریافت اولین بایت از سرور
  • FCP: زمان نمایش اولین محتوای قابل مشاهده
  • LCP: زمان نمایش بزرگ‌ترین محتوای اصلی
  • INP: سرعت واکنش صفحه به تعامل کاربر
  • CLS: میزان جابه‌جایی ناگهانی عناصر

تمرکز این مقاله روی LCP است؛ اما بعضی اقدامات مانند کاهش جاوااسکریپت و بهینه‌سازی CSS می‌توانند هم‌زمان روی INP و سایر شاخص‌ها نیز اثر بگذارند.

نقش TTFB در بهبود LCP

اگر سرور دیر پاسخ بدهد، تمام مراحل بعدی نیز با تأخیر آغاز می‌شوند. حتی بهترین تصویر بهینه‌شده نمی‌تواند ضعف شدید در زمان پاسخ‌گویی سرور را کاملاً جبران کند.

دلایل رایج TTFB بالا

  • هاست ضعیف یا منابع محدود
  • اجرای کوئری‌های سنگین پایگاه داده
  • افزونه‌های غیرضروری وردپرس
  • نبود کش صفحه
  • پیکربندی نامناسب PHP
  • درخواست‌های متعدد برای کاربران مهمان
  • قالب یا صفحه‌ساز سنگین
  • تأخیر شبکه و موقعیت نامناسب سرور
  • اجرای پردازش‌های غیرضروری در ابتدای درخواست

برای بهبود TTFB در وردپرس، فعال‌سازی Page Cache در LiteSpeed Cache یکی از مهم‌ترین اقدامات است. صفحات عمومی سایت، مانند مقالات و صفحات دسته‌بندی، معمولاً نیازی ندارند در هر درخواست از ابتدا توسط PHP تولید شوند. ذخیره نسخه HTML آماده، زمان پاسخ‌گویی را کاهش می‌دهد.

تنظیمات پیشنهادی کش

در LiteSpeed Cache بهتر است این موارد با احتیاط بررسی شوند:

  • فعال‌سازی کش عمومی صفحات
  • تعیین زمان مناسب برای Cache TTL
  • فعال‌سازی کش مرورگر
  • پاک‌سازی کش پس از تغییرات مهم
  • استفاده از کش موبایل فقط در صورت نیاز واقعی
  • فعال‌سازی فشرده‌سازی GZIP یا Brotli
  • اجتناب از فعال‌کردن هم‌زمان چند سیستم کش متداخل

در هاست اشتراکی، تنظیمات کش باید متعادل باشد. فعال‌کردن تمام گزینه‌های بهینه‌سازی بدون تست می‌تواند باعث مشکل در نمایش صفحات، تداخل اسکریپت‌ها یا مصرف بیشتر منابع شود.

بهبود زمان کشف منبع LCP

یکی از مشکلات پنهان LCP این است که مرورگر منبع اصلی را دیر پیدا می‌کند. برای مثال، اگر تصویر LCP در HTML به‌صورت مستقیم وجود نداشته باشد و از طریق جاوااسکریپت یا CSS بارگذاری شود، مرورگر دیرتر از آن مطلع خواهد شد.

ساختار مناسب برای تصویر اصلی

اگر عنصر LCP یک تصویر است، بهتر است تصویر در HTML صفحه قابل شناسایی باشد:

<img
  src="https://example.com/wp-content/uploads/hero.webp"
  width="1200"
  height="675"
  alt="توضیح دقیق تصویر"
  fetchpriority="high"
  decoding="async">

ویژگی fetchpriority="high" به مرورگر اعلام می‌کند که این تصویر نسبت به منابع کم‌اهمیت‌تر اولویت بیشتری دارد. با این حال، نباید این ویژگی را روی تمام تصاویر صفحه قرار دهید؛ زیرا در چنین شرایطی اولویت واقعی تصویر LCP از بین می‌رود.

چه زمانی از Preload استفاده کنیم؟

برای منابعی که مرورگر دیر کشف می‌کند، می‌توان از preload استفاده کرد. این روش برای تصویر LCP که در ابتدای صفحه قرار دارد، گاهی مفید است:

<link
  rel="preload"
  as="image"
  href="https://example.com/wp-content/uploads/hero.webp"
  type="image/webp"
  fetchpriority="high">

اما استفاده نادرست از Preload می‌تواند نتیجه معکوس داشته باشد. اگر تصویر در HTML با آدرس متفاوتی از آدرس Preload فراخوانی شود، مرورگر ممکن است آن را دوباره دانلود کند. همچنین Preload تصاویر خارج از محدوده دید، منابع فونت غیرضروری یا چند تصویر اسلایدر باعث رقابت منابع می‌شود.

قوانین مهم برای Preload

  • فقط منبع واقعاً حیاتی را Preload کنید.
  • برای هر صفحه، تعداد منابع Preload را محدود نگه دارید.
  • آدرس Preload و آدرس واقعی منبع باید دقیقاً یکسان باشند.
  • فرمت تصویر باید با نسخه نهایی فایل مطابقت داشته باشد.
  • تصاویر خارج از بخش ابتدایی صفحه را Preload نکنید.

بهینه‌سازی تصویر LCP بدون ایجاد مشکل جدید

تصویر اصلی صفحه باید از نظر ابعاد، فرمت و حجم بهینه باشد. بااین‌حال، کاهش افراطی کیفیت نیز می‌تواند تجربه بصری و اعتبار صفحه را پایین بیاورد.

انتخاب فرمت مناسب

فرمت‌های مدرن مانند WebP و AVIF در بسیاری از پروژه‌ها حجم مناسب‌تری نسبت به JPEG و PNG دارند. انتخاب فرمت باید بر اساس نوع تصویر انجام شود:

  • WebP برای بیشتر تصاویر محتوایی و عکس‌ها
  • AVIF برای حجم کمتر در صورت پشتیبانی مناسب
  • PNG برای تصاویر شفاف یا گرافیک‌های خاص
  • SVG برای آیکون‌ها و لوگوهای ساده
  • JPEG برای موارد سازگاری یا تصاویر قدیمی

فایل LCP را پیش از بارگذاری در وردپرس، در ابعاد واقعی موردنیاز آماده کنید. آپلود تصویر ۳۰۰۰ پیکسلی برای بخشی که در عرض ۷۰۰ پیکسل نمایش داده می‌شود، باعث دریافت داده اضافی خواهد شد.

ویژگی‌های مهم تصویر

<img
  src="hero-image.webp"
  srcset="
    hero-image-640.webp 640w,
    hero-image-960.webp 960w,
    hero-image-1280.webp 1280w"
  sizes="(max-width: 768px) 100vw, 1200px"
  width="1200"
  height="675"
  alt="بهینه‌سازی سرعت بارگذاری صفحه"
  fetchpriority="high"
  decoding="async">

ویژگی srcset نسخه مناسب تصویر را برای عرض صفحه در اختیار مرورگر قرار می‌دهد و sizes مشخص می‌کند تصویر تقریباً چه فضایی را اشغال می‌کند. این ساختار با مفهوم تصاویر واکنش‌گرا ارتباط دارد؛ اما در این مقاله تمرکز اصلی روی زمان کشف و نمایش تصویر LCP است، نه طراحی کامل سیستم تصاویر سایت.

برای مطالعه جزئیات بیشتر درباره انتخاب نسخه مناسب تصویر در اندازه‌های مختلف، می‌توانید راهنمای تصاویر واکنش‌گرا و بهینه‌سازی عکس برای سرعت سایت و سئو را مطالعه کنید.

Lazy Load را روی تصویر LCP فعال نکنید

تصویر LCP معمولاً در بخش ابتدایی صفحه قرار دارد و باید هرچه سریع‌تر دریافت شود. اگر روی این تصویر loading="lazy" فعال باشد، مرورگر ممکن است بارگذاری آن را به تأخیر بیندازد.

نمونه نامناسب:

<img
  src="hero-image.webp"
  loading="lazy"
  alt="تصویر اصلی مقاله">

برای تصویر اصلی بهتر است Lazy Load غیرفعال و اولویت آن بالا باشد:

<img
  src="hero-image.webp"
  loading="eager"
  fetchpriority="high"
  alt="تصویر اصلی مقاله">

در بسیاری از موارد، نیازی به افزودن loading="eager" نیست؛ زیرا حذف Lazy Load کافی است. مهم این است که تصویر LCP در صف بارگذاری تنبل قرار نگیرد.

کاهش Render-Blocking CSS

مرورگر پیش از نمایش بسیاری از عناصر، باید فایل‌های CSS را دریافت و پردازش کند. اگر فایل CSS بسیار بزرگ باشد یا چندین فایل غیرضروری در ابتدای صفحه بارگذاری شوند، رندر عنصر LCP به تعویق می‌افتد.

اقدامات کاربردی برای CSS

  • حذف CSS استفاده‌نشده
  • کاهش تعداد فایل‌های CSS
  • فشرده‌سازی فایل‌های نهایی
  • بارگذاری CSS ضروری در ابتدای صفحه
  • انتقال استایل‌های غیرضروری به زمان بعد
  • جلوگیری از بارگذاری توسط صفحه‌سازها صفحاتی که استفاده نمی‌شوند
  • بررسی CSS تولیدشده توسط صفحه‌سازها

برای بخش ابتدایی صفحه می‌توان Critical CSS تولید کرد. این کد شامل حداقل استایل‌هایی است که برای نمایش اولیه صفحه لازم هستند. سایر استایل‌ها پس از آماده‌شدن محتوای اصلی دریافت می‌شوند.

با وجود این، Critical CSS باید با احتیاط پیاده‌سازی شود. اگر این کد بیش از حد بزرگ باشد، خود به یک منبع مسدودکننده تبدیل می‌شود.

مدیریت فونت‌ها برای کاهش LCP

فونت‌های وب می‌توانند روی نمایش عنوان اصلی و بلوک‌های متنی اثر بگذارند. اگر متن LCP با فونت سفارشی نمایش داده شود و فونت دیر برسد، مرورگر ممکن است متن را ابتدا پنهان کند یا با فونت جایگزین نشان دهد.

استفاده از فونت محلی

برای کاهش وابستگی به درخواست‌های خارجی، فونت‌های موردنیاز سایت را در سرور خودتان میزبانی کنید. این کار معمولاً باعث کاهش DNS Lookup و کنترل بهتر کش می‌شود.

در صورت نیاز، فونت حیاتی را Preload کنید:

<link
  rel="preload"
  href="/wp-content/themes/your-theme/assets/fonts/vazir-regular.woff2"
  as="font"
  type="font/woff2"
  crossorigin>

فقط فونتی را Preload کنید که واقعاً در محتوای ابتدایی صفحه استفاده می‌شود. Preload چند وزن و چند سبک فونت می‌تواند منابع شبکه را اشغال کند.

تنظیم مناسب Font Display

@font-face{ 
  font-family: "Vazir";
  src: url("/assets/fonts/vazir-regular.woff2") format("woff2");
  font-style: normal;
  font-weight: 400;
  font-display: swap;
 }

مقدار swap اجازه می‌دهد متن ابتدا با فونت جایگزین نمایش داده شود و پس از آماده‌شدن فونت اصلی، فونت سفارشی جایگزین شود. این روش معمولاً از پنهان‌ماندن متن در زمان بارگذاری جلوگیری می‌کند.

کاهش تأخیر ناشی از JavaScript

جاوااسکریپت‌های غیرضروری می‌توانند پردازش HTML و رندر محتوای اصلی را متوقف کنند. این مسئله به‌خصوص در سایت‌هایی که از صفحه‌ساز، اسلایدر، پاپ‌آپ و ابزارهای متعدد استفاده می‌کنند، رایج است.

استفاده از Defer

برای اسکریپت‌هایی که برای ساختار اولیه صفحه ضروری نیستند، استفاده از defer گزینه مناسبی است:

<script src="/assets/js/site.js" defer></script>

اسکریپت‌های دارای defer هم‌زمان با پردازش HTML دانلود می‌شوند، اما اجرای آن‌ها تا پایان پردازش HTML به تعویق می‌افتد. این کار معمولاً نسبت به اسکریپت‌های عادی، مانع کمتری برای رندر اولیه ایجاد می‌کند.

async رفتار متفاوتی دارد و ممکن است اسکریپت را به‌محض آماده‌شدن اجرا کند. بنابراین استفاده از آن برای فایل‌هایی که به ترتیب اجرا وابسته‌اند، می‌تواند باعث خطا شود.

چه اسکریپت‌هایی را باید بررسی کرد؟

  • اسکریپت اسلایدرهای غیرضروری
  • ابزارهای پاپ‌آپ
  • ویجت‌های شبکه‌های اجتماعی
  • اسکریپت‌های آمارگیری
  • فایل‌های افزونه‌هایی که در آن صفحه استفاده نمی‌شوند
  • اسکریپت‌های مربوط به فرم‌های غیرضروری
  • کتابخانه‌های قدیمی و تکراری

در سایت‌های پرترافیک، حذف کامل قابلیت‌های غیرضروری معمولاً بهتر از اجرای تعداد زیادی اسکریپت با تأخیر است. هر فایل اضافی علاوه بر زمان دانلود، هزینه پردازش روی CPU دستگاه کاربر را نیز افزایش می‌دهد.

بهینه‌سازی LCP در وردپرس

در وردپرس، مشکل LCP معمولاً به یک عامل واحد محدود نیست. قالب، افزونه‌ها، صفحه‌ساز، تصاویر، هاست و تنظیمات کش هم‌زمان روی نتیجه اثر می‌گذارند.

فهرست اقدامات مهم در وردپرس

  1. فعال‌سازی کش صفحات عمومی
  2. استفاده از نسخه به‌روز PHP
  3. حذف افزونه‌های بدون استفاده
  4. جلوگیری از بارگذاری فایل‌های افزونه در تمام صفحات
  5. بهینه‌سازی تصویر شاخص و تصویر Hero
  6. غیرفعال‌کردن Lazy Load برای تصویر LCP
  7. کاهش CSS و JavaScript غیرضروری
  8. میزبانی محلی فونت‌ها
  9. فعال‌سازی فشرده‌سازی Brotli یا GZIP
  10. بررسی درخواست‌های شخص ثالث
  11. پاک‌سازی و بهینه‌سازی پایگاه داده با احتیاط
  12. تست مجدد پس از هر تغییر

در سایت‌هایی که از Elementor یا افزونه‌های مشابه استفاده می‌کنند، بهتر است بارگذاری عناصر و فایل‌های اضافی بررسی شود. هر ویجت یا افزونه‌ای که در محتوای بالای صفحه قرار دارد، ممکن است CSS و JS بیشتری وارد مسیر رندر کند.

تنظیمات LiteSpeed برای LCP

اگر سرور از LiteSpeed استفاده می‌کند، افزونه LiteSpeed Cache می‌تواند بخشی از مسیر بهینه‌سازی را مدیریت کند. بااین‌حال، فعال‌سازی گزینه‌ها باید مرحله‌ای و همراه با تست باشد.

تنظیمات قابل بررسی شامل موارد زیر است:

  • Page Cache
  • Browser Cache
  • Guest Mode
  • Guest Optimization
  • CSS Minify
  • JS Minify
  • Load CSS Asynchronously
  • Delay JS
  • Image Optimization
  • Lazy Load Images
  • QUIC.cloud CDN در صورت تناسب با زیرساخت

گزینه Delay JavaScript ممکن است LCP را بهتر کند، اما در بعضی سایت‌ها باعث اختلال در منو، فرم، اسلایدر یا عناصر تعاملی می‌شود. پس از فعال‌سازی باید صفحه اصلی، مقالات، منو، جست‌وجو، سبد خرید و فرم‌های مهم بررسی شوند.

همچنین نباید تنظیمات LiteSpeed را با افزونه‌های دیگری که همان وظیفه را انجام می‌دهند، بدون برنامه ترکیب کرد. استفاده هم‌زمان از چند سیستم Minify، Lazy Load یا Cache ممکن است باعث تکرار پردازش و ایجاد ناسازگاری شود.

حذف درخواست‌های شخص ثالث

منابع شخص ثالث مانند ویدئوها، فونت‌های خارجی، چت آنلاین، نقشه‌ها و ابزارهای تبلیغاتی می‌توانند زمان اتصال و پردازش را افزایش دهند. اگر چنین منابعی در بالای صفحه قرار گرفته باشند، ممکن است روی LCP اثر منفی بگذارند.

برای کنترل آن‌ها:

  • ابزارهای غیرضروری را حذف کنید.
  • اسکریپت‌ها را تا زمان تعامل کاربر به تأخیر بیندازید.
  • ویدئو و iframe را Lazy Load کنید.
  • فونت‌های خارجی را تا حد امکان محلی کنید.
  • درخواست‌های DNS اضافی را کاهش دهید.
  • ابزارهای بازاریابی را فقط در صفحات لازم بارگذاری کنید.

استفاده از preconnect برای منابع ضروری ممکن است مفید باشد:

<link rel="preconnect" href="https://cdn.example.com" crossorigin>

اما برای هر دامنه‌ای نباید به‌صورت خودکار preconnect اضافه کرد. این ویژگی نیز بخشی از منابع اتصال مرورگر را مصرف می‌کند و باید فقط برای سرویس‌های واقعاً ضروری استفاده شود.

تصویر LCP به‌عنوان پس‌زمینه CSS

اگر تصویر اصلی با background-image در CSS تعریف شده باشد، مرورگر ممکن است آن را دیرتر از تصویر موجود در HTML کشف کند:

.hero {
  background-image: url("hero.webp");
}

برای عناصر اصلی صفحه، استفاده از تگ HTML img معمولاً کنترل بهتری روی اولویت، ابعاد، متن جایگزین و بارگذاری ارائه می‌دهد. اگر به هر دلیل استفاده از پس‌زمینه CSS ضروری است، باید مطمئن شوید فایل CSS اصلی سریع دریافت می‌شود و منبع حیاتی بیش از حد در زنجیره درخواست‌ها پنهان نمانده است.

در طراحی‌های پیچیده، می‌توان از یک تصویر HTML برای محتوای اصلی استفاده کرد و لایه‌های تزئینی را با CSS ساخت. عناصر تزئینی نباید مسیر نمایش محتوای اصلی را مسدود کنند.

رزرو فضای عنصر اصلی

رزرو فضا بیشتر با CLS ارتباط دارد، اما به‌صورت غیرمستقیم به تجربه بارگذاری LCP نیز کمک می‌کند. وقتی ابعاد تصویر از قبل مشخص باشد، مرورگر می‌تواند ساختار صفحه را زودتر محاسبه کند.

.hero-image {
  width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  display: block;
}

همچنین در HTML بهتر است width و height تصویر مشخص باشند:

<img
  src="hero.webp"
  width="1200"
  height="675"
  alt="تصویر اصلی مقاله">

این کار از تغییر ناگهانی ابعاد عنصر هنگام دریافت تصویر جلوگیری می‌کند و باعث می‌شود مرورگر فضای موردنیاز را از ابتدا در نظر بگیرد.

اشتباهات رایج در بهبود LCP

فعال‌کردن Lazy Load برای همه تصاویر

Lazy Load برای تصاویر پایین صفحه مفید است، اما تصویر اصلی نباید با همان سیاست بارگذاری شود. اعمال یک تنظیم یکسان روی تمام تصاویر، بدون تشخیص جایگاه آن‌ها، یکی از اشتباهات رایج است.

Preload کردن چند تصویر

در اسلایدرها گاهی تمام تصاویر با Preload بارگذاری می‌شوند. این کار به‌جای بهبود LCP، پهنای باند و اتصال‌های اولیه را اشغال می‌کند. فقط تصویر قابل مشاهده و اصلی باید اولویت بالا داشته باشد.

فشرده‌سازی بیش از حد

کاهش شدید کیفیت تصویر باعث ایجاد نویز، تاری و کاهش اعتماد کاربر می‌شود. هدف، رسیدن به تعادل میان کیفیت بصری و حجم فایل است، نه پایین‌آوردن حجم به هر قیمت.

Minify کردن بدون تست

فشرده‌سازی CSS و JavaScript معمولاً مفید است، اما ترکیب یا جابه‌جایی فایل‌ها می‌تواند ترتیب اجرای کدها را تغییر دهد. پس از هر تغییر باید صفحات مهم سایت از نظر ظاهر و عملکرد بررسی شوند.

تمرکز فقط روی امتیاز Lighthouse

امتیاز Lighthouse یک تست آزمایشگاهی است و به شرایط شبیه‌سازی‌شده وابسته است. گزارش کاربران واقعی و داده‌های CrUX ممکن است نتیجه متفاوتی نشان دهد. تصمیم‌گیری باید بر پایه هر دو نوع داده انجام شود.

نصب افزونه‌های متعدد بهینه‌سازی

هر افزونه بهینه‌سازی ممکن است قابلیت‌هایی مانند Minify، Lazy Load، Preload یا کش ارائه دهد. فعال‌کردن چند افزونه برای یک وظیفه، نه‌تنها ضروری نیست، بلکه می‌تواند سرعت و پایداری سایت را کاهش دهد.

روش تست LCP بعد از بهینه‌سازی

پس از اعمال تغییرات، باید سایت را در چند مرحله آزمایش کنید:

تست اول: پاک‌سازی کش

کش افزونه، کش سرور و کش مرورگر را بررسی و در صورت نیاز پاک‌سازی کنید. اگر کش نسخه قدیمی را ارائه دهد، نتیجه تست قابل اعتماد نخواهد بود.

تست دوم: بررسی موبایل

در PageSpeed Insights، ابتدا حالت موبایل را بررسی کنید. محدودیت CPU و شبکه در موبایل معمولاً مشکلات واقعی را بهتر آشکار می‌کند.

تست سوم: بررسی Waterfall

در DevTools یا WebPageTest، ترتیب دریافت منابع را بررسی کنید:

  • آیا HTML سریع دریافت می‌شود؟
  • آیا تصویر LCP زود کشف شده است؟
  • آیا تصویر چند بار دانلود شده است؟
  • آیا CSS یا JS مسیر رندر را مسدود کرده است؟
  • آیا فونت اصلی دیر دریافت می‌شود؟
  • آیا درخواست شخص ثالثی قبل از تصویر اجرا شده است؟

تست چهارم: بررسی داده‌های واقعی

اگر سایت داده کافی داشته باشد، گزارش Core Web Vitals در Search Console برای تصمیم‌گیری مهم‌تر از یک تست منفرد است. تغییرات واقعی کاربران ممکن است چند روز یا چند هفته بعد در گزارش‌ها مشخص شود.

چک‌لیست تخصصی بهبود LCP

پیش از انتشار یا بهینه‌سازی نهایی صفحه، این موارد را بررسی کنید:

  • [ ] عنصر LCP صفحه شناسایی شده است.
  • [ ] تصویر یا متن اصلی در HTML قابل کشف است.
  • [ ] تصویر LCP با Lazy Load بارگذاری نمی‌شود.
  • [ ] تصویر ابعاد مناسب و فرمت مدرن دارد.
  • [ ] ویژگی‌های width و height مشخص شده‌اند.
  • [ ] در صورت نیاز، fetchpriority="high" اضافه شده است.
  • [ ] از Preload فقط برای منبع حیاتی استفاده شده است.
  • [ ] CSS غیرضروری از مسیر رندر خارج شده است.
  • [ ] فونت اصلی محلی و کم‌حجم است.
  • [ ] اسکریپت‌های غیرضروری Defer یا Delay شده‌اند.
  • [ ] کش صفحه فعال و صحیح است.
  • [ ] TTFB سرور در محدوده قابل قبول قرار دارد.
  • [ ] درخواست‌های شخص ثالث کنترل شده‌اند.
  • [ ] صفحه در موبایل و دسکتاپ تست شده است.
  • [ ] ظاهر و عملکرد سایت پس از تغییرات بررسی شده است.

ارتباط LCP با تجربه کاربری و سئو

LCP یک شاخص فنی جدا از رفتار کاربر نیست. وقتی محتوای اصلی دیر نمایش داده می‌شود، کاربر برای مشاهده نتیجه جست‌وجو منتظر می‌ماند و احتمال بازگشت او افزایش پیدا می‌کند. این مسئله می‌تواند روی نرخ تعامل، مشاهده صفحات دیگر و رضایت کلی از سایت اثر بگذارد.

بهینه‌سازی LCP به‌تنهایی تضمین‌کننده رتبه بهتر نیست؛ اما بخشی از تجربه صفحه و کیفیت فنی سایت محسوب می‌شود. در کنار محتوای مفید، ساختار مناسب، لینک‌سازی داخلی، امنیت، سازگاری موبایل و دسترسی‌پذیری، سرعت نمایش محتوای اصلی نیز باید جدی گرفته شود.

برای بررسی ارتباط میان LCP، INP، CLS و سایر شاخص‌های تجربه صفحه، می‌توانید مقاله بهینه سازی Core Web Vitals؛ راهنمای جامع بهبود سرعت و تجربه کاربری را نیز مطالعه کنید. آن مقاله تصویری کلی از معیارهای اصلی ارائه می‌دهد؛ درحالی‌که این راهنما به‌صورت تخصصی روی مسیر شناسایی و نمایش عنصر LCP تمرکز دارد.

پرسش‌های متداول درباره بهبود LCP

بهترین زمان LCP چقدر است؟

زمان کمتر از ۲٫۵ ثانیه برای حداقل ۷۵ درصد بازدیدها، وضعیت مطلوب محسوب می‌شود. البته هدف حرفه‌ای‌تر، کاهش زمان به محدوده نزدیک به دو ثانیه یا کمتر است؛ به‌خصوص برای صفحات مهم و ورودی‌های ارگانیک.

آیا حذف تصویر شاخص LCP را بهتر می‌کند؟

ممکن است حذف تصویر زمان LCP را کاهش دهد، اما این کار همیشه راه‌حل مناسبی نیست. تصویر شاخص می‌تواند بخشی مهم از تجربه کاربری و ارتباط محتوایی صفحه باشد. بهتر است ابتدا حجم، ابعاد، فرمت، اولویت و زمان کشف تصویر اصلاح شود.

آیا فعال‌کردن fetchpriority="high" برای همه تصاویر درست است؟

خیر. این ویژگی باید فقط برای تصویر مهم و قابل مشاهده، معمولاً عنصر LCP، استفاده شود. قراردادن آن روی تصاویر متعدد باعث رقابت منابع و کاهش اثربخشی اولویت‌بندی مرورگر می‌شود.

آیا CDN همیشه LCP را کاهش می‌دهد؟

CDN می‌تواند زمان دریافت فایل‌های استاتیک را برای کاربران مناطق مختلف کاهش دهد؛ اما به‌تنهایی مشکل HTML سنگین، TTFB بالا، CSS مسدودکننده یا اسکریپت‌های اضافی را حل نمی‌کند. CDN باید در کنار کش صحیح و بهینه‌سازی منابع استفاده شود.

آیا کاهش تعداد افزونه‌ها همیشه باعث بهبود LCP می‌شود؟

حذف افزونه‌های غیرضروری معمولاً مفید است؛ اما تعداد افزونه‌ها به‌تنهایی معیار دقیقی نیست. یک افزونه ممکن است سبک و ضروری باشد، درحالی‌که یک افزونه دیگر با وجود امکانات محدود، فایل‌های زیادی در تمام صفحات بارگذاری کند. عملکرد واقعی و درخواست‌های تولیدشده باید بررسی شوند.

چرا بعد از بهینه‌سازی، امتیاز سایت تغییر زیادی نکرد؟

ممکن است مشکل اصلی مربوط به داده‌های واقعی کاربران، کیفیت شبکه، عملکرد سرور یا عنصر دیگری در مسیر رندر باشد. همچنین گاهی یک تغییر روی یک صفحه اثر دارد، اما امتیاز کلی سایت به دلیل کش یا میانگین‌گیری آزمایش‌ها تغییر محدودی نشان می‌دهد.

برای درک دقیق جزئیات فنی و معیارهای رسمی، می‌توانید مستندات رسمی Largest Contentful Paint را در سایت web.dev مطالعه کنید. این منبع معتبرترین راهنما برای شناخت عمیق این شاخص و استانداردهای گوگل است.

جمع‌بندی

بهبود Largest Contentful Paint یا LCP یک فرایند چندمرحله‌ای است که از شناسایی عنصر اصلی صفحه شروع می‌شود و تا بررسی سرور، کش، CSS، فونت، تصاویر و جاوااسکریپت ادامه پیدا می‌کند. بهترین نتیجه زمانی به دست می‌آید که ابتدا علت تأخیر مشخص شود و سپس فقط همان بخش اصلاح شود.

تصویر LCP باید سریع قابل کشف باشد، حجم و ابعاد مناسبی داشته باشد و با Lazy Load به تأخیر نیفتد. CSS ضروری باید زودتر در دسترس قرار بگیرد، اسکریپت‌های غیرضروری نباید مسیر رندر را مسدود کنند و پاسخ سرور نیز باید با کش و تنظیمات صحیح سریع ارائه شود.

بهینه‌سازی اصولی LCP به معنای نصب افزونه‌های بیشتر یا فعال‌کردن تمام گزینه‌های فشرده‌سازی نیست؛ بلکه یعنی حذف درخواست‌های غیرضروری، اولویت‌بندی منابع مهم و حفظ تعادل میان سرعت، کیفیت طراحی و عملکرد واقعی سایت.

سئوالات ، مشکلات و نظرات شما

سئوالات ، مشکلات و نظرات خود را در رابطه با این مطلب در این بخش مطرح کنید

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

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