یادم می‌آید اولین باری که در Search Console تب Core Web Vitals را باز کردم، برای یک سایت مشتری بود. در دسکتاپ همه چیز سبز بود و در موبایل قرمز. اولین فرضیه‌ام مشکل اینترنت بود، بعد لود شدن کند سرور، بعد قالب. تا اینکه نشستم و سه صفحهٔ پرترافیک را خط به خط بررسی کردم. مشکل از اینترنت یا سرور یا قالب نبود؛ مشکل از یک زنجیرهٔ به‌هم‌پیوستهٔ تصمیم‌های کوچک بود که در دسکتاپ پنهان می‌ماندند و در موبایل خودشان را نشان می‌دادند. آن روز فهمیدم Core Web Vitals در وردپرس نه یک پروژهٔ تکی است و نه یک افزونهٔ معجزه‌گر — یک نقشهٔ راه مرحله‌ای است که باید از همان روز اول راه‌اندازی در پروژه جدی گرفته شود.

Core Web Vitals (شاخص‌های اصلی وب) سه معیار اصلی گوگل برای سنجش تجربهٔ صفحه است: LCP (Largest Contentful Paint) که سرعت ظاهرشدن بزرگ‌ترین عنصر دیدی صفحه را می‌سنجد، INP (Interaction to Next Paint) که پاسخ‌گویی سایت به تعامل کاربر را می‌سنجد، و CLS (Cumulative Layout Shift) که ثبات چیدمان را. هر کدام از این‌ها در وردپرس منشأ متفاوتی دارند و به همین دلیل، راه‌حل متفاوتی هم می‌طلبند. اگر هنوز با تعریف دقیق این معیارها آشنا نیستید، Core Web Vitals چیست و چرا گوگل بر آن تأکید دارد؟ پیش‌نیاز این مقاله است.

چرا CWV در وردپرس چالش اختصاصی دارد؟

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

یک: انبوه افزونه‌ها. هر افزونه که نصب می‌کنید، در هر بازدید یک لایهٔ جدید کد PHP و CSS و JS به سایت اضافه می‌کند. اگر ده افزونه داشته باشید، به‌طور میانگین ۵۰ تا ۸۰ درخواست استاتیک اضافه پردازش می‌شود. همین درخواست‌ها، در مسیر بحرانی رندر قرار می‌گیرند و هر سه معیار CWV را تحت تأثیر قرار می‌دهند. این مکانیزم را در افزونه‌های وردپرس چگونه روی سرعت سایت اثر می‌گذارند؟ باز کرده‌ام.

دو: تنوع قالب‌ها. قالب‌های چندمنظوره با دموهای پُرتزئین، معمولاً کدهای سنگینی دارند که بخش زیادی از آن‌ها در صفحه‌های معمولی استفاده نمی‌شود اما بارگذاری می‌شوند. تفاوت قالب سبک و سنگین را در چرا بعضی قالب‌های وردپرس باعث کندی سایت می‌شوند؟ تحلیل کرده‌ام.

سه: وابستگی به هاست. برخلاف سایت‌های استاتیک که می‌توانند روی CDN اجرا شوند، وردپرس برای هر بازدید به PHP و MySQL نیاز دارد. کیفیت هاست، مستقیم در TTFB (Time To First Byte) و در نتیجه در LCP اثر می‌گذارد؛ تحلیل کامل این زنجیره در تأثیر TTFB بر سرعت بارگذاری صفحه آمده است.

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

سه معیار CWV و منشأ متفاوت‌شان در وردپرس

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

معیارمنشأ اول در وردپرسمنشأ دوم
LCPتصویر شاخص و بنر هدرTTFB هاست و کش
INPجاوااسکریپت افزونه‌هاحجم DOM صفحه‌ساز
CLSتصاویر بدون ابعادفونت‌های وب و تبلیغات

نکتهٔ کلیدی این است که این سه معیار مستقل از هم‌اند. یعنی ممکن است سایت شما LCP خوب داشته باشد ولی INP بد یا برعکس. هر کدام را جداگانه باید بررسی و بهینه کنید. در پروژه‌های خودم، همیشه ابتدا CWV میدانی را از Search Console می‌خوانم و بعد تصمیم می‌گیرم روی کدام معیار اول تمرکز کنم.

بهبود LCP: از TTFB تا تصویر شاخص

