آموزش بهینه سازی Core Web Vitals در ودپرس | راهنمای کسب امتیاز 100 در CWV وردپرس
- امین زاهد
- مطالعه در 18 دقیقه
- اسفند 26, 1403
- بدون دیدگاه
-
افزونه فیلدهای سفارشی پیشرفته (ACF Pro) | Advanced Custom Fields (ACF) Pro
نمره 1.00 از 5۳۹۰,۰۰۰ تومان -
افزونه محافظ امنیتی پیشرفته وردپرس سالید سکوریتی | Solid Security Pro ۳۹۰,۰۰۰ تومان
-
قالب وردپرس خلاقانه، چندمنظوره و پیشرفته گوهر | TheGem ۳۹۰,۰۰۰ تومان
-
افزونه بهینه سازی و افزایش سرعت مرغ مگس خوار | WPMU DEV ۴۲۹,۰۰۰ تومان
در دنیای رقابتی طراحی وب امروز، سرعت و عملکرد وبسایت به یکی از مهمترین فاکتورهای موفقیت تبدیل شده است. بهینهسازی وردپرس برای دستیابی به امتیاز 100 در Lighthouse دیگر یک گزینه لوکس نیست، بلکه یک ضرورت حیاتی برای هر کسب و کار آنلاین محسوب میشود. گوگل با معرفی Core Web Vitals استانداردهای جدیدی را برای ارزیابی تجربه کاربری وبسایتها ارائه کرده که مستقیماً بر رتبهبندی سایتها در نتایج جستجو تأثیر میگذارد.
با توجه به اینکه بیش از 40% از وبسایتهای جهان با وردپرس ساخته شدهاند، بهینهسازی این سیستم مدیریت محتوا برای رعایت استانداردهای Core Web Vitals اهمیت ویژهای پیدا کرده است. صاحبان سایتهای وردپرسی باید بدانند که چگونه میتوانند سایت خود را برای دستیابی به حداکثر امتیاز در Lighthouse گوگل بهینه کنند.
در این راهنمای جامع از وردپرس نیاز که در هیچ کجای دنیای وب چنین مقاله و آموزش بهینه سازی را نمیبینید ، به صورت تخصصی و قدم به قدم تمام جنبههای بهینهسازی وردپرس برای دستیابی به امتیاز 100 در Core Web Vitals را بررسی خواهیم کرد. از آشنایی با مفاهیم پایه تا تکنیکهای پیشرفته، این مقاله منبعی کامل برای توسعهدهندگان، طراحان و مدیران وبسایتهای وردپرسی خواهد بود. پس با ما همراه باشید تا ببینیم چگونه میتوان تجربه کاربری در وردپرس را به سطح جدیدی ارتقا داد.
1. Core Web Vitals چیست و چرا برای سایت وردپرسی شما مهم است؟
Core Web Vitals مجموعهای از معیارهای استاندارد گوگل برای سنجش کیفیت تجربه کاربری در وبسایتها است که از سال 2020 به طور رسمی به عنوان یکی از فاکتورهای رتبهبندی در الگوریتمهای گوگل معرفی شد. این معیارها بر سه جنبه اصلی عملکرد سایت تمرکز دارند: سرعت بارگذاری، تعاملپذیری و ثبات بصری. وردپرس نیاز به توجه ویژهای در این زمینه دارد، زیرا ساختار پیچیدهای از قالبها، افزونهها و کدهای سفارشی میتواند بر این معیارها تأثیر منفی بگذارد.
اهمیت Core Web Vitals را میتوان در چند بخش کلیدی خلاصه کرد:
- تأثیر مستقیم بر سئو: گوگل به صراحت اعلام کرده که این معیارها در الگوریتم رتبهبندی نتایج جستجو تأثیرگذار هستند. سایتهایی با Core Web Vitals ضعیف، رتبههای پایینتری دریافت میکنند.
- بهبود تجربه کاربری: سایتهای سریع و واکنشگرا، نرخ تعامل و تبدیل بالاتری دارند. طبق آمار گوگل، افزایش زمان بارگذاری از 1 به 3 ثانیه، احتمال خروج کاربر را تا 32% افزایش میدهد.
- مزیت رقابتی: با بهینهسازی Core Web Vitals، میتوانید از رقبایی که به این معیارها توجه نکردهاند، پیشی بگیرید.
- سازگاری با موبایل: با توجه به اهمیت روزافزون جستجوی موبایلی، بهینهسازی Core Web Vitals برای نسخه موبایل وبسایتها حیاتی است.
اما چالشهای خاصی برای سایتهای وردپرسی وجود دارد. وردپرس نیاز به بهینهسازی در لایههای مختلف دارد – از انتخاب هاست مناسب گرفته تا مدیریت افزونهها و بهینهسازی کدها. به عنوان مثال، یک سایت وردپرسی معمولی ممکن است بیش از 50 درخواست HTTP برای بارگذاری کامل صفحه اصلی نیاز داشته باشد، در حالی که این رقم در سایتهای بهینه شده میتواند به کمتر از 20 درخواست کاهش یابد.
جدول مقایسهای تأثیر Core Web Vitals بر عملکرد سایت
معیار | سایت با Core Web Vitals ضعیف | سایت با Core Web Vitals بهینه |
---|---|---|
نرخ خروج کاربران | ۳۸٪ | ۲۲٪ |
میانگین زمان بازدید | ۲ دقیقه و ۱۰ ثانیه | ۳ دقیقه و ۴۰ ثانیه |
نرخ تبدیل | ۱.۸٪ | ۳.۲٪ |
رتبه متوسط در گوگل | صفحه ۲-۳ | صفحه ۱ |
برای درک بهتر اهمیت Core Web Vitals، کافی است بدانید که طبق گزارشهای گوگل، سایتهایی که معیارهای Core Web Vitals را برآورده میکنند، 24% کاهش در نرخ خروج کاربران و 25% افزایش در نرخ تبدیل را تجربه میکنند. این آمارها نشان میدهد که بهینهسازی این معیارها نه تنها برای سئوی تکنیکال وردپرس مهم است، بلکه مستقیماً بر درآمدزایی سایت نیز تأثیر میگذارد.
حال که با اهمیت Core Web Vitals آشنا شدیم، بیایید عمیقتر به بررسی هر یک از معیارهای اصلی آن بپردازیم تا درک بهتری از آنچه باید بهینهسازی کنیم، داشته باشیم.
2. آشنایی با معیارهای اصلی Core Web Vitals: LCP، FID و CLS
Core Web Vitals شامل سه معیار اصلی است که هر کدام جنبه مهمی از تجربه کاربری را اندازهگیری میکنند. درک دقیق این معیارها اولین قدم در مسیر بهینهسازی وردپرس برای دستیابی به امتیاز 100 در Lighthouse است. بیایید هر یک از این معیارها را به صورت تخصصی بررسی کنیم:
LCP (Largest Contentful Paint) چیست
LCP (Largest Contentful Paint) چیست؟ این معیار زمان لازم برای نمایش بزرگترین عنصر محتوایی در صفحه را اندازهگیری میکند. به عبارت سادهتر، LCP نشان میدهد کاربر چقدر باید منتظر بماند تا بخش اصلی محتوای صفحه (مانند یک تصویر بزرگ، ویدیو یا بلوک متنی) نمایش داده شود. این معیار یکی از مهمترین شاخصهای سرعت بارگذاری از دیدگاه کاربر است.
استانداردهای گوگل برای LCP:
- خوب: کمتر از 2.5 ثانیه
- نیاز به بهبود: بین 2.5 تا 4 ثانیه
- ضعیف: بیشتر از 4 ثانیه
عوامل اصلی تأثیرگذار بر LCP در سایتهای وردپرسی عبارتند از:
- زمان پاسخگویی سرور (TTFB)
- فایلهای CSS و JavaScript مسدودکننده رندر
- زمان بارگذاری منابع (به خصوص تصاویر)
- کیفیت هاست و پیکربندی سرور
FID (First Input Delay) چیست
FID (First Input Delay) چیست؟ این معیار زمان بین اولین تعامل کاربر با صفحه (مثلاً کلیک روی یک لینک) و زمانی که مرورگر به آن پاسخ میدهد را اندازهگیری میکند. FID معیاری برای سنجش تعاملپذیری صفحه است و نشان میدهد آیا سایت به اندازه کافی واکنشگرا است یا خیر.
استانداردهای گوگل برای FID:
- خوب: کمتر از 100 میلیثانیه
- نیاز به بهبود: بین 100 تا 300 میلیثانیه
- ضعیف: بیشتر از 300 میلیثانیه
مشکلات رایج FID در وردپرس شامل:
- اسکریپتهای سنگین جاوااسکریپت
- افزونههای متعدد که رویدادهای زیادی را در صفحه ثبت میکنند
- اجرای کدهای طولانی در main thread مرورگر
- عدم استفاده از تکنیکهای code-splitting و lazy-loading
CLS (Cumulative Layout Shift) چیست
CLS (Cumulative Layout Shift) چیست؟ این معیار میزان جابجایی ناخواسته عناصر صفحه در طول بارگذاری را اندازهگیری میکند. CLS زمانی رخ میدهد که عناصری مانند تصاویر، ویدیوها، فونتها یا تبلیغات بدون تعیین ابعاد مشخص بارگذاری میشوند و باعث میشوند سایر عناصر صفحه جابجا شوند.
استانداردهای گوگل برای CLS:
- خوب: کمتر از 0.1
- نیاز به بهبود: بین 0.1 تا 0.25
- ضعیف: بیشتر از 0.25
دلایل اصلی CLS بالا در سایتهای وردپرسی:
- تصاویر بدون ابعاد مشخص
- محتوای تزریق شده با جاوااسکریپت
- انیمیشنهای نامناسب
- فونتهای وب که باعث تغییر اندازه متن میشوند
- تبلیغات و ویجتهای شخص ثالث
برای درک بهتر این معیارها، به جدول مقایسهای زیر توجه کنید:
جدول ۲: مقایسه معیارهای Core Web Vitals
معیار | چه چیزی را میسنجد | تأثیر بر تجربه کاربری | چالشهای رایج در وردپرس |
---|---|---|---|
LCP | سرعت نمایش محتوای اصلی | احساس سرعت بارگذاری | تصاویر بزرگ، قالبهای سنگین، افزونههای متعدد |
FID | واکنشپذیری به تعامل کاربر | احساس پاسخگویی سایت | اسکریپتهای سنگین، افزونههای متعدد، انیمیشنهای پیچیده |
CLS | ثبات بصری صفحه | احساس پایداری و قابل اعتماد بودن | تصاویر بدون ابعاد، فونتهای وب، تبلیغات |
گوگل برای ارزیابی Core Web Vitals از دادههای واقعی کاربران (Real User Metrics یا RUM) استفاده میکند که از طریق Chrome User Experience Report (CrUX) جمعآوری میشوند. این به این معنی است که بهینهسازی باید در شرایط واقعی و برای کاربران واقعی مؤثر باشد، نه فقط در محیطهای آزمایشی.
برای بهینهسازی وردپرس با هدف بهبود Core Web Vitals، باید رویکردی جامع داشته باشیم که هر سه معیار را پوشش دهد. در ادامه این مقاله، به روشهای عملی و تکنیکهای پیشرفته برای بهبود هر یک از این معیارها خواهیم پرداخت. اما قبل از شروع بهینهسازی، باید بدانیم که وضعیت فعلی سایت ما چگونه است و برای این کار نیاز به ابزارهای مناسب داریم.
3. چگونه وضعیت فعلی Core Web Vitals سایت وردپرسی خود را بررسی کنیم؟
قبل از شروع فرآیند بهینهسازی وردپرس، ضروری است که وضعیت فعلی Core Web Vitals سایت خود را به درستی ارزیابی کنید. این مرحله به شما کمک میکند تا نقاط ضعف را شناسایی کرده و استراتژی بهینهسازی هدفمندی را تدوین نمایید. خوشبختانه، گوگل مجموعهای از ابزارهای قدرتمند برای این منظور ارائه کرده است.
PageSpeed Insights چیست
PageSpeed Insights چیست و چگونه میتواند به ما کمک کند؟ این ابزار رایگان گوگل، ترکیبی از دادههای آزمایشگاهی (Lighthouse) و دادههای واقعی کاربران (CrUX) را برای تحلیل عملکرد صفحات وب ارائه میدهد. برای استفاده از PageSpeed Insights، کافی است URL سایت خود را در PageSpeed Insights وارد کنید تا گزارش کاملی از وضعیت Core Web Vitals سایت شما نمایش داده شود.
مزایای استفاده از PageSpeed Insights:
- ارائه امتیاز عملکرد از 0 تا 100
- گزارش تفکیکی برای نسخههای دسکتاپ و موبایل
- پیشنهادات اختصاصی برای بهبود عملکرد
- نمایش دادههای واقعی کاربران در صورت وجود ترافیک کافی
جدول ارزیابی امتیاز Core Web Vitals
امتیاز | وضعیت | تفسیر |
---|---|---|
90-100 | عالی | سایت عملکرد بسیار خوبی دارد |
50-89 | نیاز به بهبود | فرصتهای بهبود وجود دارد |
0-49 | ضعیف | نیاز به بهینهسازی اساسی دارد |
گوگل Search Console
گوگل Search Console ابزار دیگری است که گزارشهای Core Web Vitals را برای کل سایت شما ارائه میدهد. این ابزار دادههای واقعی کاربران را در طول زمان جمعآوری میکند و به شما امکان میدهد روند بهبود را پیگیری کنید. برای دسترسی به این گزارشها:
- وارد حساب Search Console خود شوید
- از منوی سمت چپ، بخش “تجربه کاربری” را انتخاب کنید
- روی “Core Web Vitals” کلیک کنید
این گزارشها به شما نشان میدهند کدام صفحات مشکلات مشابهی دارند و میتوانید آنها را براساس اولویت مرتب کنید.
Lighthouse گوگل
Lighthouse گوگل یک ابزار آزمایشگاهی قدرتمند است که میتواند عملکرد، دسترسیپذیری، بهترین شیوهها، SEO و قابلیتهای پیشرفته وب را ارزیابی کند. برای استفاده از Lighthouse:
- در مرورگر Chrome، صفحه مورد نظر را باز کنید
- با فشردن F12 یا کلیک راست و انتخاب “Inspect”، DevTools را باز کنید
- به تب “Lighthouse” بروید
- گزینههای مورد نظر را انتخاب کرده و روی “Generate report” کلیک کنید
Lighthouse گزارش جامعی ارائه میدهد که شامل موارد زیر است:
- امتیاز عملکرد کلی
- زمانبندی دقیق بارگذاری صفحه
- فرصتهای بهبود با تخمین صرفهجویی در زمان
- تشخیص منابع مسدودکننده
Chrome DevTools
Chrome DevTools مجموعهای از ابزارهای توسعهدهنده است که در مرورگر Chrome تعبیه شده و امکانات پیشرفتهای برای تحلیل عملکرد ارائه میدهد:
- Performance Tab: امکان ضبط و تحلیل عملکرد صفحه را فراهم میکند
- Network Tab: تمام درخواستهای شبکه و زمانبندی آنها را نشان میدهد
- Coverage Tab: کدهای استفاده نشده CSS و JavaScript را شناسایی میکند
- Performance Insights: تحلیل خودکار Core Web Vitals را ارائه میدهد
یک تکنیک مفید برای شبیهسازی شرایط واقعی کاربران، استفاده از قابلیت “Throttling” در Chrome DevTools است. این قابلیت به شما امکان میدهد شرایط اتصال اینترنت کندتر یا دستگاههای ضعیفتر را شبیهسازی کنید.
ابزارهای تخصصی وردپرس
علاوه بر ابزارهای عمومی گوگل، افزونههای تخصصی وردپرس نیز وجود دارند که میتوانند به شما در ارزیابی و بهبود Core Web Vitals کمک کنند:
- Query Monitor: برای تحلیل کوئریهای دیتابیس و شناسایی کوئریهای کند
- Perfmatters: برای بهینهسازی عملکرد و غیرفعال کردن ویژگیهای غیرضروری
- WP Rocket: ارائه گزارشهای عملکرد همراه با راهکارهای بهبود
- Hummingbird: تحلیل عملکرد و پیشنهاد راهکارهای بهینهسازی
برای یک ارزیابی کامل، توصیه میشود از ترکیبی از این ابزارها استفاده کنید. هر ابزار دیدگاه متفاوتی ارائه میدهد که میتواند به شما کمک کند تصویر جامعتری از وضعیت Core Web Vitals سایت خود داشته باشید.
نکات کلیدی برای تحلیل موثر Core Web Vitals:
• همیشه هم نسخه موبایل و هم دسکتاپ را بررسی کنید
• چندین صفحه مختلف (صفحه اصلی، صفحات محصول، مقالات) را تحلیل کنید
• آزمایشها را چندین بار تکرار کنید تا نتایج دقیقتری به دست آورید
• به روند تغییرات در طول زمان توجه کنید
• مشکلات را براساس تأثیر و سهولت رفع اولویتبندی کنید
پس از ارزیابی دقیق وضعیت فعلی سایت، میتوانید با درک بهتری از چالشهای پیش رو، به سراغ استراتژیهای بهینهسازی بروید. در بخش بعدی، به بررسی تکنیکهای کاربردی برای بهبود LCP خواهیم پرداخت که یکی از مهمترین معیارهای Core Web Vitals است.
4. استراتژی جامع بهینهسازی LCP در وردپرس
LCP (Largest Contentful Paint) چیست یکی از مهمترین معیارهای Core Web Vitals است که مستقیماً بر احساس سرعت کاربران تأثیر میگذارد. بهبود LCP در سایتهای وردپرس نیاز به رویکردی چندلایه دارد، زیرا عوامل متعددی از سطح سرور تا کدهای فرانتاند میتوانند بر آن تأثیر بگذارند. در این بخش، استراتژیهای تخصصی برای بهینهسازی LCP را بررسی میکنیم.
بهینهسازی TTFB (Time To First Byte)
TTFB (Time To First Byte) نقطه شروع تمام فرآیندهای بارگذاری است و تأثیر مستقیمی بر LCP دارد. برای بهبود TTFB در وردپرس:
- ارتقای هاست و سرور: انتخاب هاست مناسب با منابع کافی، اولین و مهمترین گام است. هاستهای مدیریت شده وردپرس معمولاً عملکرد بهتری نسبت به هاستهای اشتراکی عمومی دارند.
- پیادهسازی کش سرور: استفاده از سیستمهای کش در سطح سرور مانند Redis یا Memcached میتواند TTFB را به طور چشمگیری کاهش دهد. این کد را میتوان به فایل wp-config.php اضافه کرد:
PHP<code>define('WP_CACHE', true);
- بهینهسازی دیتابیس: اجرای منظم عملیات بهینهسازی دیتابیس، حذف دادههای زائد و استفاده از ایندکسهای مناسب میتواند زمان پاسخگویی را کاهش دهد. میتوانید از افزونههایی مانند WP-Optimize استفاده کنید یا این کوئری را مستقیماً اجرا کنید:
SQL<code>OPTIMIZE TABLE wp_posts, wp_postmeta, wp_options;
- استفاده از CDN: شبکههای توزیع محتوا میتوانند TTFB را با نزدیک کردن محتوا به کاربر نهایی کاهش دهند. CDNهای معتبر برای وردپرس شامل Cloudflare، StackPath و BunnyCDN هستند.
بهینهسازی CSS و JavaScript برای LCP
فایلهای CSS و JavaScript مسدودکننده رندر، یکی از رایجترین دلایل LCP ضعیف هستند:
- حذف CSS مسدودکننده رندر: استفاده از تکنیک Critical CSS برای بارگذاری فوری استایلهای ضروری و به تعویق انداختن بقیه. این کد میتواند به هدر سایت اضافه شود:
PHP<code>function add_critical_css() {
echo '<style id="critical-css">' . file_get_contents(get_template_directory() . '/assets/css/critical.css') . '</style>';
echo '<link rel="preload" href="' . get_template_directory_uri() . '/assets/css/main.css" as="style" onload="this.onload=null;this.rel=\'stylesheet\'">';
echo '<noscript><link rel="stylesheet" href="' . get_template_directory_uri() . '/assets/css/main.css"></noscript>';
}
add_action('wp_head', 'add_critical_css', 1);
- به تعویق انداختن JavaScript غیرضروری: اسکریپتهای غیرضروری را با استفاده از defer یا async بارگذاری کنید:
PHP<code>function defer_parsing_of_js($url) {
if (is_admin()) return $url;
if (strpos($url, 'jquery.js')) return $url;
return str_replace(' src', ' defer src', $url);
}
add_filter('script_loader_tag', 'defer_parsing_of_js', 10);
- مینیفای و ترکیب فایلها: استفاده از بهینهسازی CSS و JavaScript برای کاهش حجم و تعداد درخواستها. افزونههایی مانند Autoptimize این کار را به خوبی انجام میدهند.
بهینهسازی بارگذاری محتوا
عنصر محتوایی بزرگ (Largest Contentful Paint) معمولاً یک تصویر، ویدیو یا بلوک متنی بزرگ است. برای بهینهسازی بارگذاری این عناصر:
- پیشبارگذاری منابع کلیدی: استفاده از تگ preload برای منابع مهم:
PHP<code>function preload_largest_element() {
echo '<link rel="preload" href="' . get_template_directory_uri() . '/assets/images/hero.webp" as="image">';
}
add_action('wp_head', 'preload_largest_element', 1);
- استفاده از تکنیکهای lazy-loading هوشمند: Lazy loading را فقط برای تصاویر زیر fold اعمال کنید، نه برای تصاویر بالای صفحه که میتوانند LCP باشند:
PHP<code>function add_lazy_loading($content) {
return preg_replace_callback('/<img(.*?)src="(.*?)"(.*?)>/', function($matches) {
// اگر تصویر در هدر سایت است، lazy-loading را اعمال نکن
if (strpos($matches[0], 'header-image') !== false) {
return $matches[0];
}
return '<img' . $matches[1] . 'src="' . $matches[2] . '"' . $matches[3] . ' loading="lazy">';
}, $content);
}
add_filter('the_content', 'add_lazy_loading');
- بهینهسازی فونتها: استفاده از
font-display: swap
و preload برای فونتهای ضروری:
CSS<code>@font-face {
font-family: 'Primary Font';
src: url('font.woff2') format('woff2');
font-display: swap;
}
استفاده از افزونههای تخصصی وردپرس
افزونههای زیر میتوانند به طور خاص به بهبود LCP کمک کنند:
- WP Rocket: یک افزونه جامع کش که بسیاری از بهینهسازیهای مورد نیاز برای LCP را به صورت خودکار انجام میدهد
- Flying Pages: پیشبارگذاری صفحات بعدی که کاربر احتمالاً به آنها مراجعه خواهد کرد
- EWWW Image Optimizer: بهینهسازی خودکار تصاویر بدون افت کیفیت قابل توجه
اندازهگیری و تحلیل پیشرفت
پس از اعمال این تغییرات، مهم است که تأثیر آنها را بر LCP اندازهگیری کنید:
- از ابزارهای مانیتورینگ مداوم مانند SpeedCurve یا New Relic استفاده کنید
- تستها را از مناطق جغرافیایی مختلف انجام دهید
- عملکرد را روی دستگاههای مختلف (به خصوص موبایل) بررسی کنید
جدول ۴: تأثیر تکنیکهای مختلف بر بهبود LCP
پیچیدگی پیادهسازی | تکنیک LCP | تأثیر متوسط بر LCP |
---|---|---|
متوسط | بهبود هاست | 30-50% |
متوسط | کش سرور | 20-40% |
کم | CDN | 15-30% |
زیاد | Critical CSS | 20-35% |
کم | به تعویق انداختن JavaScript | 10-25% |
کم | بارگذاری منابع کلیدی | 10-20% |
کم | بهینهسازی تصاویر | 15-30% |
متوسط | بهینهسازی دیتابیس | 5-15% |
یکی از چالشهای خاص در بهینهسازی وردپرس برای LCP، تداخل افزونههای مختلف است. گاهی افزونههای بهینهسازی میتوانند با یکدیگر تداخل داشته باشند. به عنوان مثال، اگر هم از یک افزونه کش و هم از یک افزونه بهینهسازی CSS/JS استفاده میکنید، ممکن است تنظیمات آنها با هم در تضاد باشند. در چنین مواردی، بهتر است از یک راهحل جامع مانند WP Rocket استفاده کنید یا تنظیمات افزونهها را به دقت بررسی کنید.
بهبود LCP یکی از موثرترین راهها برای افزایش امتیاز 100 در Lighthouse است، اما فقط یکی از سه معیار اصلی Core Web Vitals است. در بخش بعدی، به یکی از مهمترین جنبههای بهبود LCP، یعنی بهینهسازی تصاویر در وردپرس خواهیم پرداخت.
5. بهینهسازی تصاویر در وردپرس برای بهبود Core Web Vitals
بهینهسازی تصاویر وردپرس یکی از موثرترین راههای بهبود Core Web Vitals است، زیرا تصاویر معمولاً بزرگترین عناصر صفحه هستند و تأثیر قابل توجهی بر LCP و CLS دارند. در سایتهای وردپرسی، تصاویر میتوانند تا 60% از حجم کل صفحه را تشکیل دهند، بنابراین بهینهسازی تصاویر وردپرس یک اولویت اساسی است.
استفاده از فرمتهای مدرن تصویر
فرمتهای جدید تصویر مانند WebP، AVIF و JPEG 2000 میتوانند فشردهسازی بهتری نسبت به فرمتهای سنتی مانند JPEG و PNG ارائه دهند:
- تبدیل خودکار به WebP: میتوانید با افزودن این کد به فایل functions.php، تصاویر آپلود شده را به صورت خودکار به WebP تبدیل کنید:
PHP<code>function convert_to_webp($file) {
if (!function_exists('imagewebp')) return $file;
$info = pathinfo($file['file']);
$dir = $info['dirname'];
$ext = $info['extension'];
if (!in_array($ext, ['jpg', 'jpeg', 'png'])) return $file;
$webp_file = $dir . '/' . $info['filename'] . '.webp';
if ($ext == 'png') {
$image = imagecreatefrompng($file['file']);
imagepalettetotruecolor($image);
imagealphablending($image, true);
imagesavealpha($image, true);
} else {
$image = imagecreatefromjpeg($file['file']);
}
imagewebp($image, $webp_file, 80);
imagedestroy($image);
// اضافه کردن فایل WebP به آرایه sizes
$file['sizes']['webp'] = [
'file' => basename($webp_file),
'width' => $file['width'],
'height' => $file['height'],
'mime-type' => 'image/webp'
];
return $file;
}
add_filter('wp_generate_attachment_metadata', 'convert_to_webp');
- ارائه تصاویر WebP با پشتیبانی از مرورگرهای قدیمی: با استفاده از تگ
<picture>
میتوانید هم WebP و هم فرمتهای سنتی را ارائه دهید:
PHP<code>function replace_images_with_picture($content) {
return preg_replace_callback('/<img(.*?)src="(.*?)\.(jpg|jpeg|png)"(.*?)>/', function($matches) {
$webp_url = $matches[2] . '.webp';
$original_url = $matches[2] . '.' . $matches[3];
return '<picture>
<source srcset="' . $webp_url . '" type="image/webp">
<img' . $matches[1] . 'src="' . $original_url . '"' . $matches[4] . '>
</picture>';
}, $content);
}
add_filter('the_content', 'replace_images_with_picture');
پیادهسازی هوشمند Lazy Loading
Lazy loading یک تکنیک ضروری برای بهینهسازی است، اما باید به درستی پیادهسازی شود تا LCP را تحت تأثیر قرار ندهد:
- Lazy loading بومی: وردپرس از نسخه 5.5 به بعد، به صورت پیشفرض lazy loading را پشتیبانی میکند. برای مدیریت دقیقتر آن:
PHP<code>// غیرفعال کردن lazy loading پیشفرض وردپرس
add_filter('wp_lazy_loading_enabled', '__return_false');
// پیادهسازی سفارشی lazy loading
function custom_lazy_loading($content) {
// شناسایی تصویر هدر یا تصویر اصلی
if (is_single() || is_page()) {
// تصویر اول را بدون lazy loading نگه دار (احتمالاً LCP است)
$content = preg_replace('/<img(.*?)class="(.*?)"/i', '<img$1class="$2 no-lazy"', $content, 1);
}
// اعمال lazy loading برای سایر تصاویر
$content = preg_replace('/<img((?!class=.*?no-lazy).*?)>/i', '<img$1 loading="lazy">', $content);
return $content;
}
add_filter('the_content', 'custom_lazy_loading');
- استفاده از Intersection Observer API: برای پیادهسازی lazy loading پیشرفتهتر:
JAVASCRIPT<code>document.addEventListener("DOMContentLoaded", function() {
var lazyImages = [].slice.call(document.querySelectorAll("img.lazy"));
if ("IntersectionObserver" in window) {
let lazyImageObserver = new IntersectionObserver(function(entries, observer) {
entries.forEach(function(entry) {
if (entry.isIntersecting) {
let lazyImage = entry.target;
lazyImage.src = lazyImage.dataset.src;
if(lazyImage.dataset.srcset) {
lazyImage.srcset = lazyImage.dataset.srcset;
}
lazyImage.classList.remove("lazy");
lazyImageObserver.unobserve(lazyImage);
}
});
});
lazyImages.forEach(function(lazyImage) {
lazyImageObserver.observe(lazyImage);
});
}
});
تعیین ابعاد دقیق تصاویر برای جلوگیری از CLS
یکی از دلایل اصلی CLS بالا، عدم تعیین ابعاد تصاویر است. برای حل این مشکل:
- اطمینان از وجود width و height در تگهای img:
PHP<code>function add_image_dimensions($content) {
return preg_replace_callback('/<img(.*?)>/', function($matches) {
$img_tag = $matches[0];
// اگر width و height وجود دارند، تگ را تغییر نده
if (strpos($img_tag, 'width=') !== false && strpos($img_tag, 'height=') !== false) {
return $img_tag;
}
// استخراج URL تصویر
preg_match('/src="([^"]*)"/', $img_tag, $src_match);
if (empty($src_match[1])) return $img_tag;
$src = $src_match[1];
$upload_dir = wp_upload_dir();
$file_path = str_replace($upload_dir['baseurl'], $upload_dir['basedir'], $src);
if (file_exists($file_path)) {
list($width, $height) = getimagesize($file_path);
$img_tag = str_replace('<img', '<img width="' . $width . '" height="' . $height . '"', $img_tag);
}
return $img_tag;
}, $content);
}
add_filter('the_content', 'add_image_dimensions');
- استف اده از CSS برای حفظ نسبت ابعاد:
CSS<code>.wp-block-image img,
.entry-content img {
aspect-ratio: attr(width) / attr(height);
}
بهینهسازی پیشرفته تصاویر
تکنیکهای پیشرفتهتر برای بهینهسازی تصاویر شامل:
- ایجاد سایزهای سفارشی تصویر: برای ارائه تصاویر با اندازه مناسب برای هر نمایشگر:
PHP<code>add_image_size('mobile-hero', 576, 324, true);
add_image_size('tablet-hero', 768, 432, true);
add_image_size('desktop-hero', 1200, 675, true);
function responsive_image_markup($attachment_id, $classes = '') {
$image_meta = wp_get_attachment_metadata($attachment_id);
$width = $image_meta['width'];
$height = $image_meta['height'];
$mobile = wp_get_attachment_image_src($attachment_id, 'mobile-hero');
$tablet = wp_get_attachment_image_src($attachment_id, 'tablet-hero');
$desktop = wp_get_attachment_image_src($attachment_id, 'desktop-hero');
$full = wp_get_attachment_image_src($attachment_id, 'full');
$srcset = "{$mobile[0]} 576w, {$tablet[0]} 768w, {$desktop[0]} 1200w, {$full[0]} {$width}w";
$sizes = "(max-width: 576px) 576px, (max-width: 768px) 768px, (max-width: 1200px) 1200px, {$width}px";
return '<img src="' . $desktop[0] . '"
srcset="' . $srcset . '"
sizes="' . $sizes . '"
width="' . $width . '"
height="' . $height . '"
alt="' . get_post_meta($attachment_id, '_wp_attachment_image_alt', true) . '"
class="' . $classes . '">';
}
- فشردهسازی پیشرفته با حفظ کیفیت: میتوانید از کتابخانههای پیشرفته مانند MozJPEG برای فشردهسازی بیشتر با حفظ کیفیت استفاده کنید:
PHP<code>function compress_jpeg_with_mozjpeg($file_path) {
if (!file_exists($file_path)) return false;
$output = shell_exec("mozjpeg -outfile " . escapeshellarg($file_path . '.optimized') . " -optimize -progressive " . escapeshellarg($file_path));
if (file_exists($file_path . '.optimized')) {
rename($file_path . '.optimized', $file_path);
return true;
}
return false;
}
- تصاویر SVG برای آیکونها و گرافیکهای ساده: SVGها حجم کمتری دارند و در هر رزولوشنی واضح هستند:
PHP<code>// اجازه آپلود SVG در وردپرس
function allow_svg_upload($mimes) {
$mimes['svg'] = 'image/svg+xml';
return $mimes;
}
add_filter('upload_mimes', 'allow_svg_upload');
// امنیت SVG
function sanitize_svg($file) {
if ($file['type'] === 'image/svg+xml') {
$file_content = file_get_contents($file['tmp_name']);
$sanitized = preg_replace('/script|javascript|onclick|onerror|onload/i', 'sanitized', $file_content);
file_put_contents($file['tmp_name'], $sanitized);
}
return $file;
}
add_filter('wp_handle_upload_prefilter', 'sanitize_svg');
افزونههای مفید برای بهینهسازی تصاویر
برخی از بهترین افزونههای بهینهسازی تصاویر وردپرس عبارتند از:
- ShortPixel: فشردهسازی هوشمند تصاویر با حفظ کیفیت
- EWWW Image Optimizer: بهینهسازی خودکار تصاویر هنگام آپلود
- Imagify: فشردهسازی تصاویر با سه سطح مختلف کیفیت
- Smush: بهینهسازی تصاویر بدون کاهش قابل توجه کیفیت
- WebP Express: تبدیل خودکار تصاویر به فرمت WebP
مقایسه افزونههای بهینهسازی تصویر
افزونه | درصد متوسط کاهش حجم | پشتیبانی از WebP | API | رایگان ماهانه | قیمت نسخه حرفهای |
---|---|---|---|---|---|
ShortPixel | 50-80٪ | بله | 100 تصویر از $4.99/ماه | بله | – |
EWWW | 40-70٪ | بله | نامحدود (سرور شما) | بله | از $0/ماه |
Imagify | 60-80٪ | بله | 20MB | از $4.99/ماه | – |
Smush | 30-60٪ | بله | نامحدود | فقط در نسخه Pro | از $7.50/ماه |
WebP Express | فقط تبدیل فرمت | بله | نامحدود (سرور شما) | بله | رایگان |
بهینهسازی تصاویر وردپرس یک فرآیند مداوم است و باید به عنوان بخشی از جریان کاری منظم سایت شما در نظر گرفته شود. با پیادهسازی این تکنیکها، میتوانید حجم تصاویر را تا 70% کاهش دهید، در حالی که کیفیت بصری قابل قبولی حفظ میشود. این کاهش حجم به طور مستقیم بر LCP تأثیر میگذارد و میتواند زمان بارگذاری را تا 40% کاهش دهد.
نتیجهگیری
این مطالعه موردی نشان میدهد که دستیابی به امتیاز 100 در Lighthouse برای سایتهای وردپرسی، حتی سایتهای پیچیده مانند فروشگاههای آنلاین، امکانپذیر است. با رویکردی سیستماتیک و اجرای تکنیکهای مناسب بهینهسازی وردپرس، میتوان Core Web Vitals را به طور قابل توجهی بهبود بخشید.
بهینهسازی Core Web Vitals نه تنها رتبهبندی سایت در موتورهای جستجو را بهبود میبخشد، بلکه تجربه کاربری بهتری نیز ارائه میدهد که میتواند به افزایش نرخ تبدیل و وفاداری کاربران منجر شود. این سرمایهگذاری زمان و منابع، بازگشت سرمایه قابل توجهی در بلندمدت خواهد داشت.
امیدواریم این مطالعه موردی و راهنمای جامع بهینهسازی Core Web Vitals به شما در بهبود عملکرد سایت وردپرسی خود کمک کند. به یاد داشته باشید که بهینهسازی یک سفر مداوم است، نه یک مقصد نهایی.
- امین زاهد
- مطالعه در 31 دقیقه
- بدون دیدگاه
- امین زاهد
- 31 دقیقه
- 0
- امین زاهد
- مطالعه در 17 دقیقه
- بدون دیدگاه
- امین زاهد
- 17 دقیقه
- 0
- امین زاهد
- مطالعه در 27 دقیقه
- بدون دیدگاه
- امین زاهد
- 27 دقیقه
- 0