افزونه LiteSpeed Cache روی هاست؛ تنظیمات امن برای شروع
افزونه LiteSpeed Cache وقتی بهترین نتیجه را می دهد که وب سرور هاست شما LiteSpeed باشد. در این مقاله یاد می گیرید کش را گام به گام و امن روی فروشگاهتان فعال کنید.

افزونه LiteSpeed Cache وقتی بیشترین فایده رو داره که وب سرور هاستت LiteSpeed باشه. برای شروع امن، کش صفحه رو فقط برای بازدیدکننده های عادی روشن کن، سبد خرید، تسویه حساب و حساب کاربری رو از کش بیرون بذار و بهینه سازی فایل ها رو بعداً و یکی یکی فعال کن. بعد از هر تغییر هم سایت رو مثل یه مشتری واقعی امتحان کن.
فرض کن فروشگاه آنلاین کوچیکی داری و شب قبل از یه کمپین فروش، افزونه کش رو با تنظیمات پیشنهادی یه ویدیوی آموزشی نصب کردی. سایت سریع شده و خوشحالی. صبح یکی از مشتری ها پیام می ده که تو سبد خریدش محصول یه نفر دیگه رو دیده. کش بد تنظیم شده همین هزینه رو می گیره: سرعت می ده، ولی اعتماد مشتری رو می بره. تو این راهنما قدم به قدم جلو می ریم تا کش رو روشن کنی و صفحه های حساس سایتت سالم بمونن.
قبل از نصب: مطمئن شو هاستت واقعاً LiteSpeed هست
خیلی ها افزونه رو نصب می کنن و فکر می کنن کش سرور هم خودبه خود کار می کنه. این طوری نیست. قدرت اصلی افزونه از ارتباطش با خود وب سرور میاد. اگه هاستت روی Apache یا Nginx معمولی باشه، کش سطح سرور کار نمی کنه و فقط امکانات جانبی مثل کوچک سازی فایل ها و بارگذاری تنبل تصاویر برات می مونن.
وب سرورت چیه؟
ساده ترین راه اینه که از پشتیبانی هاستت بپرسی. راه دوم نگاه کردن به هدر پاسخ سایته. تو مرورگر ابزار توسعه دهنده رو باز کن، برو تب Network، صفحه رو رفرش کن و هدرهای پاسخ رو ببین. یا تو ترمینال بزن:
curl -I https://example.ir/
اگه تو هدرها چیزی مثل server: LiteSpeed دیدی، خیالت راحته. ولی اگه جلوی سایتت CDN یا سرویس دیگه ای باشه، ممکنه این هدر عوض یا پنهون شده باشه. پس ندیدنش لزوماً یعنی LiteSpeed نیست. اگه شک داری، قبل از هر کاری از پشتیبانی بپرس. ما هم تو میزبانی وب و سرور مجازی ایران همین سوال رو برای مشتری ها جواب می دیم و بر اساس نوع پروژه راهنمایی شون می کنیم.
سه کار قبل از دست زدن به تنظیمات
- فقط یه افزونه کش داشته باش. اگه WP Rocket یا W3 Total Cache یا چیزی شبیه این فعاله، اول غیرفعالش کن و کشش رو پاک کن. دو افزونه کش کنار هم معمولاً فقط رفتار عجیب می سازن، مثلاً صفحه ای که یه بار قدیمی نشون داده می شه و یه بار نه.
- بکاپ بگیر. از سی پنل یه نسخه کامل یا حداقل از فایل ها و دیتابیس بگیر. اگه می شه، اول روی نسخه staging امتحان کن.
- ساعت کم ترافیک رو انتخاب کن. نه وسط اوج فروش. اگه چیزی خراب شد، کمترین مشتری اذیت می شه.
نصب افزونه LiteSpeed Cache و اولین نگاه به منوها
از پیشخوان وردپرس برو به «افزونه ها > افزودن»، LiteSpeed Cache رو جستجو کن، نصب و فعالش کن. بعدش یه منوی جدید به اسم LiteSpeed Cache تو پیشخوان اضافه می شه.
لازم نیست همه منوها رو همون اول بشناسی. این ها مهم ترین هاشن:
- Cache: تنظیمات اصلی کش صفحه، مدت نگه داری و استثناها. بیشترین وقتت اینجا می گذره.
- Page Optimization: کوچک سازی و ترکیب فایل های CSS و JS، بارگذاری تنبل و بقیه کارهایی که روی ظاهر سایت اثر می ذارن.
- Image Optimization: بهینه سازی تصاویر با سرویس ابری خود افزونه.
- CDN: اتصال به CDN.
- Database: پاکسازی داده های اضافی دیتابیس.
- Toolbox: پاک کردن کش (Purge) و ابزارهای عیب یابی.
تو نسخه های جدیدتر ممکنه بخش Presets هم ببینی که با یه کلیک یه مجموعه تنظیم رو اعمال می کنه. اسم منوها و گزینه ها بین نسخه ها کمی فرق می کنه، پس اگه چیزی دقیقاً همین جا نبود نگران نشو. توصیه ما اینه که برای شروع سراغ گزینه های تهاجمی نری. تنظیم دستی و قدم به قدم کمک می کنه بفهمی هر تغییر چه اثری داشته.
تنظیمات کش صفحه: کمترین کار، بیشترین فایده
برو به LiteSpeed Cache > Cache. اینجا چند تب هست و تو فقط چندتاشون رو لازم داری.
تب Cache
گزینه Enable Cache رو روشن کن. کلید اصلی همینه.
بعد یه گزینه رو حتماً چک کن: Cache Logged-in Users. برای شروع خاموشش بذار. کاربر وارد شده معمولاً محتوای شخصی می بینه، مثل اسمش، سبد خریدش یا سفارش هاش. اگه این صفحه ها بدون تنظیم دقیق کش بشن، همون ماجرای سبد خرید اشتباه پیش می آد. وقتی بعداً با ESI و تنظیمات دقیق تر آشنا شدی و واقعاً نیاز داشتی، می تونی روشنش کنی. برای وبلاگ و سایت شرکتی که کاربر وارد شده نداره، این گزینه اصلاً مهم نیست.
بقیه گزینه های این تب رو روی مقدار پیش فرض بذار. فقط اگه قالبت برای موبایل HTML متفاوت می ده، نسخه موبایل جداگانه رو روشن کن؛ وگرنه لازم نیست.
تب TTL
TTL یعنی هر صفحه چه مدت تو کش بمونه تا دوباره از اول ساخته بشه. مقدار پیش فرض معمولاً چند روزه. برای وبلاگی که کم تغییر می کنه خوبه، ولی برای فروشگاهی که قیمت و موجودی مدام عوض می شه، مدت کوتاه تر بذار، مثلاً چند ساعت تا یه روز.
یه نکته دیگه: نانس های وردپرس (همون توکن های امنیتی فرم ها) به طور پیش فرض حدود ۱۲ تا ۲۴ ساعت اعتبار دارن. اگه صفحه ای که فرم داره خیلی بیشتر از این تو کش بمونه، مشتری ممکنه بعد از پر کردن فرم با خطای «منقضی شدن لینک» روبه رو بشه. پس اگه فرم تماس یا ثبت نام داری، TTL بلند رو با احتیاط انتخاب کن.
تب Purge
اینجا مشخص می کنی با چه اتفاقی کش پاک بشه. حالت پیش فرض معمولاً خوبه: وقتی نوشته ای رو منتشر یا ویرایش می کنی، صفحه خود نوشته و صفحه هایی که لینکش رو دارن (مثل صفحه اول و دسته بندی) پاک می شن. اگه قیمت یا موجودی محصولی رو عوض کردی و هنوز قدیمی دیده می شه، اول از منوی بالای پیشخوان Purge All رو بزن، بعد دنبال علت بگرد.
تب Excludes: مهم ترین تب برای فروشگاه ها
اینجا تعیین می کنی چه چیزهایی هیچ وقت کش نشن. بخش Do Not Cache URIs رو پیدا کن و آدرس صفحه های حساس رو بنویس، هر کدوم تو یه خط:
/cart
/checkout
/my-account
افزونه معمولاً ووکامرس رو تشخیص می ده و این صفحه ها رو خودش استثنا می کنه، ولی به همین اکتفا نکن و خودت چک کن. اگه آدرس صفحه های فروشگاهت فارسی یا متفاوته (مثلاً /سبد-خرید)، همون آدرس واقعی رو بنویس.
چند مورد دیگه هم هست که تو ایران زیاد فراموش می شن:
- آدرس برگشت از درگاه پرداخت. مشتری بعد از پرداخت به سایتت برمی گرده و سایت باید وضعیت واقعی سفارش رو نشون بده. اگه افزونه درگاهت آدرس یا پارامتر مخصوصی داره (مثلاً چیزی شبیه
wc-api)، اون رو هم تو Do Not Cache URIs یا Do Not Cache Query Strings بذار. آدرس دقیقش رو از مستندات افزونه درگاه بخون. - صفحه سپاس از سفارش، پیگیری سفارش و هر صفحه ای که اطلاعات شخصی نشون می ده.
- نقش های کاربری مثل مدیر و ویرایشگر. اینا رو می تونی تو Do Not Cache Roles بذاری تا وقتی سایت رو ویرایش می کنی با کش درگیر نشی.
- سایت های آموزشی و عضویتی: صفحه های دوره، پنل کاربر و هر آدرسی که بعد از ورود چیز متفاوتی نشون می ده.