LCP در بیشتر سایت‌های وردپرسی همان تصویر شاخص پست یا بنر هدر صفحهٔ اصلی است. اگر LCP شما بالای ۲/۵ ثانیه است، این پنج مرحله را به ترتیب اجرا کنید:

گام اول: کاهش TTFB

اگر اولین بایت بیش از ۶۰۰ میلی‌ثانیه طول می‌کشد، LCP از همان‌جا باخته است. راه‌حل‌ها به ترتیب اثربخشی: کش صفحه (با افزونه‌های بهترین افزونه‌های کش وردپرس)، انتخاب هاست LiteSpeed یا NVMe (راهنمای کامل در تأثیر هاست بر سرعت سایت چقدر است؟)، و فعال‌سازی OPcache در سرور. اگر می‌توانید، راه‌اندازی CDN برای سایت وردپرسی هم به کاهش TTFB کمک می‌کند.

گام دوم: فشرده‌سازی تصاویر

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

گام سوم: بارگذاری پیش‌بار تصویر LCP

روی تصویر LCP، ویژگی fetchpriority="high" و loading="eager" بگذارید. همچنین اگر می‌توانید، فایل آن را با <link rel="preload"> در head صفحه اعلام کنید. این یک تغییر کوچک، معمولاً بین ۲۰ تا ۴۰ درصد LCP را بهتر می‌کند.

گام چهارم: حذف منابع مسدودکننده بالای صفحه

هر CSS یا JS سنگینی که قبل از رندر تصویر LCP بار می‌شود، LCP را عقب می‌اندازد. استخراج CSS بحرانی (Critical CSS) و انتقال بقیه به بارگذاری تأخیری، مؤثرترین کار در این مرحله است. اگر از قالب‌های صفحه‌سازمحور استفاده می‌کنید، معمولاً این منابع سنگین‌ترند؛ برای درک ساختاری، نگاهی به قالب سبک وردپرس چیست؟ بیندازید.

گام پنجم: کنار گذاشتن lazy-load روی LCP

این اشتباه را در چند پروژه دیده‌ام: افزونهٔ بهینه‌سازی تصویر به‌صورت پیش‌فرض همهٔ تصاویر را با loading="lazy" می‌گذارد، از جمله بنر هدر. نتیجه: تصویر اصلی صفحه دیرتر از بقیه بار می‌شود. همیشه اولین تصویر دیدی صفحه را از lazy مستثنا کنید. جزئیات بیشتر در چگونه تصاویر را برای موبایل بهینه کنیم؟

بهبود INP: پاسخ‌گویی به تعامل کاربر

INP سخت‌ترین معیار CWV برای سایت‌های وردپرسی است، چون مقصرانش اغلب جاوااسکریپت‌های افزونه‌ای هستند که نمی‌توانید در کدشان دست ببرید. اما با سه استراتژی می‌توان اثرشان را کم کرد:

استراتژی یک: شناسایی افزونه‌های مقصر

در Chrome DevTools پنل Performance را باز کنید و هنگام کلیک روی منو یا هر عنصر تعاملی، ضبط کنید. اگر پیک قرمز بلندی بین کلیک و نقاشی بعدی دیدید، آن افزونه یا اسکریپت مسئول است. یکی‌یکی افزونه‌ها را خاموش کنید و دوباره تست بگیرید تا مقصر پیدا شود.

استراتژی دو: تأخیر هوشمندانه جاوااسکریپت

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

استراتژی سه: کاهش عمق DOM

هرچه DOM عمیق‌تر باشد، پردازش رویدادها کندتر است. اگر با صفحه‌سازها کار می‌کنید، تعداد لایه‌های تودرتو را کم کنید. در پروژه‌ای که یک سایت آموزش آنلاین را بهینه می‌کردم، صرفاً با کاهش عمق DOM در صفحهٔ دوره‌ها، INP موبایل ۴۰ درصد بهتر شد. جزئیات این دستاورد و روش سنجشش در رابطه Core Web Vitals و نرخ تبدیل چیست؟

بهبود CLS: پرش چیدمان و ریشه‌هایش

