وقتی صحبت از سرعت سایت میشود، دیگر زمان لود کل صفحه ملاک نیست. گوگل با تغییر رویکرد خود، تمرکز را بر «درک کاربر از سرعت» گذاشته است. در میان تمام الگوریتمهای تجربه کاربری که گوگل برای رتبهبندی سایتها معرفی کرده، معیار LCP یا Largest Contentful Paint بیشترین وزن را دارد. این معیار دقیقاً لحظهای را میسنجد که محتوای اصلی صفحه (مثل تصویر یا تیتر اصلی) برای مخاطب قابل رویت میشود. اگر این زمان طولانی باشد، کاربر سایت شما را کند یا خراب تصور میکند، حتی اگر کدهای پشت صحنه به درستی اجرا شده باشند. در این راهنما، ما نه تنها مفهوم LCP را باز میکنیم، بلکه راهکارهای عملی و فنی برای رساندن آن به زیر ۲.۵ ثانیه را بررسی خواهیم کرد.
جدول خلاصه کاربردی
| مشخصه | توضیحات فنی و استاندارد |
| نام کامل | Largest Contentful Paint (رسم بزرگترین محتوا) |
| تعریف ساده | زمانی که طول میکشد تا مهمترین المان بصری صفحه دیده شود. |
| حد استاندارد (خوب) | کمتر از ۲.۵ ثانیه (وضعیت سبز) |
| وضعیت بحرانی (ضعیف) | بیشتر از ۴.۰ ثانیه (وضعیت قرمز) |
| عوامل مخرب اصلی | تصاویر بهینه نشده، کندی سرور (TTFB)، کدهای مسدودکننده (JS/CSS) |
| تاثیر بر سئو | بسیار بالا (جزء اصلی Core Web Vitals و فاکتور رتبهبندی) |
| ابزار دقیق سنجش | Google Search Console (داده واقعی) و PageSpeed Insights |
مفهوم LCP چیست و چرا پاشنه آشیل سرعت سایت شماست؟
معیار LCP یا Largest Contentful Paint، در سادهترین تعریف، نشاندهنده زمانی است که بزرگترین عنصر محتوایی در صفحه (که میتواند یک تصویر بزرگ، ویدیو یا بلوک متنی باشد) به طور کامل برای کاربر رندر و قابل مشاهده میشود.
چرا LCP پاشنه آشیل است؟ چون برخلاف معیارهای قدیمی که صرفاً زمان لود شدن “کل صفحه” را میسنجیدند، LCP دقیقا لحظهای را هدف میگیرد که کاربر حس میکند “سایت لود شده است”. اگر این زمان طولانی شود، کاربر تصور میکند سایت کند یا خراب است، حتی اگر بقیه اجزا در حال لود شدن باشند. طبق استانداردهای گوگل، این زمان باید زیر ۲.۵ ثانیه باشد تا تجربه کاربری “خوب” تلقی شود.
تفاوت LCP با سایر معیارهای Core Web Vitals (مثل FCP و INP)
برای درک دقیق جایگاه LCP، باید آن را در کنار سایر فاکتورهای حیاتی وب مقایسه کنیم. بسیاری از مدیران سایت تصور میکنند اگر سایت سریع “سفید” میشود (FCP خوب)، پس کار تمام است؛ اما اینطور نیست.
در جدول زیر تفاوتهای کلیدی این سه معیار را برای شما خلاصه کردهام:
| معیار | نام کامل | تمرکز اصلی | توضیحات فنی |
| FCP | First Contentful Paint | شروع لود | لحظهای که اولین پیکسل از محتوا (هر چیزی) در مرورگر ظاهر میشود. فقط نشان میدهد که سرور پاسخ داده است. |
| LCP | Largest Contentful Paint | تکمیل بصری | لحظهای که “اصلیترین” و “بزرگترین” بخش محتوا لود شده است. معیار اصلی گوگل برای سنجش سرعت لود از دید کاربر. |
| INP | Interaction to Next Paint | پاسخگویی | معیاری که جایگزین FID شد. میسنجد که وقتی کاربر کلیک میکند، چقدر طول میکشد تا مرورگر پاسخ دهد. |
نکته مهم: ممکن است FCP شما عالی باشد (سریع چیزی نمایش داده شود)، اما اگر LCP کند باشد، کاربر همچنان با یک صفحه ناقص روبرو است و تجربه رضایتبخشی نخواهد داشت.
تاثیر مستقیم LCP بر سئو و نرخ تبدیل (Conversion Rate)
ارتباط LCP با سئو و فروش، یک رابطه خطی و مستقیم است. گوگل رسماً LCP را به عنوان یکی از فاکتورهای رتبهبندی (Ranking Factor) معرفی کرده است، اما تاثیر آن فراتر از رتبه است:
- تاثیر بر سئو (SEO): گوگل به دنبال صفحاتی است که تجربهای مثبت برای کاربر ایجاد کنند. سایتهایی با LCP ضعیف (بالای ۴ ثانیه)، سیگنالهای منفی تجربه کاربری به گوگل ارسال میکنند که میتواند منجر به افت رتبه، حتی با محتوای عالی شود.
- تاثیر بر نرخ تبدیل (CRO): در فروشگاههای اینترنتی، هر ۰.۱ ثانیه تاخیر در LCP میتواند باعث کاهش محسوس فروش شود. کاربری که برای دیدن تصویر محصول یا دکمه “خرید” بیش از ۳ ثانیه معطل شود، به احتمال زیاد صفحه را میبندد.
بهبود LCP مستقیماً به معنای احترام به وقت کاربر و همسویی با رویکرد “محتوای کاربر-محور” (People-First Content) است.
چگونه المنت LCP صفحه خود را به درستی شناسایی کنیم؟ (استفاده از DevTools)
بسیاری از افراد به اشتباه تصور میکنند که اسلایدر یا لوگوی هدر همیشه LCP است. برای تشخیص دقیق و علمی، باید از ابزار Chrome DevTools استفاده کنید. این کار حدس و گمان را حذف میکند و به ما دیتای واقعی میدهد.
برای شناسایی دقیق المنت LCP مراحل زیر را دنبال کنید:
- در مرورگر کروم، روی صفحه مد نظر کلیک راست کرده و گزینه Inspect را بزنید.
- به تب Performance بروید.
- دکمه Reload (آیکون چرخش) در پنل Performance را بزنید تا پروفایل لود صفحه ضبط شود.
- پس از پایان ضبط، در نمودار زمانی (Timeline)، بخش Timings را پیدا کنید.
- روی مربعی که با نام LCP مشخص شده است کلیک کنید.
- در پنل پایین (Summary)، مشخصات دقیق المنت (که آیا عکس است یا متن) به شما نمایش داده میشود و با بردن ماوس روی آن، المنت در صفحه هایلایت میشود.
این روش دقیقترین راه برای فهمیدن این است که چه چیزی سرعت سایت شما را پایین آورده است تا بتوانید برای بهینهسازی آن اقدام کنید.
تحلیل وضعیت فعلی؛ ابزارهای دقیق اندازهگیری LCP
پیش از هر اقدام فنی برای بهبود، باید بدانیم دقیقاً کجا ایستادهایم. اندازهگیری LCP صرفاً نگاه کردن به یک عدد سبز یا قرمز نیست؛ بلکه تحلیل رفتار سایت در شرایط مختلف است. برای داشتن یک استراتژی سئو صحیح، ما از ترکیبی از ابزارها استفاده میکنیم تا هم «دادههای آزمایشگاهی» و هم «دادههای میدانی» را پوشش دهیم.
در اینجا سه ابزار اصلی و روش استفاده صحیح از آنها را بررسی میکنیم:
بررسی گزارش Core Web Vitals در سرچ کنسول گوگل
سرچ کنسول (GSC) معتبرترین منبع برای درک وضعیت واقعی سایت شما در گوگل است. این ابزار بر اساس دادههای میدانی (Field Data) کار میکند؛ یعنی اطلاعاتی که از کاربران واقعی کروم (Chrome User Experience Report) جمعآوری شده است.
- چرا مهم است؟ این گزارش نشان میدهد که کاربران واقعی در طول ۲۸ روز گذشته چه تجربهای داشتهاند. اگر اینجا وضعیت LCP قرمز است، یعنی مشکل جدی است و گوگل سایت شما را کند تشخیص داده است.
- روش تحلیل: به بخش Experience > Core Web Vitals بروید. در اینجا گوگل صفحات را گروهبندی (URL Groups) میکند. نیازی نیست تکتک صفحات را بررسی کنید؛ با اصلاح الگوی یک گروه (مثلاً صفحات محصول)، مشکل تمام آن صفحات حل میشود.
استفاده از PageSpeed Insights برای دادههای آزمایشگاهی (Lab Data) و میدانی (Field Data)
ابزار PageSpeed Insights (PSI) استانداردترین ابزار گوگل است که دو نوع داده متفاوت را همزمان به شما نشان میدهد. درک تفاوت این دو برای یک متخصص سئو حیاتی است:
- دادههای میدانی (Discover what your real users are experiencing): این بخش دقیقاً همان دیتای سرچ کنسول است. اگر ترافیک سایت کم باشد، ممکن است این بخش خالی باشد. این دادهها برای سئو و رتبهبندی ملاک هستند.
- دادههای آزمایشگاهی (Diagnose performance issues): این بخش شبیهسازی لحظهای است که توسط Lighthouse انجام میشود. ممکن است در اینجا نمره LCP شما خوب باشد اما در دادههای میدانی ضعیف باشید (یا برعکس).
نکته تخصصی: برای دیباگ کردن و تست تغییرات کد، ما به «دادههای آزمایشگاهی» تکیه میکنیم چون نتیجه را فوری نشان میدهد. اما هدف نهایی، بهبود «دادههای میدانی» است.
تست سرعت واقعی با WebPageTest و Lighthouse
در حالی که PSI عالی است، گاهی برای تحلیل عمیقتر به ابزارهای تخصصیتری نیاز داریم که جزئیات بارگذاری (Waterfall) را نشان دهند.
- Lighthouse: موتور اصلی PSI است که میتوانید آن را مستقیم در مرورگر (DevTools) اجرا کنید. مزیت آن این است که سرعت سایت را در محیط لوکال یا استیجینگ (قبل از انتشار عمومی) میسنجد.
- WebPageTest: این ابزار برای تحلیلگران حرفهای است. برخلاف PSI که شرایط ثابتی دارد، WebPageTest به شما اجازه میدهد:
- موقعیت جغرافیایی: سرعت سایت را از سرورهای مختلف (مثلاً دبی یا فرانکفورت) تست کنید.
- نوع اتصال: سرعت را با اینترنت 4G یا 3G شبیهسازی کنید.
- تحلیل آبشاری (Waterfall Chart): دقیقاً ببینید کدام فایل (CSS, JS یا تصویر) باعث بلاک شدن رندر LCP شده است.
جدول زیر راهنمای سریعی برای انتخاب ابزار مناسب است:
| هدف شما | ابزار پیشنهادی | نوع داده |
| بررسی تاثیر سرعت بر رتبهبندی گوگل | Search Console | Field Data (واقعی) |
| بررسی سریع مشکلات و پیشنهادات اصلاح | PageSpeed Insights | Lab + Field |
| تحلیل عمیق فنی و فایلهای مسدودکننده | WebPageTest | Lab Data (پیشرفته) |
استراتژیهای فنی برای بهینهسازی منابع تصویری (عامل اصلی LCP)
مرورگرها برای رندر کردن صفحه منابع محدودی دارند. وقتی یک تصویر سنگین یا غیربهینه در بالای صفحه (Above the Fold) قرار میگیرد، تمام توان پردازشی مرورگر صرف دانلود و نمایش آن میشود و این یعنی LCP طولانی. استراتژی ما اینجا «کاهش حجم» به همراه «مدیریت اولویت بارگذاری» است.
انتخاب فرمتهای مدرن (WebP و AVIF) به جای JPG و PNG
دوران استفاده از JPG و PNG برای وب به سر آمده است. برای سئو تکنیکال، ما به فرمتهایی نیاز داریم که کیفیت بالا را در کمترین حجم ارائه دهند.
- WebP: امروزه استاندارد طلایی وب است. تقریباً تمام مرورگرها از آن پشتیبانی میکنند و معمولاً ۲۵٪ تا ۳۵٪ سبکتر از JPG با کیفیت مشابه است.
- AVIF: نسل جدیدتر فشردهسازی است که حتی از WebP هم سبکتر است (گاهی تا ۵۰٪). پشتیبانی مرورگرها از آن رو به افزایش است، اما هنوز به گستردگی WebP نیست.
پیشنهاد اجرایی:
توصیه من استفاده از تگ <picture> در HTML است تا مرورگر بهترین فرمت پشتیبانی شده را انتخاب کند:
HTML
<picture>
<source srcset=”image.avif” type=”image/avif”>
<source srcset=”image.webp” type=”image/webp”>
<img src=”image.jpg” alt=”توصیف تصویر”>
</picture>
پیادهسازی بارگذاری تنبل (Lazy Loading) هوشمند (و اشتباه رایج لیزی لود کردن LCP)
«لیزی لود» (Lazy Load) تکنیک فوقالعادهای است، اما استفاده نادرست از آن یکی از رایجترین اشتباهات سئو است که باعث نابودی LCP میشود.
- قانون کلی: تصاویری که خارج از دید اولیه کاربر هستند (Below the Fold) باید لیزی لود شوند.
- خط قرمز: تصویری که در اولین نمای صفحه (مثل بنر اصلی یا تصویر شاخص مقاله) دیده میشود، هرگز نباید لیزی لود شود.
اگر به تصویر LCP ویژگی loading=”lazy” بدهید، به مرورگر میگویید: «صبر کن تا بقیه چیزها لود شود و جاوااسکریپت اجرا شود، بعد این عکس را لود کن». این کار مستقیماً زمان LCP را افزایش میدهد. تصویر LCP باید همیشه loading=”eager” باشد (که حالت پیشفرض است).
استفاده از ویژگی fetchpriority=”high” برای اولویتدهی به تصویر شاخص
حتی اگر تصویر LCP را لیزی لود نکنید، مرورگر ممکن است آن را همزمان با سایر فایلهای CSS یا JS لود کند. ما میخواهیم به مرورگر دستور دهیم که این تصویر «مهمترین» فایل صفحه است.
برای این کار از ویژگی fetchpriority=”high” استفاده میکنیم. این ویژگی نسبتاً جدید است اما تأثیر فوقالعادهای بر LCP دارد زیرا تصویر را در ابتدای صف دانلود قرار میدهد.
نمونه کد صحیح:
HTML
<img src=”hero-image.webp” alt=”تصویر اصلی” fetchpriority=”high”>
نکته: از این ویژگی فقط برای ۱ یا ۲ تصویر اصلی در بالای صفحه استفاده کنید. اگر همه چیز را High کنید، اولویت معنای خود را از دست میدهد.
تکنیکهای ریسپانسیو کردن تصاویر با srcset برای موبایل
یکی از دلایل کندی LCP در موبایل، دانلود تصویر دسکتاپ (مثلاً با عرض ۱۹۰۰ پیکسل) روی گوشی موبایل (با عرض ۳۶۰ پیکسل) است. این یعنی هدر رفتن پهنای باند و پردازنده.
ما با استفاده از ویژگی srcset و sizes، نسخههای مختلفی از تصویر را به مرورگر معرفی میکنیم تا مرورگر بر اساس اندازه صفحه کاربر، مناسبترین نسخه را دانلود کند.
ساختار استاندارد:
HTML
<img
src=”small.jpg”
srcset=”large.jpg 1024w, medium.jpg 640w, small.jpg 320w”
sizes=”(min-width: 1024px) 1024px, 100vw”
alt=”تصویر ریسپانسیو”
>
این کار تضمین میکند که کاربر موبایل، تصویر سبک مخصوص موبایل را دریافت میکند و LCP سریعتری را تجربه خواهد کرد.
بهبود زمان پاسخ سرور (TTFB)؛ زیرساخت پنهان LCP
زمان دریافت اولین بایت (Time to First Byte یا TTFB) مدت زمانی است که طول میکشد تا مرورگر کاربر اولین بایت داده را پس از ارسال درخواست، از سرور شما دریافت کند.
چرا این موضوع برای LCP حیاتی است؟ چون تا زمانی که مرورگر فایل HTML اولیه را دریافت نکند، نمیداند که عکسی وجود دارد تا آن را لود کند.
اگر TTFB شما ۱ ثانیه باشد، حتی اگر تصویر LCP در ۰.۵ ثانیه لود شود، مجموع LCP شما ۱.۵ ثانیه خواهد بود. بنابراین، TTFB پایین، پیششرط LCP عالی است.
نقش هاستینگ و تاثیر ارتقا به سرورهای NVMe
اولین و سادهترین قدم، ارتقای سختافزار است. در سال ۲۰۲۵، استفاده از هاستهایی که روی هاردهای قدیمی (HDD) یا حتی SSDهای معمولی میزبانی میشوند، برای سایتهای رقابتی اشتباه است.
توصیه اکید من مهاجرت به سرورهایی است که از تکنولوژی NVMe استفاده میکنند.
- تفاوت عملکرد: درایوهای NVMe سرعت خواندن و نوشتنی تا ۶ برابر سریعتر از SSDهای معمولی دارند.
- تاثیر بر دیتابیس: سایتهای وردپرس یا فروشگاهی که کوئریهای زیادی به دیتابیس میزنند، بیشترین نفع را از NVMe میبرند، زیرا سرعت پردازش درخواستها به شدت بالا میرود و “زمان انتظار سرور” کاهش مییابد.
فعالسازی کش سمت سرور (Server-Side Caching) و کش مرورگر
کشینگ (Caching) یعنی “ذخیره کردن نتیجه برای استفاده مجدد”. ما باید در دو سطح کش را فعال کنیم تا بار پردازشی را کم کنیم:
- کش سمت سرور (Server-Side):
به جای اینکه سرور برای هر بازدیدکننده، کدهای PHP را دوباره اجرا کند و به دیتابیس وصل شود، یک نسخه HTML آماده (Static) از صفحه میسازد و به کاربر تحویل میدهد.
-
- راهکار: اگر از وبسرور LiteSpeed استفاده میکنید، افزونه LSCache معجزه میکند. در غیر این صورت، ابزارهایی مثل WP Rocket برای وردپرس ضروری هستند.
- کش مرورگر (Browser Caching):
این مورد به فایلهای استاتیک (CSS, JS, عکسها) مربوط میشود. با تنظیم هدرهای Cache-Control در فایل .htaccess یا تنظیمات سرور، به مرورگر کاربر میگوییم: «این لوگو یا فایل استایل تا یک ماه تغییر نمیکند، آن را در حافظه خودت نگه دار».
-
- نتیجه: در بازدیدهای بعدی، مرورگر نیازی به دانلود مجدد این فایلها ندارد و سرعت لود تقریباً آنی میشود.
استفاده از شبکه توزیع محتوا (CDN) برای کاهش تاخیر جغرافیایی
حتی با سریعترین سرور، “فاصله فیزیکی” باعث تاخیر میشود. اگر سرور شما در آلمان است و کاربر در ایران، سیگنال باید هزاران کیلومتر را طی کند.
CDN (Content Delivery Network) این مشکل را با کپی کردن محتوای سایت شما در سرورهای متعدد در سراسر جهان (لبههای شبکه) حل میکند.
- نحوه عملکرد: وقتی کاربر سایت را باز میکند، به جای اتصال به سرور اصلی (Origin Server)، به نزدیکترین سرور CDN متصل میشود.
- مزیت برای LCP: فایلهای سنگین (تصاویر، CSS، JS) از نزدیکترین نقطه به کاربر لود میشوند که باعث کاهش شدید TTFB و در نتیجه بهبود LCP میشود.
- پیشنهاد: استفاده از سرویسهایی مثل Cloudflare (نسخه جهانی) یا سرویسهای CDN داخلی (برای ترافیک ایران) یک استاندارد الزامی برای سئو تکنیکال است.
حذف منابع مسدودکننده رندر (Render-Blocking Resources)
منابع مسدودکننده رندر، همان فایلهای استایل (CSS) و اسکریپتهای (JavaScript) سنگینی هستند که در بخش <head> سایت قرار دارند و اجازه نمیدهند مرورگر بدنه صفحه (<body>) را ترسیم کند. هدف ما حذف این فایلها نیست، بلکه تغییر نحوه فراخوانی آنهاست تا LCP قربانی نشود.
به تعویق انداختن (Defer) فایلهای جاوا اسکریپت غیرضروری
بسیاری از اسکریپتها (مثل کدهای آمارگیر، چت آنلاین، یا اسلایدرهای پایین صفحه) برای لود اولیه صفحه ضروری نیستند. اگر اینها را به روش سنتی لود کنید، مرورگر روی آنها قفل میکند.
برای حل این مشکل، دو ویژگی (Attribute) مهم در تگ اسکریپت وجود دارد: async و defer.
- روش Async: فایل همزمان با HTML دانلود میشود اما به محض دانلود شدن، اجرا میشود و HTML را متوقف میکند. (برای اسکریپتهای تحلیلی مثل گوگل آنالیتیکس خوب است).
- روش Defer (پیشنهاد من): فایل همزمان دانلود میشود، اما اجرا نمیشود تا زمانی که کل HTML صفحه پارس (Parse) شود. این بهترین روش برای حفظ LCP است.
نحوه اجرا:
HTML
<script src=”script.js”></script>
<script src=”script.js” defer></script>
فشردهسازی (Minify) و استخراج CSS حیاتی (Critical CSS)
فایلهای CSS معمولاً حجم زیادی دارند و شامل استایلهای کل سایت هستند (فوتر، سایدبار، صفحات دیگر). لود کردن کل این فایل برای نمایش «بالای صفحه» (Above the Fold) غیرمنطقی است.
ما در اینجا دو اقدام انجام میدهیم:
- فشردهسازی (Minification): حذف فاصلهها، کامنتها و خطوط اضافه از کدها. این کار حجم فایل را کاهش میدهد اما منطق آن را تغییر نمیدهد.
- استخراج CSS حیاتی (Critical CSS): این یک تکنیک پیشرفته است. ما کدهای استایل مربوط به بخش بالای صفحه (هدر و اولین بخش محتوا) را جدا کرده و مستقیماً داخل HTML (به صورت اینلاین) قرار میدهیم. بقیه فایل CSS را به صورت غیرهمزمان (Asynchronous) لود میکنیم.
نتیجه: کاربر بلافاصله استایلدهی اولیه را میبیند و منتظر فایل CSS اصلی نمیماند. اکثر افزونههای کش مثل WP Rocket این کار را به صورت خودکار انجام میدهند.
مدیریت فونتها و جلوگیری از پرش محتوا (FOIT/FOUT)
فونتها یکی از بزرگترین دشمنان مخفی LCP هستند. مرورگرها معمولاً تا زمانی که فایل فونت دانلود نشود، متن را نشان نمیدهند (پدیده FOIT یا Flash of Invisible Text). این یعنی کاربر چند ثانیه صفحه خالی میبیند.
راه حل استاندارد، استفاده از ویژگی font-display: swap در فایل CSS است.
- عملکرد: این دستور به مرورگر میگوید: «اگر فونت اصلی هنوز دانلود نشده، متن را با یک فونت پیشفرض سیستم (مثل Arial) نشان بده و هر وقت فونت اصلی دانلود شد، آن را جایگزین (Swap) کن.»
- مزیت: متن بلافاصله خوانا میشود و LCP بهبود مییابد. اگرچه ممکن است تغییر فونت (FOUT) رخ دهد، اما از دید گوگل و کاربر، دیدن متن با فونت معمولی بهتر از ندیدن متن است.
نمونه کد CSS:
CSS
@font-face {
font-family: ‘MyWebFont’;
src: url(‘mywebfont.woff2’) format(‘woff2’);
font-display: swap;
}
تکنیکهای پیشرفته برای توسعهدهندگان حرفهای (Pro Tips)
در سطوح بالای رقابت، بهینهسازیهای معمولی (مثل فشردهسازی عکس) کافی نیستند. ما باید نحوه تعامل مرورگر با منابع حیاتی (Critical Resources) را بازمهندسی کنیم. در این سطح، هدف ما حذف هرگونه «تاخیر در کشف» (Discovery Delay) است.
استفاده از Preloading برای منابع حیاتی
به طور معمول، مرورگر باید فایل HTML را بخواند، به خطی که تصویر یا فونت در آن است برسد و سپس دانلود را شروع کند. این یعنی اتلاف وقت.
تکنیک Preload به ما اجازه میدهد در همان ابتدای سند HTML (در تگ <head>) به مرورگر دستور دهیم: «این فایل را همین الان دانلود کن، حتی قبل از اینکه به جایگاهش در صفحه برسی، چون بعداً حتماً به آن نیاز داری.»
چه چیزی را Preload کنیم؟
فقط و فقط المان LCP (معمولاً تصویر شاخص دسکتاپ/موبایل) و فونت اصلی که در متنهای بالای صفحه استفاده شده است.
کد اجرایی:
HTML
<link rel=”preload” href=”hero-image.webp” as=”image” fetchpriority=”high”>
<link rel=”preload” href=”font-bold.woff2″ as=”font” type=”font/woff2″ crossorigin>
هشدار جدی: اگر همه چیز را Preload کنید، پهنای باند را خفه میکنید و نتیجه عکس میگیرید. فقط ۲ یا ۳ منبع حیاتی را انتخاب کنید.
بهینهسازی LCP در سایتهای رندر سمت کلاینت (CSR) و فریمورکهای JS
سایتهایی که با React، Vue یا Angular به صورت خام (Client-Side Rendering) نوشته شدهاند، ذاتاً در LCP ضعیف عمل میکنند.
چرا؟ چون مرورگر ابتدا یک صفحه سفید میبیند، سپس باندل (Bundle) سنگین جاوا اسکریپت را دانلود میکند، آن را اجرا میکند، DOM را میسازد و تازه آن زمان متوجه میشود که باید یک عکس را دانلود کند.
راهکارهای مهندسی:
- مهاجرت به SSR یا SSG: بهترین راه حل، استفاده از فریمورکهایی مثل Next.js (برای React) یا Nuxt (برای Vue) است تا HTML نهایی در سمت سرور ساخته شود (Server-Side Rendering). این کار LCP را به شدت بهبود میدهد.
- استفاده از App Shell: اگر مجبور به استفاده از CSR هستید، حداقل اسکلت اولیه صفحه (رنگ هدر، جایگاه عکس و …) را در HTML اولیه قرار دهید تا کاربر صفحه سفید نبیند.
- Inline کردن تصویر LCP: تصویر شاخص را به صورت Base64 یا SVG مستقیم در HTML قرار دهید (فقط اگر حجمش بسیار کم است) تا منتظر درخواست شبکه نماند.
حل مشکل LCP در المانهای متنی (تایپوگرافی و هدینگها)
گاهی اوقات LCP تصویر نیست، بلکه یک پاراگراف یا تیتر (Heading) بزرگ است. در این حالت، مشکل اصلی فایل فونت است. تا فونت دانلود نشود، متن نمایش داده نمیشود یا با فونت پیشفرض دیده میشود (که باعث تغییر چیدمان یا CLS هم میشود).
علاوه بر استفاده از font-display: swap که قبلاً گفتیم، دو تکنیک حرفهای دیگر وجود دارد:
- Font Subsetting (زیرمجموعهگیری):
فایلهای فونت معمولاً شامل هزاران کاراکتر زبانهای مختلف هستند که شما نیاز ندارید. با ابزارهایی مثل pyftsubset، تمام کاراکترهای غیرضروری را حذف کنید و فقط حروف فارسی و انگلیسی را نگه دارید. این کار میتواند حجم فونت را از ۲۰۰ کیلوبایت به ۳۰ کیلوبایت برساند.
- Self-Hosting (میزبانی محلی):
استفاده از Google Fonts راحت است، اما نیاز به اتصال به سرور گوگل و DNS Lookup اضافه دارد. همیشه فونتها (مخصوصاً WOFF2) را روی سرور خودتان آپلود کنید تا در سریعترین زمان ممکن و بدون وابستگی خارجی لود شوند.
چکلیست نهایی و قدمهای بعدی برای سبز کردن سرچ کنسول
رسیدن به وضعیت سبز (Good) در گزارش Core Web Vitals سرچ کنسول، یک اتفاق تصادفی نیست؛ حاصل رعایت دقیق جزئیات است. این چکلیست نهایی من برای اطمینان از صحت عملکرد شماست. قبل از اینکه دکمه “Validate Fix” را در سرچ کنسول بزنید، این موارد را تیک بزنید.
خلاصه اقدامات ضروری برای سایتهای وردپرسی
وردپرس سیستم مدیریت محتوای قدرتمندی است، اما اگر به حال خود رها شود، سنگین و کند خواهد شد. برای بهینهسازی LCP در وردپرس، این «رژیم لاغری» الزامی است:
- ۱. انتخاب و تنظیم افزونه کشینگ:
- نصب WP Rocket (پیشنهاد اول) یا LiteSpeed Cache (اگر سرور لایتاسپید دارید).
- فعالسازی گزینههای Minify CSS/JS، Load JS Deferred و Generate Critical CSS.
- ۲. مدیریت تصاویر (حیاتی):
- نصب افزونههایی مثل Imagify یا ShortPixel برای تبدیل خودکار تصاویر به فرمت WebP.
- اطمینان از اینکه تصاویر دارای ویژگی width و height هستند (برای جلوگیری از CLS که برادر LCP است).
- نکته مهم: مطمئن شوید افزونههای Lazy Load، تصویر بالای صفحه (لوگو و تصویر شاخص) را لیزی لود نمیکنند (در تنظیمات Exclude کنید).
- ۳. پاکسازی کدهای اضافه (Asset Cleanup):
- استفاده از افزونه Asset CleanUp یا Perfmatters.
- غیرفعال کردن فایلهای CSS و JS افزونههایی که در صفحه اصلی استفاده نمیشوند (مثلاً فرم تماس ۷ یا ووکامرس در مقالات بلاگ نیاز نیستند).
- ۴. بهینهسازی فونت:
- استفاده از تنظیمات WP Rocket برای Preload کردن فونتهای اصلی.
- اطمینان از وجود font-display: swap در فایل استایل قالب.
مانیتورینگ مداوم پس از بهینهسازی
سئو یک پروژه نیست، یک پروسه است. وقتی تغییرات را اعمال کردید، انتظار نداشته باشید فردا صبح همه چراغها سبز شوند. گوگل برای ارزیابی LCP به دادههای ۲۸ روز گذشته کاربران نیاز دارد.
مراحل صحیح مانیتورینگ:
- تست لحظهای (Lab Data): بلافاصله بعد از اعمال تغییرات، با PageSpeed Insights تست بگیرید. اگر نمره LCP در موبایل زیر ۲.۵ ثانیه آمد، یعنی مسیر را درست رفتهاید.
- اعلام اصلاح به گوگل: به سرچ کنسول بروید، بخش Core Web Vitals، روی گزارشهای قرمز یا زرد کلیک کنید و دکمه Validate Fix را بزنید.
- دوره انتظار (۲۸ روز): گوگل شروع به جمعآوری دادههای جدید از کاربران واقعی میکند. در این مدت وضعیت به حالت Pending میرود. صبور باشید و تغییرات جدیدی روی سرور اعمال نکنید تا دادهها خراب نشوند.
- بررسی نوسانات: اگر بعد از سبز شدن، دوباره نمودار نزولی شد، بررسی کنید که آیا:
- تصاویر جدیدی با حجم بالا آپلود شده؟
- افزونه جدیدی نصب شده که کدهای JS سنگین تزریق میکند؟
- سرور دچار افت کیفیت شده است؟
نتیجهگیری
بهینهسازی LCP فرآیندی است که مرز بین یک سایت معمولی و یک سایت حرفهای را مشخص میکند. ما در این مقاله دیدیم که بهبود این معیار، صرفاً با نصب یک افزونه ممکن نیست؛ بلکه نیازمند اصلاحات در سه لایه «سرور»، «منابع تصویری» و «کدنویسی» است. از انتخاب هاست NVMe و فرمتهای مدرن مثل WebP گرفته تا تکنیکهای پیشرفتهای مثل Preload و Defer کردن جاوا اسکریپتها، همگی قطعاتی هستند که سرعت سایت شما را میسازند.
به یاد داشته باشید که هدف نهایی، فقط سبز کردن چراغهای سرچ کنسول نیست؛ هدف، احترام به زمان کاربر و ارائه تجربهای روان و بدون معطلی است. پیشنهاد میکنم همین حالا با استفاده از ابزار PageSpeed Insights یک تست بگیرید و طبق چکلیستی که ارائه شد، اولین قدم را برای اصلاح LCP بردارید.