سرعت سایت هم برای گوگل خیلی مهم است، هم کاربران؛ اگر یک سایت حتی چند ثانیه دیرتر بارگذاری شود، بسیاری از کاربران صفحه را میبندند و سراغ گزینههای دیگر میروند.
از آنجایی هم که تجربه کاربر یکی از مهمترین معیارهای گوگل برای رتبهبندی صفحات است، باعث میشود سایتهای کند رتبه خوبی در نتایج جستوجو دریافت نکنند.
اگر سایت کندی دارید، فعالسازی کش سایت (Cache) میتواند تا حد زیادی سرعت آن را افزایش دهد.
اگر در ادامه این مقاله همراهمان باشید، خواهیم گفت که کش سایت دقیقاً چیست، چگونه باعث افزایش سرعت سایت میشود و چطور میتوانید آن را فعال کنید.
کش سایت چیست؟
کش سایت (Website Caching) فرآیند ذخیره موقت صفحات وب، تصاویر، JavaScript، فایلهای CSS است که کمک میکند سرعت بارگذاری سایت بهطرز قابلتوجهی افزایش یابد. در این فرآیند، بهجای آنکه تمام فایلها هر بار در مرورگر کاربر فراخوانی و بارگذاری شوند، نسخهای که از قبل آماده شده، به کاربر نمایش داده میشود.
کش وبسایت میتواند در سمت کاربر یا سمت سرور باشد. کش سمت کاربر در مرورگر دستگاه کاربر قرار دارد؛ در حالی که کش سمت سرور روی سروری ذخیره میشود که مخصوص نگهداری دادههای موقت است (مانند CDN).
کش وبسایت چگونه کار میکند؟
بار اول که کاربر وارد سایت میشود، مرورگر درخواست HTTP به سرور سایت میزبان میفرستد. سرور در پاسخ به این درخواست، فایلها را فراخوانی میکند، صفحه را میسازد و به مرورگر برمیگرداند؛ سپس نسخهای از بعضی فایلها در کش ذخیره میشود و در بازدیدهای بعدی، بدون دانلود، به کاربر نمایش داده میشود.
یک مثال برای درک بهتر کش سایت:
فرض کنید به یک رستوران مراجعه کردهاید و برای سفارش غذا باید در صف بایستید. برای درک بهتر مثال، اول این پیشفرض را داشته باشید:
- مشتری رستوران = بازدیدکننده سایت
- صندوقدار رستوران = مرورگر
- سرور = محل نگهداری موارد اولیه، آشپزخانۀ پخت غذا و تحویلدهندۀ غذای مشتری به صندوق
صندوقدار هر سفارشی که میگیرد به آشپزخانه میفرستد و مشتری باید تا زمان آمادهشدن و تحویل غذا منتظر باشد. سرور هم سیستمی مشابه همین را دارد؛ هر بار که بازدیدکننده درخواستی را از طریق مرورگر برای سرور میفرستد یک مسیر رفت و برگشتی تا تحویل داده انجام میشود.
حالا اگر رستوران شلوغ باشد چه میشود؟ صف طولانی انتظار، مشکل در دریافت سفارش مشتریان و حتی کلافگی مشتریان رخ میدهد. اما یک راهحل داریم: اگر رستوران بتواند غذاهایی را از قبل آماده کند و بدون رفت و برگشت به آشپزخانه به مشتریان تحویل دهد، سرعت کار بهشدت بالا میرود و دیگر خبری از صف طولانی و نارضایتی نیست.
در مثال مرورگر هم این عملکرد ممکن است. مرورگر یک سری از محتواها را از قبل ذخیره کرده است و به محض درخواست بازدیدکنندگان، بدون رفت و برگشت به سرور، سریعاً آنها را تحویل میدهد. اینطوری سرعت بارگذاری صفحات بالا میرود و عملکرد سایت بهینه میشود.
| ⭐ محتوای مرتبط: بهترین افزونههای افزایش سرعت سایت وردپرسی (معرفی ۷ افزونه برتر) |
چرا کش وبسایت مهم است؟
ما برای پاسخ به این پرسش، 6 دلیل را مطرح میکنیم: 👇
1) افزایش سرعت بارگذاری صفحات
طی فرآیند کشینگ، دادهها از یک حافظۀ محلی موقت تحویل کاربر داده میشوند و نیازی نیست برای فراخوانی آنها هر بار به سرور مبدا (Origin Server) رجوع شود. این روند، سرعت بارگذاری صفحات وب را بالا میبرد.
2) کاهش بار روی سرور
از آنجایی که محتوای سایت از منبع دیگری -جدا از سرور اصلی- فراخوانی میشود، کار سرور اصلی سبک میشود و باید به تعداد درخواستهای کمتری پاسخ دهد. اینطوری منابع سرور اصلی آزاد میشود و میتواند از ترافیک بیشتری میزبانی کند.
3) کاهش مصرف پهنای باند
کش باعث میشود که هاست شما، دادههای کمتری را بین سرور و کاربر منتقل کند. در واقع اگر از سمت کاربر نگاه کنیم اینترنت کمتری مصرف میشود و اگر از سمت سایت نگاه کنیم، پهنای باند کمتری استفاده میشود.
4) بهبود تجربه کاربری (UX)
یک سایت سریع، تجربۀ وبگردی یا خرید خوشایندتری را برای مخاطبان بر جای میگذارد. هرچه تجربه بازدیدکنندگان از یک سایت بهتر باشد، نرخ پرش (Bounce Rate) کمتر میشود و احتمال اینکه کاربران دوباره به سایتتان سر بزنند بالاتر است.
5) بهبود سئوی سایت
موتور جستوجوی گوگل، سرعت بارگذاری صفحات سایت را بهعنوان یکی از فاکتورهای کلیدی در الگوریتمهای رتبهبندی در نظر گرفته است. بنابراین سایتی که از سیستم کشینگ استفاده میکند و سرعت آن بهینه شده، میتواند رتبههای بهتری در گوگل بگیرد.
6) افزایش نرخ تبدیل (Conversion Rate)
همانطور که گفتیم، کش سایت باعث بهبود سرعت، تجربه کاربری و SEO میشود؛ همین ترکیب، زمینهساز افزایش نرخ تبدیل (تبدیل بازدیدکننده به مشتری) هم هست. چون سایتهای سریع قابلاعتمادترند و به دلیل عملکرد بهینه راحتتر میتوانند کاربران را هدایت کنند.
| ⭐ محتوای مرتبط: بهینهسازی نرخ تبدیل یا CRO چیست و چرا خیلی مهم است؟ |
انواع کش وبسایت
بهطور کلی دو نوع کش داریم: سمت سرور و سمت کلاینت. البته کش سمت سرور خودش هم انواع مختلفی دارد که در ادامه معرفی میکنیم.
کش مرورگر (Client-side)
در کش مرورگر یا کش سمت کلاینت، بخشهایی مانند صفحات HTML، کدهای CSS، عکسها و برخی محتواهای مولتیمدیا، در مرورگر کاربر ذخیره میشوند.
مرورگرهای وب معمولاً بهصورت خودکار این کشها را پاکسازی میکنند تا مطمئن شوند شما به جدیدترین دادههای مربوط به وبسایت بازدیدشده دسترسی دارید؛ با این حال، کاربران نیز میتوانند در صورت نیاز بهصورت دستی آنها را حذف کنند تا جدیدترین نسخه سایت را ببینند.
مالکان وبسایت هم میتوانند کش را از طریق تنظیمات ذخیرهسازی کش در سمت سرور و هدرهای HTTP مانند **Expires** و **Cache-Control** مدیریت کنند. به علاوه، با استفاده از نسخهبندی فایلها، مثل styles-3.css یا /app-1a32c159b.js، میتوانند مرورگر را مجبور کنند حتی در صورت طولانی بودن مدت زمان کش، نسخه جدید فایلها را دانلود کند.
مشکل اصلی کش مرورگر این است که اگر فایلها تغییر کرده باشند، ممکن است کاربر همچنان نسخه قدیمی و ذخیرهشده را ببیند. علاوه بر این، فضای ذخیرهسازی روی دستگاه کاربر محدود است.
کش سرور (Server-side)
کش سرور یک اصطلاح کلی است که انواع مختلفی از کش را شامل میشود. در این نوع کش، محتوا در یک لوکیشن ریموت (مانند هاست یا یک سرور پراکسی) ذخیره میشود و مدیریت کش سرور بر عهدۀ مالک وبسایت است و کاربران نهایی نقشی در آن ندارند.
این نوع کش میتواند هم محتوای ثابت (استاتیک) مانند صفحات HTML و تصاویر و هم محتوای پویا (داینامیک) که توسط پایگاه داده تولید میشود را ذخیره کند.
زیرمجموعههای کش سرور عبارتاند از:
کش CDN
شبکههای توزیع محتوا مانند Cloudflare یا CDN لیموهاست، منابع وبسایت را در سرورهای مختلفی که در جاهای مختلف دنیا توزیع شدهاند ذخیره میکنند و از نزدیکترین موقعیت جغرافیایی به کاربران آن را تحویل میدهند. این کار تأخیر (Latency) را کاهش میدهد و تحویل محتوا را -بهویژه برای سایتهایی که مخاطبان جهانی دارند- سریعتر میکند.
| ⭐ محتوای مرتبط: CDN چیست؟ (در این مقاله توضیحات جامعی را درباره CDN، انواع آن و نحوه کارش بخوانید.) |
کش آبجکت (Object Caching)
در این روش، نتایج کوئریهای پایگاهداده یا عملیات پیچیدۀ دیگر، با استفاده از ابزارهایی مانند Redis در حافظۀ سرور ذخیره میشود تا فشار روی سرور برای درخواستهای بعدی کاهش یابد.
کش Opcode
این نوع کش، کد کامپایلشده یک زبان اسکریپتی مانند PHP را ذخیره میکند تا در هر درخواست نیاز به کامپایل مجدد نباشد؛ در نتیجه اجرای قابلیتهای سمت سرور سریعتر میشود.
کش کامل صفحه (Full-Page Caching)
در این روش، سرور اصلی یک نسخه کامل از صفحه وب پویا را ذخیره میکند. به این ترتیب میتواند بدون کامپایل مجدد منابع، در هر درخواست صفحه را فوراً برای کاربران ارسال کند. این روش برای سایتهایی مناسب است که برای بیشتر کاربران با ظاهر یکسان نمایش داده میشوند.
کش بخشبندیشده (Fragment Caching)
در این حالت، میزبان فقط بخشهای مشخص و نسبتاً ثابت یک وبسایت مانند عنوانها یا ویجتها را ذخیره میکند. از آنجا که بخشی از منابع از قبل در کش موجود است، سرور داده کمتری را پردازش و ارسال میکند.
تفاوت کشینگ وبسایت و CDN چیست؟
کش وبسایت یعنی ذخیره کردن نسخهای از صفحات یا فایلهای سایت تا دفعههای بعد سریعتر لود شوند و فشار روی سرور کمتر شود. این کش میتواند روی مرورگر کاربر، روی خود سرور یا حتی در سطح دیتابیس باشد. هدف اصلی کش این است که سایت هر بار از صفر پردازش نشود و در نتیجه سرعت بالا برود و منابع سرور کمتر مصرف شود.
اما CDN (شبکه توزیع محتوا) مثل Cloudflare یک شبکه از سرورهای پراکنده در نقاط مختلف دنیاست که نسخهای از فایلهای سایت را در چند کشور نگه میدارد و به کاربر از نزدیکترین سرور تحویل میدهد. در نتیجه فاصله جغرافیایی کم میشود و سرعت برای کاربران شهرها و کشورهای مختلف بالاتر میرود. به زبان ساده، کش باعث سبک شدن سرور میشود و CDN باعث نزدیکتر شدن سایت به کاربر.
| ویژگی | کش (Cache) | CDN |
| هدف اصلی | کاهش فشار روی سرور | کاهش فاصله جغرافیایی با کاربر |
| محل اجرا | مرورگر کاربر یا سرور اصلی | سرورهای متعدد در نقاط مختلف دنیا |
| تاثیر روی سرعت | کمشدن زمان پردازش | کم شدن زمان انتقال داده و کاهش زمان تاخیر |
| مناسب برایِ | سبک شدن منابع سرور | بهبود سرعت برای کاربران شهرها و کشورهای مختلف |
چطور کش سایت را فعال کنیم؟
بسته یه نوع سایتتان، روند فعالسازی کش متفاوت است.
فعال کردن کش سایتهای وردپرسی
برای وردپرس، سادهترین راه نصب و فعالکردن افزونه است. سه افزونۀ WP Rocket، لایت اسپید کش (LiteSpeed cache) و W3 Total Cache عملکرد خوبی دارند و استفاده از آنها را به شما پیشنهاد میکنیم.
نکته: اگر وبسرور سایتتان لایت اسپید است، حتماً از افزونه لایت اسپید کش استفاده کنید تا هماهنگی و عملکرد خیلی بهتری را تجربه کنید.
برای اطلاعات بیشتر، حتماً مقالۀ زیر را بخوانید: 👇
| ⭐ محتوای مرتبط: بررسی و مقایسه بهترین افزونههای کش وردپرس |
فعال کردن کش سایتهایی با CMS اختصاصی
اگر سایتتان بهصورت اختصاصی برنامهنویسی شده، باید کش را سمت سرور فعال کنید. برای این کار یا باید دانش فنی لازم را داشته باشید یا از شرکت هاستینگ بخواهید این کار را برایتان انجام دهد.
کارهایی که میتوانید برای فعالکردن کش سمت سرور انجام دهید:
- فعالسازی OPcache در PHP
- استفاده از Redis یا Memcached برای Object Cache
- فعال کردن FastCGI Cache در Nginx
- تنظیم کش در Apache
- استفاده از کشینگ LMCD (برای خواندن آموزش فعالسازی، روی لینک کلیک کنید)
| ⭐ محتوای مرتبط: استفاده از CDN چه تاثیری روی سرعت سایت دارد؟ |
انواع مشکلات رایج کش وبسایت
طبق تجربهای که از تیکتهای شما در لیموهاست داریم، چهار تا از مشکلاتی که معمولاً مدیران سایت با آن مواجه میشوند را بههمراه راهحل آنها مرور میکنیم.
۱) نمایش محتوای قدیمی (Outdated Content)
گاهی پیش میآید که شما محتوای سایت را بهروزرسانی میکنید، اما کاربران هنوز نسخه قدیمی آن را میبینند. چرا این اتفاق میافتد؟ به چند دلیل:
- مدت زمان کش (Cache Expiration) خیلی طولانی تنظیم شده
- کش مرورگر کاربر هنوز منقضی نشده
- CDN نسخه قبلی را نگه داشته است (مثلاً در سرویسهایی مثل Cloudflare)
راهحلها:
- تنظیم زمان انقضای مناسب برای کش
- استفاده از نسخهگذاری فایلها (مثلاً style.css?v=2)
- پاک کردن کش سرور و CDN بعد از هر آپدیت مهم (نحوه پاک کردن کش را در بخش بعدی توضیح میدهیم.)
۲) بهروزرسانی نشدن فایلهای CSS و JS
ممکن است شما طراحی یا اسکریپت سایت را تغییر داده باشید، اما ظاهر سایت یا عملکرد دکمهها برای کاربران هنوز تغییری نکرده باشد. مشکل کجاست؟ این دو احتمال را داریم:
- مرورگر فایلهای CSS/JS قدیمی را از کش بارگذاری میکند
- فایلها بدون تغییر نام یا نسخهگذاری آپدیت شدهاند
راهحل حرفهای استفاده از Query String Versioning (یا نسخهگذاری کوئری استرینگها) است. برای مثال با تغییر نام فایل استایلشیت به style.css?v=1.3 کد CSS را ورژنبندی کردهاید.
اگر هم از افزونۀ کش وردپرس استفاده میکنید، با فعالسازی گزینه Minify + Combine، هم فایلها فشرده میشوند و هم میتوانید آنها را نسخهبندی کنید.
یک نکتۀ دیگر: همیشه یادتان باشد که پس از تغییرات فرانتاند، حتماً کش را پاک کنید. اگر این مورد را جدی نگیرید، کاربران فکر میکنند سایت شما مشکل فنی دارد و این مستقیماً به UX آسیب میزند.
۳) تداخل برای کاربران لاگینشده
گاهی کاربران وارد حساب کاربری میشوند، اما اطلاعات اشتباهی میبینند. مثلاً سبد خرید اشتباه نمایش داده میشود یا حتی اطلاعات کاربر دیگری را مشاهده میکنند. این یک خطر امنیتی جدی است؛ اما دلیل آن چیست؟
- کش شدن صفحات داینامیک؛ مثل پنل کاربری، سبد خرید و صفحه پرداخت
- عدم تنظیم استثنا یا Cache Exclusion برای کاربران لاگینشده
راهحل:
- غیرفعال کردن کش برای صفحات account ،cart و checkout
- استفاده از Object Cache بهجای Page Cache برای بخشهای داینامیک
- تست سایت در حالت Incognito بعد از فعالسازی کش
اگر فروشگاه دارید، این بخش را جدی بگیرید! یک اشتباه کوچک میتواند اعتماد مشتری را کاملاً از بین ببرد.
۴) کش بیش از حد صفحات داینامیک
گاهی صفحات داینامیک مثل نتایج جستجو، فیلتر محصولات، پیشنهادهای شخصیسازیشده و… بهصورت استاتیک کش میشوند و اطلاعات اشتباه نشان میدهند.
چرا این اتفاق میافتد؟
- تنظیمات کش عمومی برای کل سایت
- عدم تفکیک بین محتوای استاتیک و داینامیک
راهحل اصولی:
- تعریف درست و دقیق قوانین کش
- استفاده از Edge Rules در CDN
- تست رفتار سایت تحت سناریوهای مختلف کاربری
خب؛ تا اینجای مقاله چند بار به پاک کردن کش اشاره کردیم؛ اما چطور اصولی کش را پاک کنیم تا آسیبی وارد نشود؟ در بخش بعدی پاسخ میدهیم.
چگونه کش را بهدرستی پاک کنیم؟
پاک کردن کش فقط زدن Ctrl+F5 نیست! ابتدا باید بدانید که کش ممکن است در چند لایه وجود داشته باشد: مرورگر، وردپرس و CDN.
۱) پاک کردن کش مرورگر
برای این کار، کاربر باید به بخش Clear Browsing Data یا Delete browsing data در مرورگرش برود، گزینۀ Cached images and files و بعد Clear Data را بر اساس بازه زمانی مورد نظرش انتخاب کند.
یک راه دیگر هم فشردن کلیدهای Ctrl + Shift + R در هر صفحهای است که میخواهد کش آن پاک شود.
۲) پاک کردن کش افزونه یا CMS
اگر از WordPress استفاده میکنید، وارد تنظیمات افزونه کش شوید و گزینه Clear Cache یا Purge All را فعال کنید.
در افزونههایی مثل WP Rocket یا W3 Total Cache، معمولاً دکمه پاکسازی سریع در نوار مدیریت وجود دارد.
۳) پاک کردن کش CDN
اگر از CDN مثل Cloudflare استفاده میکنید، وارد داشبورد شوید و گزینه Purge Cache یا در صورت نیاز Purge Everything را فعال کنید.
⚠️ توجه: همیشه بعد از Purge کامل، سایت را در حالت ناشناس (Incognito) تست کنید.
۴) پاک کردن کش سرور
بعضی هاستینگها LiteSpeed Cache یا NGINX FastCGI Cache را برای مشتریان در نظر گرفتهاند. در این حالت بهتر است از پنل هاست یا پشتیبانی درخواست کنید تا کش سرور را برایتان پاک کند.
جمعبندی
مهمترین نکتۀ این مقاله این است که کش سایت میتواند سرعت سایت، تجربه کاربری و حتی SEO را تحت تاثیر قرار دهد. همچنین، نحوه مدیریت کش و پاکسازی آن را یاد گرفتید. در صورتی که با مشکلی مواجهید یا سوالی دارید، حتماً با ما در میان بگذارید.




دیدگاه ها
اولین نفری باشید که دیدگاه خود را ثبت می کنید