اگر سایت وردپرسیتان در PageSpeed Insights امتیاز پایینی میگیرد یا Core Web Vitals شما قرمز است، احتمالاً چند اشتباه کلیدی درمورد افزایش سرعت سایت دارید که در این راهنما به ترتیب اولویت برطرف میکنیم. این مقاله از پایهایترین تنظیمات شروع میشود و تا پیشرفتهترین تکنیکهای 2026 پیش میرود.
چرا سرعت سایت مستقیماً روی رتبه و درآمد تأثیر میگذارد؟
گوگل از سال ۲۰۲۱ Core Web Vitals را بهعنوان فاکتور رتبهبندی رسمی اعلام کرد. یعنی اگر سایت شما کند باشد، حتی اگر محتوای عالی داشته باشید، از رقبای سریعتر عقب میافتید. اما مسئله فقط SEO نیست.
آمازون یک بار محاسبه کرد که هر ۱۰۰ میلیثانیه تأخیر در بارگذاری صفحه، ۱٪ از فروش را کاهش میدهد. برای یک سایت فروشگاهی حتی کوچک، این عدد معنادار است. نرخ پرش (Bounce Rate) سایتهایی که بین ۱ تا ۳ ثانیه بارگذاری میشوند، ۳۲٪ بالاتر از سایتهایی است که زیر ۱ ثانیه لود میشوند.
قانون ۸۰/۲۰ سرعت: ۸۰٪ بهبود عملکرد شما از ۴ اقدام میآید: هاستینگ مناسب، کشینگ، بهینهسازی تصاویر، و حذف منابع مسدودکننده رندر. بقیه تکنیکها اضافهکاری است که اگر این ۴ مورد را نداشته باشید، بیفایدهاند.
Core Web Vitals را باید بشناسید
قبل از هر اقدامی، باید بدانید گوگل دقیقاً چه معیارهایی را اندازه میگیرد. این ۴ معیار اصلی هستند:
زیر ۲.۵ ثانیه
LCP – بزرگترین محتوای قابل مشاهده
زیر ۲۰۰ms
INP – تعامل تا رندر بعدی
زیر ۰.۱
CLS – جابجایی تجمعی چیدمان
زیر ۲۰۰ms
TTFB – زمان تا اولین بایت
| معیار | وضعیت خوب | نیاز به بهبود | ضعیف |
|---|---|---|---|
| LCP | زیر ۲.۵ ثانیه | ۲.۵ تا ۴ ثانیه | بیش از ۴ ثانیه |
| INP | زیر ۲۰۰ms | ۲۰۰ تا ۵۰۰ms | بیش از ۵۰۰ms |
| CLS | زیر ۰.۱ | ۰.۱ تا ۰.۲۵ | بیش از ۰.۲۵ |
| TTFB | زیر ۲۰۰ms | ۲۰۰ تا ۶۰۰ms | بیش از ۶۰۰ms |
چرا LCP مهمترین معیار است؟
LCP نشان میدهد بزرگترین تصویر یا متن صفحه (معمولاً هدر یا تصویر شاخص) چقدر زود نمایش داده میشود. در اکثر سایتهای وردپرسی، LCP همان تصویر Featured Image یا بنر هدر است. بهینهسازی تصاویر و کشینگ بیشترین تأثیر را روی این معیار دارند.
قبل از هر کاری سرعت را اندازه بگیرید
بزرگترین اشتباه این است که بدون بنچمارک اولیه شروع به تغییر کنید. اگر عدد پایه نداشته باشید، نمیدانید کدام تغییر واقعاً اثر داشته.
ابزارهای اصلی تست سرعت
- Google PageSpeed Insights: دادههای واقعی از کاربران Chrome + دادههای آزمایشگاهی. نقطه شروع ضروری چون گوگل دقیقاً همین را میبیند.
- GTmetrix: از یک مرورگر Chrome واقعی برای تست استفاده میکند. نمودار آبشاری (Waterfall) دقیق دارد و میتوانید مکان تست را انتخاب کنید.
- WebPageTest: ابزار پیشرفته برای دیباگ عمیق. شبیهسازی اتصال ۳G، موبایل، و حالتهای مختلف را پشتیبانی میکند.
- Google Search Console: در بخش Core Web Vitals، مشکلات URL گروهبندیشده واقعی سایت شما را نشان میدهد.
- Pingdom: برای چک سریع بعد از اعمال هر تغییر.
🔹 فرآیند صحیح تست
- ابتدا از Google Search Console بخش Core Web Vitals را چک کنید (دادههای فیلد واقعی)
- URLهای مشکلدار را در PageSpeed Insights بررسی کنید تا المان LCP شناسایی شود
- همان URLها را در GTmetrix هم تست کنید تا Waterfall را ببینید
- نتایج را قبل از تغییرات ذخیره کنید
- بعد از هر تغییر، دو بار تست کنید (اول برای گرم کردن کش، دوم برای اندازهگیری واقعی)
اشتباه رایج: تغییرات زیاد را یکجا اعمال نکنید. یک تغییر در یک زمان بدهید تا بدانید هر اقدام چقدر تأثیر داشته. در غیر این صورت، نه میدانید چه چیزی کمک کرد و نه چه چیزی آسیب زد.
مرحله اول: هاستینگ – بزرگترین تأثیر را دارد
هاستینگ پایه همه چیز است. اگر سرور شما کند باشد، هیچ افزونهای نمیتواند این مشکل را جبران کند. TTFB بالای ۶۰۰ms در اکثر مواقع نشانه مشکل در هاستینگ است.
چه چیزی در هاست اهمیت دارد؟
- وب سرور: LiteSpeed سریعتر از Apache و Nginx در بارهای سنگین است. اگر هاستتان LiteSpeed دارد، از LiteSpeed Cache استفاده کنید.
- PHP Handler: PHP-FPM یا LSAPI بهتر از CGI/FastCGI است
- SSD Storage: هاستهای SSD vs HDD تفاوت محسوسی در زمان پاسخ دیتابیس دارند
- منابع اختصاصی: هاست اشتراکی ارزان با دهها سایت روی یک سرور، TTFB شما را به بدترین حالت میرساند
- موقعیت سرور: فاصله فیزیکی سرور از کاربر مستقیماً روی latency تأثیر دارد
مطالعه پیشنهادی: بهترین شرکتهای هاستینگ ایرانی
چه زمانی باید هاست عوض کنید؟
اگر TTFB شما بعد از فعال کردن کش، همچنان بالای ۸۰۰ms است و هیچ افزونه سنگینی هم ندارید، زمان مهاجرت به هاست بهتر رسیده. هاستهای مدیریتشده وردپرس مثل Kinsta، WP Engine یا Cloudways معمولاً TTFB زیر ۲۰۰ms دارند. در ایران، هاستهایی که از LiteSpeed استفاده میکنند و سرور آنها در اروپا یا خاورمیانه است، گزینه بهتری برای کاربران ایرانی هستند.
تست عملی: با ابزار KeyCDN Performance Test، TTFB سایتتان را از لوکیشنهای مختلف چک کنید. اگر همه مکانها TTFB بالا دارند، مشکل از هاست است. اگر فقط برخی مکانها کند هستند، CDN مشکل را حل میکند.
مرحله دوم: کشینگ – بزرگترین دستاورد با کمترین تلاش
وردپرس بهصورت پیشفرض برای هر درخواست، صفحه را از نو میسازد: به دیتابیس وصل میشود، PHP اجرا میکند، محتوا را ترکیب میکند و میفرستد. یک سیستم کش این فرآیند را به ارسال یک فایل استاتیک HTML ساده تبدیل میکند. نتیجه؟ TTFB میتواند ۵۰٪ یا بیشتر کاهش یابد.
انواع کش که باید فعال کنید
- Page Cache: کاملترین و مهمترین نوع. فایل HTML صفحه را ذخیره میکند
- Browser Cache: به مرورگر میگوید فایلهای استاتیک (CSS, JS, تصاویر) را برای مدت مشخصی ذخیره کند
- Object Cache: نتایج کوئریهای دیتابیس را در حافظه Redis یا Memcached نگه میدارد
- Server-Level Cache: اگر هاست شما این قابلیت را دارد (مثل Nginx FastCGI Cache یا LiteSpeed Cache)، از آن استفاده کنید چون PHP را کاملاً دور میزند
کدام افزونه کش انتخاب کنم؟
| افزونه | قیمت | وب سرور مناسب | سطح دشواری | بهترین برای |
|---|---|---|---|---|
| LiteSpeed Cache | رایگان | LiteSpeed | متوسط | هاستهای LiteSpeed |
| FlyingPress | پولی | Nginx / Apache | متوسط | Core Web Vitals |
| WP Rocket | ۵۹$ / سال | همه | آسان | مبتدیان + همه سرورها |
| W3 Total Cache | رایگان | همه | پیشرفته | کاربران حرفهای |
| WP Super Cache | رایگان | همه | آسان | سایتهای کوچک و بلاگ |
قانون کلیدی: اگر هاستتان LiteSpeed دارد، LiteSpeed Cache را نصب کنید. اگر ندارد، FlyingPress یا WP Rocket را. دو افزونه کش همزمان نصب نکنید — تداخل ایجاد میشود.
تنظیمات اولیه WP Rocket (آموزش عملی)
🔹 گامهای اساسی پیکربندی WP Rocket
- Cache: گزینه “Enable caching for mobile devices” را فعال کنید
- File Optimization:
- Minify CSS Files را فعال کنید
- Combine CSS Files را در صورت عدم بروز مشکل فعال کنید
- Load JS Deferred را فعال کنید
- Delay JS Execution را فعال کنید (بعد سایت را تست کنید)
- Media: Enable LazyLoad را برای تصاویر فعال کنید
- Preload: Enable preloading را فعال کنید تا کش گرم بماند
- Database: Revisions, Auto Drafts و Trashed Posts را روی حذف هفتگی تنظیم کنید
نکته: بعد از هر تغییر، حتماً کش را پاک کنید و سایت را تست کنید. برخی تنظیمات ممکن است JavaScript سایت را بشکنند.
مرحله سوم: بهینهسازی تصاویر – اغلب بیشترین وزن را دارند
در اکثر سایتهای وردپرسی، تصاویر ۵۰ تا ۷۰ درصد حجم کل صفحه را تشکیل میدهند. اگر یک تصویر ۳ مگابایتی آپلود کردهاید که در سایز ۸۰۰ پیکسل نمایش داده میشود، دقیقاً ۹۰٪ پهنای باند هدر میرود.
فرمتهای مدرن: WebP و AVIF
- WebP: نسبت به JPEG معادل، ۲۵ تا ۳۴٪ کوچکتر است با همان کیفیت. پشتیبانی مرورگر تقریباً ۱۰۰٪ است. از وردپرس ۵.۸ بهصورت بومی پشتیبانی میشود.
- AVIF: بهطور متوسط ۵۰٪ کوچکتر از JPEG است. از وردپرس ۶.۵ (مارس ۲۰۲۴) بهصورت بومی پشتیبانی میشود. پیشنهاد: AVIF بههمراه WebP بهعنوان fallback استفاده کنید.
استراتژی کامل بهینهسازی تصویر
🔹 چکلیست بهینهسازی تصاویر
- قبل از آپلود: تصویر را به سایز نمایشی تغییر دهید. اگر تصویر ۸۰۰px نشان داده میشود، با ۸۰۰px آپلود کنید نه ۴۰۰۰px.
- فشردهسازی: برای عکسها از کیفیت ۷۰-۸۰٪ در JPEG/WebP استفاده کنید. برای گرافیکهای ساده و شفاف، PNG یا lossless WebP.
- Lazy Loading: همه تصاویر زیر Fold را lazy load کنید. اما تصویر LCP (اولین تصویر بزرگ روی صفحه) را هرگز lazy load نکنید.
- fetchpriority=”high”: برای تصویر LCP این attribute را تنظیم کنید تا مرورگر آن را اول لود کند.
- ابعاد صریح: همیشه width و height مشخص کنید تا CLS صفر شود.
- srcset: چندین سایز برای دستگاههای مختلف تعریف کنید.
بهترین افزونههای بهینهسازی تصویر
| افزونه | قابلیتها | قیمت |
|---|---|---|
| ShortPixel | WebP + AVIF، فشردهسازی هوشمند، حجم bulk | رایگان تا ۱۰۰ تصویر/ماه |
| Smush | WebP، lazy load، CDN، اندازهگیری خودکار | رایگان / Pro |
| Imagify | WebP + AVIF، بهترین نسبت کیفیت-فشردهسازی | رایگان ۲۰MB/ماه |
| WP-Optimize | بهینه دیتابیس + فشردهسازی تصویر | رایگان |
اشتباه رایج: Lazy Load را روی تصویر اول صفحه (hero یا featured image) فعال نکنید. این کار مستقیماً LCP را خراب میکند و امتیاز PageSpeed شما را پایین میآورد.
مرحله چهارم: CSS و JavaScript – رفع منابع مسدودکننده رندر
مرورگر قبل از نمایش هر چیزی، باید تمام فایلهای CSS و JS که در <head> هستند را دانلود و اجرا کند. هر فایلی که قبل از رندر صفحه اجرا شود و ضروری نباشد، یک منبع مسدودکننده رندر (Render-blocking Resource) است.
تکنیکهای رفع منابع مسدودکننده
۱. Defer برای JavaScript
Defer به مرورگر میگوید: «این فایل را در پسزمینه دانلود کن، اما تا پایان پارس HTML صبر کن.» این گزینه ایمنترین روش است چون ترتیب فایلها حفظ میشود. Async سریعتر است اما ترتیب را رعایت نمیکند و ممکن است سایت را بشکند.
۲. Delay JavaScript Execution
برخی اسکریپتها (مثل چتها، ردیابها یا ویجتهای SNS) تا زمانی که کاربر با صفحه تعامل نکرده کاملاً بیاستفادهاند. Delay کردن آنها تا اولین حرکت موس یا اسکرول، FCP و LCP را بهبود میدهد.
۳. CSS Minification
حذف فضاهای خالی، کامنتها و کاراکترهای اضافی از فایلهای CSS. معمولاً ۲۰-۳۰٪ حجم را کاهش میدهد.
۴. Critical CSS (CSS بحرانی)
CSS بحرانی فقط استایلهای مورد نیاز برای رندر بخش قابل مشاهده صفحه (above the fold) است. این استایلها بهصورت inline در داخل <head> قرار میگیرند و بقیه CSS بهصورت async لود میشود. نتیجه: FCP و LCP بهتر میشوند چون مرورگر نیازی نیست منتظر دانلود همه CSS بماند.
🔹 چگونه منابع مسدودکننده را در WP Rocket رفع کنیم؟
- به Settings > WP Rocket > File Optimization بروید
- تیک Remove Unused CSS را بزنید
- تیک Load JavaScript Deferred را بزنید
- تیک Delay JavaScript Execution را بزنید
- کش را پاک کنید و سایت را از صفحه اصلی، بلاگ، و یک پست تست کنید
- اگر چیزی شکسته، اسکریپت مشکلساز را به Exclusion List اضافه کنید
Remove Unused CSS – احتیاط لازم است
این قابلیت یکی از قویترین بهینهسازیهاست اما میتواند مشکل ایجاد کند. برخی استایلها که بهنظر میرسند استفاده نمیشوند، ممکن است برای حالتهای خاص (hover، modal، logged-in) ضروری باشند. همیشه بعد از فعال کردن، کل سایت را با دقت بررسی کنید، خصوصاً فرمها، منوها و اسلایدرها.
مرحله پنجم: بهینهسازی دیتابیس
دیتابیس وردپرس با گذشت زمان پر از زباله میشود: ریویژنهای پست، draftهای خودکار، ترنزیشنهای منقضیشده، نظرات اسپم و دادههای افزونههای حذفشده. این دادهها مستقیماً زمان کوئریها را افزایش میدهند.
چه چیزهایی باید پاک شوند؟
- Post Revisions: وردپرس بهصورت پیشفرض تعداد نامحدودی ریویژن نگه میدارد. در
wp-config.phpاین را محدود کنید:define('WP_POST_REVISIONS', 5); - Auto Drafts: Draftهای ذخیرهشده خودکار که هیچوقت منتشر نشدهاند
- Expired Transients: دادههای موقت منقضیشده که همچنان در دیتابیس باقی ماندهاند
- Spam Comments: نظرات اسپم و نظرات داخل Trash
- Orphaned Metadata: متادیتای مرتبط به پستها یا کاربران حذفشده
- جداول باقیمانده افزونهها: بسیاری از افزونهها بعد از حذف، جداول دیتابیس خود را نگه میدارند
بهینهسازی با WP-Optimize
🔹 پاکسازی دیتابیس با WP-Optimize
- WP-Optimize را نصب کنید
- به WP-Optimize > Database بروید
- همه گزینههای Cleanup را مرور کنید
- قبل از هر چیز یک بکاپ بگیرید
- گزینههای Revisions, Auto Drafts, Transients و Spam Comments را انتخاب کنید
- روی Run All Selected Optimizations کلیک کنید
- یک زمانبند هفتگی تنظیم کنید تا این کار خودکار انجام شود
Object Caching با Redis
اگر هاست شما Redis یا Memcached دارد، حتماً از آن استفاده کنید. Object Cache نتایج کوئریهای پرتکرار را در حافظه RAM نگه میدارد. افزونه Redis Object Cache از طرف Till Krüss یکی از بهترین گزینههاست. برای WooCommerce با محصولات زیاد، این یکی از مؤثرترین بهینهسازیهاست.
تنظیم محدودیت Revision در wp-config.php
این دو خط را به فایل wp-config.php اضافه کنید:define('WP_POST_REVISIONS', 5);
define('AUTOSAVE_INTERVAL', 300);
اولی تعداد ریویژنها را به ۵ محدود میکند. دومی فاصله ذخیره خودکار را از ۶۰ ثانیه به ۵ دقیقه تغییر میدهد و بار سرور را کاهش میدهد.
مرحله ششم: CDN – افزایش سرعت سایت برای کاربران در همه جای دنیا
CDN یا شبکه توزیع محتوا، فایلهای استاتیک سایت شما (تصاویر، CSS، JS) را روی صدها سرور در سراسر جهان توزیع میکند. وقتی کاربری در تهران سایت شما را باز میکند، این فایلها از نزدیکترین سرور (نه سرور اصلی که ممکن است در آمریکا باشد) سرو میشوند.
Cloudflare – بهترین گزینه رایگان
Cloudflare بیش از ۳۳۰ دیتاسنتر در دنیا دارد و پلن رایگان آن برای اکثر سایتها کافی است. علاوه بر CDN، DNS سریع، فایروال، و محافظت DDoS هم ارائه میدهد.
مطالعه پیشنهادی: آموزش اتصال وب سایت به کلودفلر (Cloudflare)
🔹 راهاندازی Cloudflare برای وردپرس
- در cloudflare.com ثبتنام کنید
- دامنه خود را اضافه کنید. Cloudflare رکوردهای DNS فعلی را اسکن میکند
- Nameserverهای دامنه را به Cloudflare تغییر دهید (در پنل ثبتدامنهتان)
- در تنظیمات Cloudflare:
- SSL را روی Full (Strict) قرار دهید
- Auto Minify برای HTML، CSS، JS را فعال کنید
- Brotli Compression را فعال کنید
- در بخش Speed > Optimization، Rocket Loader را تست کنید (ممکن است با برخی پلاگینها تداخل داشته باشد)
- افزونه Cloudflare را در وردپرس نصب کنید تا API Key متصل شود
- APO (Automatic Platform Optimization) را در نظر بگیرید – ۵$ ماهیانه، HTML را هم کش میکند
CDN برای سایتهای ایرانی
اگر مخاطبان شما عمدتاً در ایران هستند و از فیلترشکن استفاده نمیکنند، CDNهای خارجی ممکن است مفید نباشند. در این حالت، از سرویسهای CDN ایرانی مثل ArvanCloud، Cdn.ir یا سرویس CDN شرکت هاستینگتان استفاده کنید. اما اگر مخاطبان بینالمللی دارید، Cloudflare همچنان بهترین گزینه است.
مرحله هفتم: PHP و تنظیمات سرور
PHP را بهروز نگه دارید
بزرگترین جهش عملکردی از PHP 7.x به PHP 8.x است. طبق تستهای انجامشده، PHP 8.x نسبت به PHP 7.4 حدود ۵ تا ۱۰ درصد سریعتر است. نکته مهم اینکه بین PHP 8.2، 8.3 و 8.4 تفاوت عملکردی قابلتوجهی وجود ندارد؛ مهم این است که از PHP 7.x خارج شده باشید.
قبل از ارتقاء PHP: از افزونه PHP Compatibility Checker استفاده کنید تا مطمئن شوید همه افزونهها و قالبهایتان با نسخه جدید PHP سازگار هستند. ارتقاء بدون چک سازگاری ممکن است سایت را خراب کند.
فعال کردن Gzip / Brotli Compression
فشردهسازی فایلهای متنی (HTML، CSS، JS) قبل از ارسال به مرورگر. Brotli جدیدتر است و ۱۵-۲۵٪ بهتر از Gzip فشرده میکند. اکثر سرورهای مدرن هر دو را پشتیبانی میکنند.
برای چک کردن اینکه فشردهسازی فعال است: در Chrome DevTools > Network، یک منبع CSS یا JS را انتخاب کنید. در Headers، مقدار Content-Encoding: gzip یا Content-Encoding: br باید باشد.
فعال کردن HTTP/2 یا HTTP/3
HTTP/2 اجازه میدهد چندین درخواست بهصورت همزمان از طریق یک اتصال ارسال شوند (multiplexing). HTTP/3 که مبتنی بر QUIC است، اتصالهای سریعتر و مقاومتر در شبکههای بیثبات دارد. اکثر هاستهای مدرن HTTP/2 را پشتیبانی میکنند. Cloudflare HTTP/3 را رایگان ارائه میدهد.
OPcache را فعال کنید
OPcache کدهای PHP کامپایلشده را در حافظه نگه میدارد تا هر بار نیازی به پارس مجدد نباشد. روی اکثر هاستها بهصورت پیشفرض فعال است، اما ممکن است نیاز به تنظیم داشته باشد. برای چک: یک فایل PHP با phpinfo() ایجاد کنید و OPcache را جستجو کنید.
مرحله هشتم: فونتها را بهینه کنید
فونتهای Google Fonts یکی از پنهانترین دلایل کندی سایت هستند. هر بار یک درخواست DNS به سرورهای Google، دانلود فایل CSS، و سپس دانلود فایل فونت انجام میشود. این ممکن است ۲۰۰ تا ۵۰۰ms تأخیر اضافه کند.
راهحل: فونتها را روی سرور خودتان هاست کنید
🔹 Self-Hosting فونت Google
- به سایت fonts.google.com بروید
- فونت مورد نظر را انتخاب کنید. فقط weightهایی که استفاده میکنید را انتخاب کنید (مثلاً فقط ۴۰۰ و ۷۰۰)
- از ابزار google-webfonts-helper.mranftl.com فایلهای فونت را دانلود کنید
- فایلها را در
/wp-content/themes/your-theme/fonts/آپلود کنید - در CSS قالب اضافه کنید:
@font-face { font-family: 'Roboto'; src: url('/fonts/roboto.woff2') format('woff2'); font-display: swap; }
font-display: swap چیست و چرا مهم است؟
بدون این خاصیت، مرورگر متن را تا زمان بارگذاری فونت نمایش نمیدهد (FOIT – Flash of Invisible Text). با font-display: swap، مرورگر ابتدا متن را با فونت سیستمی نشان میدهد و بعد از بارگذاری، آن را با فونت اصلی جایگزین میکند. این باعث میشود محتوا سریعتر قابل خواندن باشد.
اگر نمیخواهید Self-Host کنید، LiteSpeed Cache و WP Rocket هر دو گزینه “Load Google Fonts Locally” دارند که این کار را خودکار انجام میدهند.
مرحله نهم: افزونهها و قالب – حذف بلوت
هر افزونه نصبشده CSS، JS، و کوئریهای دیتابیس اضافه میکند. مشکل این نیست که افزونه دارید؛ مشکل افزونههای سنگین، بد کدنویسیشده، یا غیرضروری است.
ممیزی افزونهها
🔹 چطور افزونههای مشکلساز را شناسایی کنیم؟
- افزونه Query Monitor را نصب کنید
- صفحه را رفرش کنید. Query Monitor نشان میدهد کدام افزونه بیشترین کوئریهای دیتابیس دارد
- همه افزونهها را غیرفعال کنید و سایت را تست کنید
- یکییکی فعال کنید و بعد هر فعالسازی تست کنید
- افزونههایی که بیشترین تأثیر منفی دارند را با جایگزین سبکتر عوض کنید یا حذف کنید
انتخاب قالب مناسب
قالبهای Page Builder محور مثل برخی نسخههای پیکربندیشده با Elementor یا WPBakery، دهها فایل CSS و JS غیرضروری لود میکنند. قالبهای بلاکبیس (Block Themes) که از معماری بومی وردپرس استفاده میکنند، بهمراتب سبکتر هستند. GeneratePress، Kadence و Astra جزو سریعترین قالبهای محبوب هستند.
Asset Loading Conditional
یکی از بهترین تکنیکها این است که CSS و JS هر افزونه فقط در صفحاتی که نیاز دارند بارگذاری شوند. افزونه Perfmatters یا Asset Manager قالبهایی مثل Kadence این قابلیت را دارند. مثلاً اگر افزونه Contact Form 7 دارید، CSS آن فقط باید در صفحه «تماس با ما» لود شود نه در همه صفحات.
تکنیکهای پیشرفته برای نتایج حرفهای
Preconnect و DNS Prefetch
اگر سایت شما از منابع خارجی (Google Fonts، CDN، سرویسهای تحلیلی) استفاده میکند، میتوانید به مرورگر بگویید از قبل اتصال DNS را آماده کند:<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="dns-prefetch" href="//www.google-analytics.com">
این دو تگ را در <head> قرار دهید. Preconnect برای اتصالات مهم، DNS-prefetch برای اتصالات کماهمیتتر استفاده میشود.
Preload برای منابع حیاتی
برای تصویر LCP، فونت اصلی، یا CSS حیاتی میتوانید از Preload استفاده کنید تا مرورگر آنها را با اولویت بالا دانلود کند:<link rel="preload" as="image" href="hero-image.webp" fetchpriority="high">
WP-Cron را غیرفعال کنید
WP-Cron پیشفرض وردپرس با هر بارگذاری صفحه چک میکند که آیا وظیفه زمانبندیشدهای باید اجرا شود. روی سایتهای پرترافیک این باعث بار اضافه میشود. راهحل: WP-Cron را غیرفعال کنید و از cron job واقعی سرور استفاده کنید.
در wp-config.php:define('DISABLE_WP_CRON', true);
سپس در هاست یا cPanel یک cron job بسازید که هر ۵ دقیقه این دستور را اجرا کند: wget -q -O - https://yourdomain.com/wp-cron.php?doing_wp_cron > /dev/null 2>&1
Pingback و Trackback را غیرفعال کنید
این ویژگیهای قدیمی وردپرس امروزه عملاً بیاستفادهاند و فقط منابع هدر میدهند. از Settings > Discussion، تیک «Allow link notifications from other blogs» را بردارید.
WooCommerce: بهینهسازی اختصاصی
فروشگاههای WooCommerce نیاز به توجه بیشتری دارند چون صفحات داینامیکتر هستند:
- از HPOS (High-Performance Order Storage) استفاده کنید که در WooCommerce 7.1+ در دسترس است
- صفحات Cart، Checkout و Account را از کش خارج کنید
- از Redis برای Object Cache حتماً استفاده کنید
- جداول دیتابیس WooCommerce را بهطور جداگانه ایندکسگذاری کنید
Heartbeat API را کنترل کنید
WordPress Heartbeat API هر ۱۵ ثانیه یک درخواست به admin-ajax.php ارسال میکند. روی سایتهایی که ادمینهای زیادی دارند یا تعداد صفحات باز زیاد است، این بار قابلتوجهی ایجاد میکند. با افزونه Perfmatters یا Heartbeat Control میتوانید این بازه را به ۶۰ ثانیه یا بیشتر تغییر دهید.
پایش مستمر – سرعت سایت یکبار تنظیم نیست
سرعت سایت در طول زمان کاهش مییابد: افزونههای جدید نصب میشوند، محتوا اضافه میشود، دیتابیس بزرگ میشود. بدون پایش، متوجه این کاهش نمیشوید.
چکلیست ماهانه
- Core Web Vitals در Google Search Console را بررسی کنید
- یک تست کامل با GTmetrix یا PageSpeed Insights انجام دهید
- دیتابیس را با WP-Optimize پاکسازی کنید
- وردپرس، قالب و افزونهها را بهروزرسانی کنید
- تصاویر جدید آپلودشده را چک کنید که فرمت و فشردهسازی صحیح دارند
ابزار DebugBear برای مانیتورینگ مستمر
DebugBear Core Web Vitals را در طول زمان ردیابی میکند و بهمحض اینکه یک تغییر کد باعث کاهش عملکرد شود، هشدار میدهد. این خصوصاً برای سایتهایی که تیم توسعهدهنده دارند و مرتباً تغییر میکنند، ارزشمند است.
برنامهریزی بهبود تدریجی
| مرحله | بازه زمانی | اقدامات |
|---|---|---|
| فاز ۱: پایه | هفته اول | هاست مناسب، نصب افزونه کش، ممیزی افزونهها، بهینهسازی تصاویر موجود |
| فاز ۲: بهبود | هفته دوم | راهاندازی CDN، بهینهسازی دیتابیس، فعال کردن Gzip/Brotli، Minify CSS/JS |
| فاز ۳: تنظیم دقیق | هفته سوم | رفع مشکلات Core Web Vitals، Critical CSS، Self-host Fonts، Preload |
| نگهداری | مستمر | مانیتورینگ ماهانه، پاکسازی دیتابیس، بهروزرسانیها |
سوالات متداول
چند افزونه وردپرس زیاد است؟
عدد مهم نیست، کیفیت مهم است. یک افزونه بد میتواند از ۵۰ افزونه خوب بدتر باشد. با Query Monitor کوئریها را اندازه بگیرید. هر افزونه باید دلیل روشنی برای وجودش داشته باشد. افزونههایی که از آنها استفاده نمیکنید را نه فقط غیرفعال، بلکه کاملاً حذف کنید.
WP Rocket ارزش قیمتش را دارد؟
برای کسی که زمان کافی برای پیکربندی دستی ندارد، بله. WP Rocket از اول تا آخر کاری میکند که با چند افزونه رایگان میتوانستید انجام دهید، اما در یک رابط واحد و با کمترین خطر تداخل. اما اگر هاست شما LiteSpeed دارد، LiteSpeed Cache کاملاً رایگان است و نتایج مشابه یا بهتری میدهد.
امتیاز ۱۰۰ در PageSpeed Insights واقعاً ممکن است؟
روی سایتهای ساده و کممحتوا بله. اما روی سایتهای فروشگاهی، خبری یا پورتال با محتوای زیاد، معمولاً امتیاز ۸۰ تا ۹۵ واقعیتر است. مهمتر از امتیاز، این است که Core Web Vitals در حالت «خوب» باشند. گوگل از دادههای فیلد واقعی (Chrome UX Report) برای رتبهبندی استفاده میکند نه فقط امتیاز PageSpeed.
Elementor سایت را کند میکند؟
Elementor یکی از سنگینترین Page Builderهاست. اما با تنظیم صحیح (غیرفعال کردن Font Awesome اگر استفاده نمیکنید، محدود کردن ویجتها، استفاده از Elementor Experiments) میتوان سرعت سایت قابل قبولی داشت. اگر Elementor را هنوز نصب نکردهاید و سایت سادهای دارید، از بلاکهای بومی وردپرس استفاده کنید.
چرا بعد از فعال کردن افزونه کش، سایت خراب شد؟
معمولاً به خاطر Minify یا Combine CSS/JS است که یک CSS یا JS خاص را میشکند. مراحل: ۱) کش را پاک کنید. ۲) اگر مشکل ادامه داشت، Combine CSS/JS را غیرفعال کنید. ۳) اگر حل نشد، فقط Minify را فعال نگه دارید. ۴) اگر بازهم مشکل داشت، افزونهای که CSS یا JS آن مشکل ایجاد میکند را به Exclusion List اضافه کنید.
Cloudflare برای سایتهای ایرانی مناسب است؟
Cloudflare IPهایش را Block نمیکند اما کاربران ایرانی بدون فیلترشکن ممکن است با تأخیر یا مشکل روبرو شوند. اگر مخاطبان شما عمدتاً ایرانی بدون فیلترشکن هستند، CDN ایرانی مثل ArvanCloud گزینه بهتری است. اگر ترافیک بینالمللی دارید، Cloudflare همچنان ارزشمند است.
بهترین ترتیب برای شروع بهینهسازی چیست؟
۱. تست اولیه بگیرید (PageSpeed + GTmetrix). ۲. هاست مناسب داشته باشید. ۳. کشینگ را فعال کنید. ۴. تصاویر را بهینه کنید. ۵. منابع مسدودکننده رندر را رفع کنید. ۶. دیتابیس را پاکسازی کنید. ۷. CDN راهاندازی کنید. این ترتیب بیشترین بازده را در کمترین زمان میدهد.
نتیجهگیری: یک قدم در هر زمان
افزایش سرعت سایت وردپرسی یک فرآیند تدریجی است، نه یک تنظیم یکباره. اگر الان با سایت کند روبرو هستید، از این اولویتبندی شروع کنید: هاست > کشینگ > تصاویر > CSS/JS. این چهار مورد ۸۰٪ مشکلات را حل میکنند.
پیشنهاد عملی: الان PageSpeed Insights را باز کنید، URL صفحه اصلی سایتتان را وارد کنید، و ببینید گوگل دقیقاً کجا را قرمز نشان میدهد. المان LCP را شناسایی کنید و از آنجا شروع کنید. بهترین سایت سریع آن سایتی است که مشکل اصلیش را پیدا و حل کرده، نه آن که همه تکنیکها را اجرا کرده بدون اینکه بداند کدام کمک میکند.
چکلیست نهایی:
- ✅ هاست با TTFB زیر ۲۰۰ms
- ✅ افزونه کش مناسب پیکربندیشده
- ✅ تصاویر WebP/AVIF با Lazy Load (به جز تصویر LCP)
- ✅ CSS و JS Minified + JS Deferred
- ✅ Critical CSS برای above-the-fold
- ✅ دیتابیس پاکسازیشده با محدودیت Revision
- ✅ CDN برای فایلهای استاتیک
- ✅ فونتها self-hostشده با font-display: swap
- ✅ PHP بهروز (8.x)
- ✅ Gzip/Brotli فعال
- ✅ افزونههای غیرضروری حذفشده
منابع این مقاله
https://www.kualo.com/blog/ttfb-still-matters
https://www.bluent.net/blog/wordpress-core-web-vitals-best-practices-and-tools
https://lainesutherlanddesigns.com/blog/2025/06/22/gtmetrix-vs-google-pagespeed-which-should-you-use-to-measure-website-speed/https://webgee.com/knowledgebase/241/LiteSpeed-Cache-vs.-WP-Rocket-A-Comprehensive-Comparison-for-Our-Hosting-Environment.html
https://buddyboss.com/blog/cache-plugins-for-wordpress
https://wpengine.com/blog/remove-render-blocking-javascript-css-wordpress
https://pressidium.com/blog/wordpress-performance-database-clean-up-and-optimization
https://onlinemediamasters.com/cloudflare-settings-wordpress
https://www.augustinfotech.com/blogs/10-proven-strategies-to-speed-up-wordpress-sites-2025
بدون دیدگاه