کدوم صفحه کش بشه و کدوم نه؟
برای این که تصمیم گرفتن راحت تر بشه، این جدول رو دم دست داشته باش:
| نوع صفحه | کش بشه؟ | دلیل |
|---|---|---|
| صفحه اول، مقاله، صفحه دسته بندی | آره | برای همه بازدیدکننده ها یکسانه |
| صفحه محصول | معمولاً آره | اگه قیمت و موجودی زیاد عوض می شه، TTL کوتاه تر بذار |
| سبد خرید | نه | برای هر مشتری محتوای خودش رو نشون می ده |
| تسویه حساب | نه | اطلاعات شخصی و ارتباط با درگاه پرداخت |
| حساب کاربری و پیگیری سفارش | نه | اطلاعات خصوصی هر کاربره |
| صفحه سپاس بعد از پرداخت | نه | باید وضعیت واقعی همون سفارش رو نشون بده |
| نتیجه جستجوی داخلی | بهتره نه | عبارت ها بی شمارن و کش فایده ای نداره |
درباره جستجوی داخلی یه توضیح کوتاه. صفحه نتیجه جستجو معمولاً noindex می شه تا صفحه های کم ارزش وارد ایندکس گوگل نشن. همین منطق برای کش هم جواب می ده: این صفحه ها به تعداد عبارت هایی که کاربرها می زنن زیاد می شن و هر کدوم شاید فقط یه بار دیده بشه. اگه سایتت جستجوی پرتکرار داره، می تونی s رو تو Do Not Cache Query Strings بذاری. این یه توصیه برای سایت هایی با جستجوی زیاده، نه قانون برای همه.
اگه سایتت ورود و ثبت نام نداره و فقط محتواست، از این جدول فقط دو ردیف اولش مهمه و کار خیلی ساده تره.
بهینه سازی فایل ها: یکی یکی، نه همه با هم
وقتی کش صفحه جواب داد و تستش کردی، نوبت Page Optimization می رسه. اینجا وسوسه می شی هر سوئیچی رو که می بینی روشن کنی. این بزرگ ترین اشتباه شروعه. اگه همه چیز رو با هم روشن کنی و سایت به هم بریزه، نمی فهمی مقصر کدوم بوده.
ترتیب امن تر این طوریه:
- CSS Minify رو روشن کن، ذخیره کن، Purge All بزن و سایت رو چک کن.
- JS Minify رو با همین روش امتحان کن.
- بارگذاری تنبل تصاویر (Lazy load) رو روشن کن. ریسکش معمولاً کمه و به سرعت صفحه های پرتصویر خیلی کمک می کنه. برای درک بهتر فرمت و اندازه تصویر، بهینه سازی تصاویر سایت؛ فرمت، اندازه و بارگذاری تنبل رو بخون.
- به CSS Combine و JS Combine فعلاً دست نزن. تو سایت هایی که HTTP/2 یا نسخه های جدیدتر دارن فایده شون کمه و احتمال به هم ریختن ظاهر یا اسکریپت ها بالاست.
- Defer JS و Delay JS و Critical CSS رو بذار برای مرحله بعد، وقتی با سایتت راحت شدی.
چرا Delay و Defer خطرناک ترن؟
چون ترتیب اجرای اسکریپت ها رو عوض می کنن. ممکنه دکمه افزودن به سبد خرید دیر جواب بده، اسلایدر لود نشه، ویجت چت پشتیبانی نیاد یا فرم تسویه حساب درست کار نکنه. اگه می خوای امتحان شون کنی، صفحه های سبد خرید، تسویه حساب و برگشت از درگاه رو جداگانه تست کن. اگه چیزی خراب شد، اسکریپت مشکل دار رو تو بخش استثناهای همون گزینه بذار.
یه نکته مخصوص ایران: اسکریپت هایی مثل ابزارهای تحلیل یا فونت های خارجی که از سرورهای بیرونی میان، تو شرایط محدودیت اینترنت بین الملل ممکنه کند یا ناپایدار لود بشن. اگه سایتت به این ها وابسته است، قبل از هر بهینه سازی فایل، منابع خارجی رو کم کن. اثرش از خیلی از تنظیم های کش بیشتره.
Image Optimization و CDN: عجله نکن
بخش Image Optimization افزونه از سرویس ابری خودش استفاده می کنه که سرورهاش معمولاً خارج از ایرانن. بسته به شرایط اینترنت ممکنه ارتباط کند یا قطع و وصل باشه. برای شروع، تصاویر رو قبل از آپلود فشرده کن و این بخش رو فعلاً به حال خودش بذار. بخش CDN هم همین طوره. قبل از اتصال بخون CDN برای سایت؛ آیا جای هاست قوی را می گیرد؟ و ببین واقعاً به درد پروژه ات می خوره یا نه. اگه بیشتر مخاطب هات داخل ایران هستن، جواب با سایتی که مخاطب خارجی داره فرق می کنه.
تست کردن مثل مشتری واقعی
خیلی ها اینجا کم می ذارن. وقتی با اکانت مدیر وارد سایت شدی، کش رو نمی بینی، چون بیشتر تنظیم ها برای کاربر وارد شده کش رو کنار می ذارن. پس تست باید بیرون از اکانت مدیر باشه.
یه برنامه تست ده دقیقه ای
- یه پنجره ناشناس (Incognito) باز کن و صفحه اول رو دو بار بارگذاری کن. تو دور دوم باید هدر
x-litespeed-cache: hitرو ببینی. اگه همیشهmissبود، یا کش کار نمی کنه یا صفحه از کش خارجه. با ترمینال هم می تونی دو بار پشت همcurl -Iبزنی. - یه محصول به سبد خرید اضافه کن. بعد تو یه مرورگر یا گوشی دیگه سایت رو باز کن و مطمئن شو سبد اونجا خالیه.
- مراحل خرید رو تا درگاه ادامه بده. اگه درگاه آزمایشی داری از اون استفاده کن؛ وگرنه با یه سفارش واقعی و مبلغ کم تست کن. بعد از برگشت، وضعیت سفارش باید درست نشون داده بشه.
- فرم تماس یا ثبت نام رو پر و ارسال کن.
- همه این ها رو روی موبایل هم تکرار کن، چون خیلی از مشتری های ایرانی از گوشی خرید می کنن.
- با یه اکانت کاربری معمولی وارد شو و صفحه حساب کاربری رو ببین.
اگه تو هر مرحله چیزی عجیب بود، آخرین تغییر رو برگردون، Purge All بزن و دوباره تست کن. برای همین می گم تغییرها رو یکی یکی بده.
وقتی تغییرت دیده نمی شه
افزونه قوانینش رو تو فایل .htaccess می نویسه. اگه تغییری دادی و اثرش دیده نشد، اول کش مرورگر و کش افزونه رو پاک کن. اگه هنوز فرقی نکرد، ممکنه تنظیمات وب سرور دوباره بارگذاری نشده باشه. اگه روی هاست اشتراکی هستی و خودت به این بخش دسترسی نداری، از پشتیبانی فنی بخواه این کار رو برات انجام بدن.