CLS در وردپرس معمولاً از سه منبع می‌آید: تصاویر بدون ابعاد، فونت‌های وب و عناصر تزریق‌شده. برای هر سه، راه‌حل‌های مشخصی وجود دارد. توضیح دقیق‌تر هر سه در CLS چیست و چگونه کاهش می‌یابد؟ آمده است. خلاصهٔ عملیاتی:

  • تصاویر: در تگ <img> مقدار width و height را مشخص کنید یا در CSS از aspect-ratio استفاده کنید. وردپرس از نسخهٔ ۵.۵ این را خودکار انجام می‌دهد، اما قالب‌های قدیمی آن را حذف می‌کنند.
  • فونت‌های فارسی: در @font-face مقدار font-display: swap بگذارید. برای فونت فارسی که حجم بیشتری دارد، این تنظیم حیاتی است.
  • بنرها و تبلیغات: روی ظرف آن‌ها min-height رزرو کنید تا وقتی محتوا لود شد، جای خالی از قبل وجود داشته باشد.

نقشه هفت‌گامی بهبود CWV در وردپرس

اگر بخواهم مسیری که در پروژه‌ها اجرا می‌کنم را خلاصه کنم، هفت گام است:

  1. سنجش اولیه: عدد فعلی هر سه معیار را با ابزارهای سنجش Core Web Vitals و Search Console استخراج کنید.
  2. سرعت پایه: TTFB را با کش، هاست درست و CDN به زیر ۵۰۰ میلی‌ثانیه برسانید.
  3. تصاویر: فرمت، حجم، ابعاد و lazy-load را در کل سایت استاندارد کنید.
  4. CSS و JS: CSS بحرانی را inline کنید، بقیه را با تأخیر بار کنید و افزونه‌های کم‌کاربرد را حذف کنید.
  5. فونت: font-display: swap و فونت جایگزین هم‌اندازه تنظیم کنید.
  6. تست قالب: با بهترین روش تست قالب وردپرس ببینید قالب فعلی چند درخواست و چند کیلوبایت اضافه می‌سازد.
  7. پایش ماهانه: هر ماه CWV میدانی را در Search Console چک کنید تا افت تدریجی را زود بفهمید.

این هفت گام، در تجربهٔ من روی پروژه‌های وردپرسی، همیشه به بهبود محسوس در همهٔ سه معیار منجر شده، حتی وقتی هیچ تغییری در محتوا و ساختار داده نشده.

سنجش و پایش: چطور پیشرفت را بفهمیم؟

دو نوع داده داریم و هر دو را باید جدی بگیریم. دادهٔ لابراتوار (Lighthouse، PageSpeed Insights) برای عیب‌یابی سریع و تکرارپذیر؛ دادهٔ میدانی (CrUX در Search Console) برای قضاوت نهایی. تفاوت دقیق این دو را در ابزارهای سنجش Core Web Vitals کدامند؟ باز کرده‌ام.

نکتهٔ ظریفی که کمتر کسی به آن توجه می‌کند: عدد میدانی، میانگین نیست؛ ۷۵امین صدک است. یعنی باید هفتاد‌و‌پنج درصد بازدیدهای شما آستانه را پاس کنند تا نمره سبز شود. یک صفحهٔ فرعیِ کند با ترافیک کم، نمره را خراب نمی‌کند؛ ولی صفحه‌ای با LCP بد که ۳۰ درصد بازدید روی آن است، قطعاً نمره را خراب می‌کند.

در CWV، یک عدد میدانی سبز، ارزشش از ده عدد لابراتور سبز بیشتر است. گوگل همان عددی را می‌بیند که کاربران واقعی تجربه می‌کنند.

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

چهار اشتباهی که در بازبینی پروژه‌ها زیاد دیده‌ام:

  • تمرکز روی نمرهٔ PageSpeed به‌جای عدد میدانی: نمرهٔ آزمایشگاهی می‌تواند بالا باشد ولی سایت برای کاربر واقعی همچنان کند باشد. تفاوت این دو را در بهینه‌سازی سرعت سایت چیست و چرا مهم است؟ باز کرده‌ام.
  • نصب افزونه‌های به‌اصطلاح بهینه‌ساز برای همه‌چیز: خود این افزونه‌ها می‌توانند منبع CWV بد شوند. بعضی از این‌ها در فهرست اشتباهات رایج در بهینه‌سازی Core Web Vitals آورده‌ام.
  • نادیده گرفتن تفاوت موبایل و دسکتاپ: اکثر مشکلات CWV فقط در موبایل خودشان را نشان می‌دهند. اگر فقط روی دسکتاپ تست بگیرید، نصف مشکل را نمی‌بینید.
  • تغییرات هم‌زمانِ متعدد: اگر ده تغییر را هم‌زمان اعمال کنید، نمی‌فهمید کدام اثر مثبت داشته و کدام منفی. یک تغییر، یک اندازه‌گیری، یک نتیجه.

