شما وقتی داخل نتایج گوگل روی یک لینک کلیک میکنید، چقدر صبر میکنید تا لود بشه؟ 5 ثانیه، 10 ثانیه یا بیشتر؟! من خودم شخصا بیشتر از 15 یا 20 ثانیه صبر نمیکنم و اگر صفحه کامل لود نشده باشه، میبندمش. موضوع سرعت وبسایت به شدت مهمه و روی تجربه کاربر تاثیر داره.
تو این مطلب از بلاگ ادیب پلاس میخوام به زیر و بم کش بپردازم. اول با هم این قضیه رو میفهمیم که اصلا کش چیه و چطوری کار میکنه. بعد هم بهتون افزونههای مناسب برای وردپرس رو پیشنهاد میدم.
عناوین اصلی این مطلب
وبسایت چطوری کار میکنه؟
یک وبسایت متشکل از میلیونها یا شاید میلیاردها خط کده و وقتی کاربر یک صفحه یا آدرس از وبسایت شما رو داخل مرورگرش وارد میکنه، به سرور درخواست میکنه که اون کدها به یک فایل HTML تبدیل بشن و به نمایش دربیاد. این قضیه نیاز به کلی تجزیه و تحلیل داره و سرور باید در لحظه کلی محاسبات انجام بده تا محتوا رو تشکیل بده.
تو حالت عادی وقتی وبسایت شما از سیستم کش پشتیبانی نمیکنه، هر بار که هر کدوم از صفحههای وبسایت شما میخواد برای کاربر لود بشه، کلی درخواست به سرور شما ارسال میشه تا بتونه به صورت درست تمامی، متون، عکس، ویدئو و هر محتوای دیگهای که داخل اون صفحه وجود داره رو لود بکنه و داخل مروگر کاربر به نمایش دربیاد.
کش دقیقا چیکار میکنه؟
تکنولوژی کش واقعا یکی از مهمترین ویژگیهای یک وبسایت استاندارده و فرقی هم نداره چه وردپرس چه هر cms دیگهای، مهمترین قضیه برای افزایش سرعت وبسایته که تجربه کاربر رو از سایت شما شکل میده و در نهایت هم روی سئو وبسایت تاثیر مستقیم داره.
وبسایت بدون کش
در حالتی که یک وبسایت سیستم کش رو نداره، هر بار برای لود صفحهای از سایت شما، چندین درخواست به سرور ارسال میشه تا محتوا کامل لود بشه و به نمایش دربیاد. این موضوع هم زمان بر و هم بار سرور رو زیاد میکنه.
تجربه کاربر
در واقع تو این حالت یک صفحه از سایت شما ممکنه چندین ثانیه یا حتی دقیقه طول بکشه تا کامل لود بشه. این موضوع تجربه کاربر رو از سایت شما بد شکل میده و حتی ممکنه اگر این لودینگ خیلی طولانی بشه کاربر سایت رو ببنده و هیچ وقت هم دیگه به سایت شما برنگرده!
حالا در نظر بگیرین یک سایت فروشگاهی یا خدماتی در طول روز بدون سیستم کش ممکنه چندین مشتری رو از دست بده.
بار سرور
همونطور که گفتیم تجزیه و تحلیل اطلاعات در سروری که هاست شما داخلش وجود داره، انجام میشه. در نظر بگیرین همزمان 50 تا کاربر وارد سایت شما شدن و در حال گشت و گذار بین صفحات مختلف هستن. اگر از یک هاست معمولی اشتراکی استفاده میکنید و سیستم کش هم نداشته باشین به راحتی میشه احتمال داد که سایتتون از دسترس خارج میشه!
سرور تا یک پهنای باند محدود توان پاسخگویی به درخواستها رو داره و از یک مقداری به بعد که نتونه پاسخگو باشه، سایت شما از دسترس خارج میشه و در نتیجه باز هم کاربرانتون رو از دست خواهید داد.
وبسایت مجهز به سیستم کش
وبسایتی که به سیستم کش مجهز شده، از زمین تا آسمون سرعتش فرق میکنه! دفعه اول که کاربر سایت شما رو باز میکنه، چارهای جز لود کامل اطلاعات نیست و ممکنه یکم لود صفحه طولانی باشه. اما به محض اینکه که صفحه لود شد، یک نسخه کپی HTML از اون وبسایت داخل مرورگر شما ذخیره میشه تا برای دفعات بعدی مرورگر از اون کمک بگیره.
حالا برای بار دوم کاربر مجدد سایت شما رو باز میکنه. اینبار دیگه خبری از ارسال اون همه درخواست به سمت سرور نیست. چون مرورگر یک نسخه HTML از وبسایت شما داخل حافظه رم خودش ذخیره کرده. در نتیجه با ارسال یک درخواست کوچیک به سمت سرور، سایت در عرض چند ثانیه لود میشه و به کاربر نمایش داده خواهد شد.
این موضوع هم منابع کمتری از سرور شما رو مصرف میکنه و هم تجربه بسیار لذت بخشی از گشتن داخل وبسایت شما رو به کاربرانتون میده.
چند نوع کش داریم؟
به طور کلی دو نوع کش وجود دارد. یک حالت کشی است که سمت کاربر انجام میشه و بالاتر توضیح دادیم توسط وبسایت و مرورگر انجام میشه. یک نوع کش دیگر هم وجود داره که توسط سرور انجام میشه. که در ادامه بهش میپردازیم.
کش مرورگر
زمانی که یک صفحه وب را باز میکنید، مرورگر شما به طور خودکار اطلاعات و فایلهای مورد نیاز را هم دانلود و ذخیره میکند. برای مثال متون داخل صفحه، فایلهای جاوا اسکریپت، فونتها و موارد دیگه که داخل صفحه موجوده. این موضوع باعث میشه تا دفعه بعدی که همون صفحه رو باز کنید سرعت لودش به طور کاملا محسوسی کم میشود.
کش سرور
اما کش سرور یک نوع پیشرفتهتر از سیستم کش است. در این حالت سرور به جای مرورگر محل ذخیره اطلاعات خواهد بود بعلاوه اینکه بهجای محسابات هر باره، نتیجه نهایی این محسابات رو ذخیره میکنه و برای دفعات بعد همون از همون نتایج محاسباتی که قبلا انجام داده استفاده میکنه.این موضوع قطعا بار زیادی رو از سرور برمیداره و سرعت سایت رو افزایش میده.
البته حالتهای مختلفی مثل کش تمامصفحه (Caching Full-Page)، کش آبجکتها (Object Caching) و کش فرگمنت (Fragment) در سرور وجود داره. اما قابلیت کش سرور برای هاستهای اشتراکی و سرورهای معمولی وجود نداره. شما باید برای این قابلیت از سرورهای اختصاصی استفاده کنید.
اگر محتوای صفحه آپدیت شد چی؟
شاید این سوال براتون پیش اومده باشه که اگر یک صفحه از وبسایت شما کش بشه و بعد از چند وقت شما محتوای داخلش رو آپدیت کنید، آیا باز هم همون نسخه قبلی به کاربر نشون داده میشه؟ باید در اطلاع باشید که اینطور نیست و سیستمهای کش موقت هستن و بعد از یک تایم محدود خالی میشن و با اطلاعات جدید پر میشن. پس اصلا نگران این موضوع نباشید.
بهترین افزونه کش برای وردپرس
حالا که کاملا متوجه شدیم کش چیه، باید اون رو روی سایت خودمون هم پیاده سازی کنیم. مهمترین موضوع قبل از انتخاب افزونه کش این هست که بدونید سایت شما از کدوم وب سرور استفاده میکنه. به طور کلی 3 وب سرویس وجود داره
- LITESPEED
- APACHE
- NGINX
شما برای اینکه بتونید بهترین خروجی رو از سیستم کش داشته باشید. باید متناسب با سیستم وب سرور سایتتون افزونه کش نصب کنید.
از کجا وب سرور سایتم رو متوجه بشم؟
به پنل وردپرس سایتتون مراجعه کنید، از بخش ابزارها، سلامت سایت رو باز کنید.
حالا از صفحه باز شده، تب اطلاعات رو انتخاب کنید و گزینه سرور رو باز کنید.