چند مشکل رایج و راه حل سریع
سبد خرید خالی یا اشتباه نشون داده می شه
اول چک کن آدرس سبد خرید و تسویه حساب تو Do Not Cache URIs باشه. بعد ببین افزونه دیگه ای کنارش نباشه که کش جداگانه داشته باشه، مثل افزونه سبد خرید سفارشی یا افزونه های فروشگاه ساز. اگه هنوز مشکل داری، قبل از سراغ رفتن به ESI اول بفهم دقیقاً چیه. ESI برای نشون دادن بخش های خصوصی مثل مینی کارت وسط یه صفحه کش شده ساخته شده، ولی تنظیمش دقت می خواد.
قیمت یا موجودی قدیمی دیده می شه
TTL رو کوتاه تر کن و مطمئن شو قوانین Purge برای تغییر محصول درست کار می کنن. قبل از کمپین های فروش، یه بار Purge All بزن و تغییرها رو تو پنجره ناشناس ببین.
ظاهر سایت بعد از بهینه سازی به هم ریخته
آخرین گزینه Page Optimization که روشن کردی رو خاموش کن. مقصر تقریباً همیشه همون یه گزینه است. برای همینه که گفتم یکی یکی.
سایت تو ساعت های اوج هنوز کنده
کش صفحه تعداد دفعاتی که PHP و دیتابیس کار می کنن رو کم می کنه، ولی معجزه نیست. صفحه های سبد خرید و تسویه حساب و کاربرهای وارد شده همچنان از کش فایده ای نمی برن. اگه با این تنظیمات هم تو ساعت های شلوغ سایت کند می شه، احتمالاً منابع هاستت تموم شده. تو این حالت انتخاب منابع سرور مجازی برای وردپرس: رم و CPU چقدر کافی است؟ و بعدش مهاجرت به سرور مجازی؛ چک لیست انتقال از هاست بدون غافلگیری بهت کمک می کنن تصمیم بگیری. اگه هم می خوای کسی سایتت رو بررسی کنه، خدمت بهینه سازی سرعت ما همین کار رو می کنه.
سوالات متداول
افزونه LiteSpeed Cache رو روی هاستی که LiteSpeed نداره هم می شه نصب کرد؟
می شه نصبش کرد و بعضی بخش ها مثل کوچک سازی فایل ها و بارگذاری تنبل کار می کنن. ولی کش سطح سرور، که مهم ترین مزیت افزونه است، روی وب سرورهای دیگه معمولاً در دسترس نیست. اگه فقط کش می خوای و هاستت LiteSpeed نیست، افزونه ای رو انتخاب کن که برای همون وب سرور ساخته شده.
گزینه Cache Logged-in Users رو روشن کنم یا نه؟
برای شروع نه. این گزینه برای سایت هایی فایده داره که کاربر وارد شده زیاد دارن و محتوای صفحه برای همه شون تقریباً یکسانه. روی فروشگاه و سایت عضویتی، بدون تنظیم دقیق، خطر نشت اطلاعات و نمایش اشتباه داره. اول با کش بازدیدکننده های عادی شروع کن.
هر چند وقت باید Purge All بزنم؟
لازم نیست مرتب بزنی. افزونه خودش بعد از انتشار و ویرایش، صفحه های مرتبط رو پاک می کنه. Purge All رو بعد از تغییر قالب، تغییر تنظیمات افزونه، تغییر دسته جمعی قیمت ها یا قبل از یه کمپین بزن.
با CDN یا کلودفلر مشکلی پیش می آد؟
لزوماً نه، ولی هر لایه ای که اضافه می کنی یه کش دیگه هم با خودش میاره. اگه هم افزونه و هم CDN صفحه ها رو کش کنن، بعد از هر تغییر باید هر دو رو پاک کنی. اول افزونه رو تنظیم و تست کن، بعد CDN رو اضافه کن، نه برعکس.
اگه امروز فقط ده دقیقه وقت داری
ببین هاستت LiteSpeed هست یا نه، بکاپ بگیر، افزونه های کش دیگه رو غیرفعال کن، Enable Cache رو روشن کن و Cache Logged-in Users رو خاموش نگه دار. سبد خرید، تسویه حساب، حساب کاربری و آدرس برگشت از درگاه رو به استثناها اضافه کن و یه بار سایت رو مثل مشتری واقعی تست کن. بقیه بهینه سازی ها می تونن بمونن برای هفته بعد. سایتی که یه کم کندتر ولی درست کار می کنه، از سایت سریعی که مشتری ها رو گیج می کنه خیلی بهتره.