پاسخ به سؤال‌های متداول درباره Core Web Vitals

آیا CWV روی رتبه گوگل اثر مستقیم دارد؟

اثر CWV بر رتبه، تعدیل‌گر است نه تعیین‌کننده. یعنی محتوای بی‌ربط با CWV عالی هم رتبه نمی‌گیرد؛ اما در رقابت نزدیک بین دو سایت هم‌سطح، همان معیارها تفاوت را می‌سازند. توصیهٔ من: CWV را به‌عنوان ستون‌های تجربهٔ کاربر جدی بگیرید، ولی به‌عنوان تنها استراتژی سئو نبینید.

بهترین افزونه برای بهبود CWV در وردپرس کدام است؟

هیچ افزونهٔ تکی، CWV را کامل حل نمی‌کند. ترکیب درست، یک افزونهٔ کش حرفه‌ای (مثل WP Rocket یا LiteSpeed Cache)، یک افزونهٔ بهینه‌سازی تصویر، و یک قالب سبک استاندارد است. راهنمای انتخاب کش در بهترین افزونه‌های کش وردپرس و بهینه‌سازی تصویر در بهترین افزونه‌های بهینه‌سازی تصاویر وردپرس آمده است.

چقدر طول می‌کشد تا CWV بهبود یابد؟

در دادهٔ لابراتور، تغییرات را همان لحظه می‌بینید. اما در دادهٔ میدانی CrUX، به‌خاطر پنجرهٔ ۲۸ روزه، تغییرات دو تا چهار هفته زمان می‌برد تا در Search Console منعکس شود. برای دیدن نتیجهٔ واقعی، صبور باشید و در بازهٔ یک ماه پایش کنید.

آیا CDN روی CWV تأثیر دارد؟

بله و بیشتر از آن که تصور می‌شود. CDN روی LCP اثر مستقیم و روی INP و CLS اثر غیرمستقیم دارد. مکانیزم دقیق این تأثیر را در CDN چگونه سرعت سایت را متحول می‌کند؟ باز کرده‌ام.

چرا نمره CWV من در دسکتاپ سبز است ولی در موبایل قرمز؟

سه دلیل اصلی: قدرت پردازش کمتر موبایل (پردازنده ضعیف‌تر، حافظه کمتر)، شبکهٔ کندتر موبایل (۴G واقعی نه وای‌فای اداری)، و تجربهٔ لمسی که روی CPU سنگین‌تر است. همیشه CWV را از منظر موبایل بسنجید و آن را معیار اصلی بگیرید. تفصیل بیشتر در چگونه Core Web Vitals را در موبایل بهبود دهیم؟

کلام آخر: CWV به‌عنوان یک عادت، نه یک پروژه

بهبود Core Web Vitals در وردپرس، یک کار یک‌بارهٔ فنی نیست. هر افزونه‌ای که نصب می‌کنید، هر محتوایی که منتشر می‌کنید، هر بار که قالب را آپدیت می‌کنید، CWV می‌تواند تغییر کند. کسی که یک بار CWV را بهبود می‌دهد و بعد رهایش می‌کند، شش ماه بعد دوباره در همان نقطهٔ اول برمی‌گردد. کسی که آن را به یک عادت ماهانه تبدیل می‌کند، همیشه یک قدم جلوتر است.

پیشنهاد عملی من: ابتدا با Search Console عدد فعلی هر سه معیار را یادداشت کنید. بعد نقشهٔ هفت‌گامی این مقاله را در سه هفته اجرا کنید. و از هفتهٔ چهارم، یک روز در ماه را برای پایش اختصاص دهید. اگر تجربه‌ای از بهبود CWV در سایت وردپرسی دارید — به‌خصوص اگر تکنیکی کشف کرده‌اید که در این مقاله نبوده — برایم بنویسید؛ همان تکنیک میدانی، از هر مستندات رسمی برای خواننده بعدی مفیدتر است. 🚀