سرعت سایت وردپرس: چه چیزی واقعاً جواب میدهد و چه چیزی نه
سرعت وردپرس بیشتر از هر چیز به سروری بستگی دارد که سایت روی آن نشسته است؛ افزونهٔ بهینهسازی فقط چند درصد آخر ماجراست. پلن اشتراکیای که پردازندهاش بین دهها سایت تقسیم شده را با هیچ افزونهای نمیشود به سایت سریع تبدیل کرد — میشود کمی بهترش کرد، همین. ترتیبی که در این راهنما آمده، ترتیب واقعی اثرگذاری است: هاست، کش، نسخهٔ PHP، عکسها، افزونهها، دیتابیس، فونت، و در آخر CDN. تقریباً هر متن فارسی دیگری در این موضوع از افزونه شروع میکند؛ همان جایی که باید آخر باشد.
هاستسنج قیمت ۱۷۷ پلن هاست وردپرس از ۲۲ شرکت ایرانی را رصد میکند و آخرین بررسی قیمتها ۱۸ شهریور ۱۴۰۵ انجام شده است. همان مشخصاتی که اینجا مهم شمرده میشود — وبسرور، نوع دیسک، سهم پردازنده — در جدول هاست وردپرس قابل فیلتر کردن است.
چرا باید اول سراغ هاست رفت، نه افزونه
هر بازدید از یک صفحهٔ وردپرسی یک محاسبه است، نه تحویل یک فایل آماده. سرور باید PHP را اجرا کند، چند ده کوئری از دیتابیس بگیرد، قالب را بسازد و بعد HTML را بفرستد. اگر سهم شما از پردازندهٔ آن سرور کم باشد، این محاسبه کند انجام میشود و هیچ ترفند سمت مرورگر جبرانش نمیکند.
سادهترین آزمون هم همین است: پیشخوان وردپرستان را باز کنید. پیشخوان کش نمیشود و هر کلیک واقعاً روی سرور اجرا میشود؛ پس سرعت آن، سرعت خام هاست شماست. اگر ورود به بخش نوشتهها چند ثانیه طول میکشد، مسئله سرور است و بقیهٔ این فهرست فعلاً به دردتان نمیخورد.
سه چیز در انتخاب هاست بیشترین اثر را روی سرعت وردپرس دارد:
- وبسرور. LiteSpeed بههمراه افزونهٔ LSCache تفاوت محسوسی با Apache معمولی میسازد. اگر بین دو پلن همقیمت یکی LiteSpeed دارد، همان را بردارید. جزئیات را در مقایسهٔ وبسرورها باز کردهایم.
- نوع دیسک. وردپرس دیتابیسمحور است و دیتابیس به تأخیر دیسک حساس است. تفاوت NVMe و SSD ساتا دقیقاً همینجا خودش را نشان میدهد.
- سهم پردازنده و حافظه. شرکتهایی که این عدد را در مشخصات پلن مینویسند معمولاً چیزی برای پنهان کردن ندارند؛ جایی که نوشته نشده، دلیلی دارد.
موقعیت جغرافیایی سرور هم مهم است، اما نه آنقدر که تصور میشود. هاست ایران برای مخاطب داخلی مسیر شبکه را کوتاه میکند، ولی سرور شلوغ داخلی همچنان از سرور خلوت خارجی کندتر جواب میدهد.
اگر سایت فقط در ساعتهای اوج کند میشود، مسئله دیگر تنظیمات نیست؛ منابع کم است. آن وقت تفاوت هاست اشتراکی، سرور مجازی و اختصاصی را بخوانید و سرور مجازی ایران را جدی بگیرید.
کش: بزرگترین بردی که بعد از هاست میگیرید
کش یعنی نتیجهٔ یک محاسبه را نگه داریم تا دفعهٔ بعد دوباره محاسبهاش نکنیم. در وردپرس دو نوع کش مهم است و مدام با هم اشتباه گرفته میشوند.
کش صفحه
خروجی HTML صفحه ذخیره میشود و بازدید بعدی همان فایل آماده را میگیرد؛ نه PHP اجرا میشود و نه دیتابیس. برای سایت محتوایی یا سایت معرفی شرکت، تقریباً تمام ماجراست.
کش آبجکت
نتیجهٔ کوئریهای تکراری دیتابیس در حافظه — با Redis یا Memcached — نگه داشته میشود. برای صفحههایی که اصلاً کش صفحه نمیگیرند (سبد خرید، تسویه، پیشخوان) این تنها لایهای است که کمک میکند. اگر هاست ووکامرس میخرید، وجود Redis را جداگانه بپرسید؛ در جدول مشخصات معمولاً نوشته نشده.
کش سطح سرور یا افزونهٔ کش در سطح PHP؟
هر دو کار مشابهی میکنند، ولی در نقطهٔ متفاوتی از مسیر درخواست. همین تفاوت نقطه، همهچیز را عوض میکند:
| معیار | کش سطح سرور (مثل LSCache) | افزونهٔ کش در سطح PHP |
|---|---|---|
| درخواست تا کجا میرود | وبسرور جواب میدهد، PHP اصلاً بالا نمیآید | PHP اجرا میشود و بعد فایل کش را برمیگرداند |
| مصرف منابع سرور | کمترین حالت ممکن | محسوستر، مخصوصاً زیر بار |
| کِی انتخابش کنیم | هر وقت هاست LiteSpeed دارد | وقتی وبسرور کش اختصاصی ندارد |
نتیجهٔ عملی: اگر هاست LiteSpeed دارید، LSCache را نصب کنید و افزونهٔ کش دیگری را همزمان فعال نگذارید. دو لایه کش روی هم یعنی کاربر نسخهٔ قدیمی صفحه را میبیند و شما ساعتها دنبال دلیلش میگردید.
نسخهٔ PHP: پنج دقیقه کار با اثر واقعی
نسخههای جدیدتر PHP همان کد را سریعتر اجرا میکنند و این یکی از معدود کارهایی است که بدون دست زدن به سایت سرعت را بالا میبرد. در cPanel یا DirectAdmin بخش انتخاب نسخهٔ PHP وجود دارد و تغییرش چند ثانیه بیشتر طول نمیکشد. هدف را روی PHP نسخهٔ ۸ به بالا بگذارید؛ اگر هنوز روی نسخهٔ ۷ هستید، این اولین کاری است که باید بکنید.
دو احتیاط دارد. اول اینکه قالب یا افزونهٔ قدیمی ممکن است خطا بدهد؛ اگر محیط آزمایشی دارید آنجا تست کنید، وگرنه دستکم بکاپ بگیرید. دوم اینکه بعد از تغییر سایت را واقعاً بگردید؛ فرم تماس و درگاه پرداخت بیشتر از صفحهٔ اصلی دردسر میسازند.
یک نکتهٔ کمگفتهشده: روی بعضی پلنها OPcache خاموش است. این ابزار کد کامپایلشدهٔ PHP را در حافظه نگه میدارد تا هر بار دوباره ترجمه نشود. اگر فعال نیست از پشتیبانی بخواهید روشنش کنند؛ هزینهای ندارد و از خیلی از افزونههای بهینهسازی مؤثرتر است.
عکسها: سنگینترین بخش صفحه در بیشتر سایتها
اگر قرار باشد فقط یک کار انجام دهید، این است. در بیشتر سایتها سنگینترین بخش صفحه عکسهاست و تقریباً همیشه میشود حجمشان را چند برابر کم کرد بدون آنکه کیفیت دیدهشده فرقی کند.
قبل از آپلود، اندازه را درست کنید
عکسی که با موبایل گرفته شده چند هزار پیکسل عرض دارد، در حالی که در قالب شما شاید در عرض هشتصد پیکسل نمایش داده میشود. وردپرس نسخههای کوچکتر میسازد، اما فایل اصلی هم روی سرور میماند و در بخشی از قالبها همان صدا زده میشود. عادت کنید عکس را پیش از آپلود به اندازهٔ واقعی نمایش برسانید.
فرمت مدرن
WebP و AVIF همان تصویر را با حجم کمتری ذخیره میکنند و افزونههای تبدیل تصویر این کار را خودکار انجام میدهند. یک هشدار: اگر کتابخانهٔ لازم روی سرور نصب نباشد، افزونه بیصدا کاری نمیکند. بعد از نصب یک عکس را در مرورگر باز کنید و ببینید واقعاً فرمت جدید تحویل داده میشود یا نه.
بارگذاری تنبل، اما نه برای عکس اول
بارگذاری تنبل یعنی عکسهای پایین صفحه فقط وقتی گرفته شوند که کاربر به آنها برسد، و وردپرس این را بهصورت پیشفرض انجام میدهد. اشتباه رایجی که خیلیها با «بهینهسازی» خودشان میسازند این است: اگر بزرگترین عکس بالای صفحه هم تنبل بارگذاری شود، شاخص LCP بدتر میشود نه بهتر. آن یکی را از حالت تنبل خارج کنید.
ابعاد را در کد بنویسید
عکس بدون عرض و ارتفاع یعنی مرورگر نمیداند چقدر جا خالی نگه دارد و متنِ پایین بعد از آمدن عکس میپرد. همین پریدن، شاخص CLS را خراب میکند.
افزونهها: تعداد مهم نیست، آن یکیِ بد مهم است
«افزونهها را کم کنید» توصیهٔ بیفایدهای است. بیست افزونهٔ سبک میتواند از یک افزونهٔ بد کمضررتر باشد. کاری که واقعاً باید بکنید، پیدا کردن همان یکی است.
با Query Monitor نگاه کنید
افزونهٔ Query Monitor نشان میدهد هر صفحه چند کوئری زده، کدام کوئری کند بوده، و کدام افزونه مسئولش است. تنها راهی است که بهجای حدس جواب میدهد. فقط موقع عیبیابی فعالش نگه دارید.
روش نصف کردن
اگر ابزار جواب روشنی نداد، سراغ روش قدیمی بروید: نیمی از افزونهها را غیرفعال کنید و زمان بارگذاری را اندازه بگیرید. اگر بهتر شد، مقصر در همان نیمهٔ خاموششده است؛ آن نیمه را دوباره نصف کنید. با چهار پنج مرحله به یک افزونهٔ مشخص میرسید — روی نسخهٔ آزمایشی، نه سایت زنده.
سه دسته بیشتر از بقیه دردسر میسازند: صفحهسازها که برای هر صفحه انبوهی CSS و JS میفرستند، اسلایدرها که هم سنگیناند و هم بالای صفحه نشستهاند، و افزونههای «همهکاره» که فایلهایشان را در تمام صفحهها بار میکنند.
دیتابیس: جایی که کسی به آن سر نمیزند
دیتابیس وردپرس با گذشت زمان چاق میشود و چون در هیچ صفحهای دیده نمیشود، کسی متوجهش نیست. چهار منبع اصلی دارد:
- ریویژنها. وردپرس از هر نوشته نسخههای قبلی را نگه میدارد و برای سایتی با چند صد نوشته این میتواند چند برابر خود محتوا حجم بگیرد. تعدادشان را محدود کنید.
- ترنزینتهای منقضی. افزونهها دادهٔ موقت در جدول تنظیمات میگذارند و همیشه پاکش نمیکنند.
- ردپای افزونههای حذفشده. افزونه پاک میشود، ولی جدولها و ردیفهایش میمانند.
- ردیفهای خودبارشونده. بخشی از جدول تنظیمات در هر بار بارگذاری صفحه خوانده میشود. اگر افزونهای دادهٔ حجیمی را آنجا گذاشته باشد، هزینهاش را در تکتک صفحهها میدهید — و هیچ ابزار سنجش سرعتی این را به شما نشان نمیدهد.
پیش از هر پاکسازی بکاپ بگیرید. از تمام فهرست این راهنما، این تنها جایی است که اشتباه در آن برگشتناپذیر است.
فونت فارسی: مشکلی که مخصوص سایتهای ماست
فونت فارسی از فونت لاتین سنگینتر است، چون باید شکلهای اتصال حرفها را هم داشته باشد. حالا این را ضرب کنید در عادتی که در بازار ما جا افتاده: چهار وزن از یک خانوادهٔ فونت، در فرمتهای قدیمی، از دامنهای دیگر، بدون هیچ تنظیمی. نتیجهاش این است که کاربر چند ثانیهٔ اول یا متنی نمیبیند، یا متن با فونت جانشین میآید و بعد جابهجا میشود.
کارهایی که واقعاً جواب میدهد:
- فقط فرمت woff2 را تحویل بدهید. فرمتهای قدیمیتر را تنها وقتی اضافه کنید که واقعاً با مرورگرهای خیلی قدیمی کار دارید.
- فونت را روی دامنهٔ خودتان میزبانی کنید. هر دامنهٔ اضافه یعنی یک اتصال و یک تأخیر جدید — و اگر آن دامنه از داخل ایران در دسترس نباشد، متن سایت شما گروگان آن است.
- دو وزن کافی است: عادی و ضخیم. هر وزن یک فایل جداگانه است.
font-display: swapبگذارید تا متن اول با فونت جانشین دیده شود؛ صفحهٔ خالی بدتر از فونت موقت است. وزن اصلی را هم preload کنید.
CDN کِی کمک میکند و کِی نه
CDN فایلهای ثابت سایت — عکس، CSS، JS — را روی سرورهای متعدد پخش میکند تا از نزدیکترین نقطه به کاربر تحویل داده شوند. دو فایدهٔ واقعی دارد: تأخیر کمتر برای کاربران دور، و برداشتن بار فایلهای ثابت از دوش سرور اصلی.
اما یک سوءتفاهم رایج هم هست: CDN کد PHP کند را سریع نمیکند. اگر ساخته شدن HTML روی سرور شما دو ثانیه طول میکشد، CDN آن دو ثانیه را کوتاه نمیکند. برای سایتی که همهٔ مخاطبش داخل ایران است و روی هاست داخلی نشسته، سود CDN کمتر از تصور رایج است؛ برای سایتی با مخاطب پراکنده یا فایل دانلودی حجیم، برعکس. در هر دو حالت، اول سرور و کش را درست کنید.
Core Web Vitals به زبان ساده
گوگل سه شاخص را برای تجربهٔ صفحه اندازه میگیرد. نکتهای که اغلب از قلم میافتد: اینها روی دادهٔ کاربران واقعی سنجیده میشوند، نه روی تستی که خودتان یک بار میگیرید؛ پس بعد از هر تغییر انتظار نتیجهٔ فوری نداشته باشید.
LCP — بزرگترین عنصر صفحه چه زمانی کشیده میشود
معمولاً عکس اصلی بالای صفحه یا تیتر بزرگ. سه چیز خرابش میکند: جواب کند سرور، عکس حجیم، و بارگذاری تنبل روی همان عکس اصلی.
INP — سایت چقدر سریع به کلیک کاربر واکنش نشان میدهد
این شاخص پاسخگویی صفحه را میسنجد: از لحظهٔ کلیک یا لمس کاربر تا لحظهای که چیزی روی صفحه تغییر میکند. عامل اصلی خرابیاش جاوااسکریپت سنگینی است که رشتهٔ اصلی مرورگر را مشغول نگه میدارد — همان چیزی که صفحهسازها و افزونههای پرحجم میآورند. کش صفحه اینجا کمکی نمیکند، چون مشکل بعد از رسیدن صفحه به مرورگر رخ میدهد.
CLS — چقدر محتوا موقع بارگذاری جابهجا میشود
همان تجربهٔ آزاردهندهای که میخواهید روی دکمهای بزنید و صفحه یکباره پایین میپرد. علتش: عکس بدون ابعاد، فونت جانشین با اندازهٔ متفاوت، و بنرهایی که بعد از بارگذاری برای خودشان جا باز میکنند.
آستانهٔ عددی این سه شاخص را اینجا نمینویسیم، چون گوگل هرازگاهی بازنگریشان میکند و عدد کهنه بدتر از نبودن عدد است. ابزار رسمی خود گوگل وضعیت هر سه را با رنگ نشان میدهد و همان کافی است.
پرسشهای متداول
روی هاست LiteSpeed هم باید افزونهٔ کش نصب کنم؟
بله، اما فقط LSCache. این افزونه رابط بین وردپرس و کش خود وبسرور است؛ بدون آن، کش سطح سرور از تغییرات سایت خبردار نمیشود و صفحهٔ قدیمی را نگه میدارد. افزونهٔ کش دومی کنارش نصب نکنید.
سایتم روی موبایل کند است ولی روی دسکتاپ سریع. چرا؟
معمولاً به هاست ربطی ندارد. پردازندهٔ گوشی ضعیفتر است و همان جاوااسکریپتی که روی لپتاپ در یک چشم بههمزدن اجرا میشود، روی موبایل چند برابر طول میکشد. اگر اختلاف زیاد است، سراغ حجم اسکریپتها و قالب بروید، نه سرور.
باید امتیاز کامل بگیرم؟
نه. امتیاز ابزارها یک تست آزمایشگاهی است، نه تجربهٔ کاربر شما. سایتی با امتیاز متوسط که برای کاربر سریع باز میشود، از سایتی با امتیاز بالاتر که کاربر واقعی منتظرش میماند بهتر است. معیار را دادهٔ کاربران واقعی بگذارید.
هاست خارج سریعتر است؟
بستگی دارد به اینکه کاربرانتان کجا هستند. برای مخاطب داخلی، سرور داخلی مسیر کوتاهتری دارد؛ برای مخاطب پراکنده برعکس. این را در مقایسهٔ هاست ایران و خارج جداگانه باز کردهایم.
از کجا بفهمم وقت عوض کردن هاست رسیده؟
وقتی کش و عکس و افزونه را درست کردهاید و پیشخوان هنوز کند است. این نشانهٔ روشنی است که سهم شما از سرور کم است. برای انتخاب بعدی معیارهای انتخاب هاست وردپرس را ببینید و دو سه پلن را در صفحهٔ مقایسه کنار هم بگذارید.
جمعبندی: از کجا شروع کنید
- پیشخوان وردپرس را باز کنید. اگر کند است، مسئله هاست است و بقیهٔ فهرست فعلاً صبر میکند.
- نسخهٔ PHP را در کنترلپنل چک کنید و اگر قدیمی است، بعد از تست بالا ببرید. وضعیت OPcache را هم بپرسید.
- یک لایه کش صفحه فعال کنید: روی LiteSpeed همان LSCache، وگرنه یک افزونهٔ کش. فقط یکی.
- سنگینترین عکسهای صفحهٔ اصلی را کوچک و به فرمت مدرن تبدیل کنید، و عکس اول صفحه را از حالت تنبل خارج کنید.
- با Query Monitor یا روش نصف کردن، افزونهٔ کند را پیدا کنید.
- ریویژنها و ترنزینتها را پاک کنید — با بکاپ قبلی، نه بدون آن.
- فونت را به دو وزن، فرمت woff2 و دامنهٔ خودتان برسانید.
- اگر هنوز کم است، نوبت CDN یا ارتقای پلن است. یابندهٔ هاست با سه سؤال ساده گزینهها را محدود میکند.
سرعت وردپرسکش وردپرسهاست وردپرسبهینهسازی سرعت
مطالب مرتبط
LiteSpeed، NGINX یا Apache؟ وبسرور چه فرقی برای سایت شما دارد
وبسرور نرمافزاری است که درخواست مرورگر را جواب میدهد. برای وردپرس، LiteSpeed با افزونهٔ LSCache معمولاً محسوسترین تفاوت را میسازد.
راهنمای انتخاب هاست وردپرس: ۷ معیاری که واقعاً مهم است
انتخاب هاست وردپرس با نگاه به «فضا» شروع میشود و معمولاً همانجا اشتباه میشود. آنچه سرعت را تعیین میکند توان پردازشی، کش سطح سرور و سقف حافظهٔ PHP است.