این عکسی که من براتون گذاشتم از لوکال هستش و از اونجایی که با زمپ وردپرس رو نصب کردم، وب سرور من رو apache نشون میده. اگر وب سرورتون لایت اسپید باشه، یکی از موارد LiteSpeed یا OLS یا OpenLiteSpeed را مشاهده خواهید کرد.
کدوم وب سرور بهتره؟
از لحاظ سرعت به ترتیب، اولین رتبه متعلق به وب سرور NGINX و مخصوص وبسایتهایی با ترافیک بالا ساخته شده که سرور اختصاصی دارند و به طور کلی روی هاستینگهای اشتراکی ایرانی وجود نداره. برای مثال سایتهایی مثل دیجی کالا، دیوار و… که روزانه میلیونهای بازدید دارن از این وب سرور روی سرور اختصاصی خودشون استفاده میکنن.
رتبه دوم متعلق به وب سرور لایت اسپید (LITESPEED) خواهد بود که در حال حاضر اکثر هاستینگهای خوب و استاندارد ایرانی از همین وب سرور استفاده میکنند که هم بروز و سرعت مناسبی داره.
در نهایت هم وب سرور APACHE رو داریم که سرعت تقریبا پایینی رو داره و همچنان هم توسط برخی از شرکتهای هاستینگ داخلی ما استفاده میشه. پیشنهادی که من براتون دارم، اگر وب سرورتون آپاچی هست برای تغییرش به هاستینگتون تیکت بزنید تا اون رو به لایت اسپید تغییر بدن. اگر امکان همچین چیزی رو نداشتن، بهتره هاست وبسایتتون رو کلا تغییر بدین و از شرکتی خدمات بگیرین که لایت اسپید رو پشتیبانی میکنه.
نصب افزونه کش متناسب با وب سرور شما
افزونههای کش زیادی برای وردپرس ساخته شده. اما تجربه من نشون داده که دوتا از اونها بهترین خروجی رو برای سایت شما خواهند داشت. طبق وب سرورتون یکی از دو افزونهای که معرفی میکنم رو نصب کنید.
- وب سرور LITESPEED = افزونه لایت اسپید کش
- وب سرور APACHE = افزونه WP-ROCKET
افزونه لایت اسپید کش
این افزونه یکی از بهترین افزونههای حال حاضر که کاملا هم رایگانه و از مخزن وردپرس قابل دانلوده. به راحتی کلمه litespeed رو داخل مخزن وردپرس سرچ کنید و افزونه رو نصب کنید. در آینده آموزش پیکربندی کامل این افزونه رو ضبط میکنم و براتون میزارم. اگر بخوام داخل همین مطلب به توضیح و پیکربندی لایت اسپید کش بپردازم، حوصله سر بر خواهد شد.
افزونه WP-ROCKET
این افزونه هم یکی از حرفهای ترین افزونههای کش وردپرس که رایگان نیست و باید از مارکتهایی مثل راستچین یا راکت خریداریش کنید. اما خوب من خودم ترجیه میدم لایت اسپید رایگان رو استفاده کنم تا اینکه یک افزونه نال شده فارسی سازی شده رو سایتم نصب کنم.
تصمیم با خود شما است. اگر وب سرور لایت اسپید دارید، قطعا نظر من روی افزونه لایت اسپید کش هستش. امیدوارم سایتی قدرتمند و سریع داشته باشید.