وقتی یک کاربر وارد یک سایت میشود، نمایش یک صفحه معمولاً فقط به ارسال یک فایل HTML آماده محدود نیست. در یک سایت وردپرسی ممکن است درخواست کاربر باعث اجرای PHP، دریافت اطلاعات از پایگاه داده، اجرای قالب و افزونهها و در نهایت تولید HTML شود.
اگر این فرآیند برای هر درخواست دوباره از ابتدا انجام شود، هم زمان پاسخگویی افزایش پیدا میکند و هم منابع بیشتری از سرور مصرف میشود. کش یا Cache یکی از راهکارهایی است که با ذخیره موقت دادهها یا نتایج پردازش، از انجام دوباره بخشی از این عملیات جلوگیری میکند.
البته کش سایت فقط یک مفهوم یا یک نوع سیستم نیست. در وردپرس با لایههایی مانند Page Cache، Browser Cache، Object Cache، Server Cache و Opcode Cache مواجه هستیم که هرکدام وظیفه متفاوتی دارند.
اگر بخواهیم ساده بگوییم:
کش سایت یعنی ذخیره موقت داده یا نتیجهای که قبلاً تولید شده تا در درخواستهای بعدی بتوان سریعتر از آن استفاده کرد.
در این راهنما از پرشیا وب ابتدا بررسی میکنیم کش سایت چیست و چگونه کار میکند، سپس انواع کش را توضیح میدهیم و به مهمترین سؤال عملی کاربران پاسخ میدهیم: چگونه کش وردپرس را فعال کنیم؟
در ادامه نیز درباره تأثیر کش بر سرعت سایت و سئو، تفاوت کش و CDN، افزونههای کش وردپرس، WooCommerce، Cache Hit و Cache Miss، پاک کردن کش، Browser Cache، Object Cache و خطاهای رایج هنگام استفاده از چند سیستم کش صحبت میکنیم.

کش سایت
کش سایت چیست؟
Cache یا حافظه پنهان، محلی برای نگهداری موقت دادههایی است که احتمال دارد دوباره مورد استفاده قرار بگیرند. هدف اصلی این است که در درخواست بعدی، بهجای انجام دوباره تمام پردازشها، از نتیجهای که قبلاً آماده شده استفاده شود.
فرض کنید کاربری برای اولین بار وارد صفحه اصلی یک سایت وردپرسی میشود. در حالت معمول، مسیر درخواست میتواند تقریباً به شکل زیر باشد:
درخواست کاربر
↓
وبسرور
↓
PHP
↓
WordPress
↓
Database
↓
قالب و افزونهها
↓
HTML نهایی
↓
مرورگر
حالا اگر همان صفحه قبلاً در Page Cache ذخیره شده باشد، درخواست بعدی میتواند بسیار کوتاهتر شود:
درخواست کاربر
↓
Cached HTML
↓
مرورگر
در این حالت، لازم نیست برای هر بازدید دوباره تمام فرآیند تولید صفحه از طریق وردپرس و پایگاه داده انجام شود.
این دقیقاً همان ایدهای است که سیستمهای Page Cache برای آن طراحی شدهاند: ذخیره نسخه آماده یک صفحه و ارائه آن در درخواستهای بعدی.

کش چگونه باعث افزایش سرعت سایت میشود؟
برای درک بهتر، فرض کنید تولید یک صفحه در یک سایت خاص نیازمند اجرای چند Query و پردازش PHP باشد. اگر این صفحه برای هر کاربر دوباره ساخته شود، سرور مجبور است بخشی از همان عملیات را بارها تکرار کند.
اما اگر نسخه قابل استفاده صفحه در کش وجود داشته باشد، درخواست میتواند از همان نسخه آماده پاسخ بگیرد.
بنابراین کش لزوماً به این معنا نیست که «اینترنت سریعتر شده است»؛ بلکه یعنی کار تکراری کمتری برای تولید پاسخ انجام میشود.
Cache Hit چیست؟
وقتی سیستم کش نسخه موردنیاز را پیدا میکند و میتواند همان نسخه را ارائه دهد، با یک Cache Hit روبهرو هستیم.
Cache Miss چیست؟
اگر نسخه موردنیاز در کش وجود نداشته باشد، منقضی شده باشد یا به دلیل شرایط درخواست قابل استفاده نباشد، Cache Miss رخ میدهد. در این شرایط، درخواست باید از منبع اصلی پردازش شود و در بسیاری از سیستمها نتیجه جدید نیز برای درخواستهای بعدی در کش قرار میگیرد.
درخواست
↓
بررسی Cache
↓
آیا نسخه قابل استفاده وجود دارد؟
↙ ↘
بله خیر
↓ ↓
Cache Hit Cache Miss
↓ ↓
پاسخ سریع پردازش و تولید پاسخ
↓
ذخیره در Cache
چرا کش سایت مهم است؟
اهمیت کش فقط به افزایش سرعت ظاهری سایت محدود نمیشود. یک سیستم کش مناسب میتواند روی چند بخش مهم عملکرد سایت اثر بگذارد.
کاهش زمان پاسخگویی
وقتی نتیجه یک پردازش قبلاً آماده شده باشد، سرور در بسیاری از درخواستها مجبور نیست همان عملیات را دوباره انجام دهد. این موضوع بهخصوص برای صفحات عمومی و نسبتاً ثابت اهمیت دارد.
کاهش فشار روی سرور
وردپرس برای تولید صفحات از PHP، پایگاه داده، CPU، RAM و سایر منابع سرور استفاده میکند. Page Cache میتواند تعداد پردازشهای تکراری را کاهش دهد و در نتیجه منابع آزاد بیشتری برای درخواستهایی که واقعاً به پردازش وردپرس نیاز دارند باقی بماند.
بهبود تجربه کاربر
کاربر انتظار دارد صفحه، محصول یا مقاله موردنظرش در زمان مناسبی نمایش داده شود. کاهش زمان پاسخ سرور میتواند بخشی از مسیر رسیدن کاربر به محتوای صفحه را کوتاهتر کند.
البته باید توجه داشت که کش بهتنهایی سرعت کل سایت را تضمین نمیکند. تصویر سنگین، JavaScript زیاد، فونتهای نامناسب، سرور ضعیف یا مشکلات پایگاه داده همچنان میتوانند باعث کندی شوند.
آیا کش روی سئو تأثیر دارد؟
بهتر است بین بهبود عملکرد سایت و افزایش مستقیم رتبه تفاوت قائل شویم.
فعال کردن کش بهتنهایی به معنی افزایش مستقیم رتبه در نتایج جستجو نیست. اما کش میتواند زمان پاسخگویی و عملکرد سایت را بهبود دهد و عملکرد فنی و تجربه کاربر نیز در ارزیابی کلی سایت اهمیت دارند.
بنابراین این عبارت دقیقتر است:
Cache یکی از ابزارهای بهینهسازی Performance است، نه یک میانبر مستقل برای رتبه گرفتن در گوگل.
برای بررسی سایر عوامل مؤثر بر عملکرد، میتوانید راهنمای Core Web Vitals را نیز مطالعه کنید.
انواع کش سایت چیست؟
یکی از اشتباهات رایج این است که تمام انواع Cache را یک چیز بدانیم. در واقع هر لایه برای بخش متفاوتی از سیستم طراحی شده است.
| نوع کش | محل عملکرد | وظیفه اصلی |
|---|---|---|
| Page Cache | سرور یا لایه کش | ذخیره نسخه آماده صفحه |
| Browser Cache | مرورگر کاربر | ذخیره منابعی مانند CSS، JS و تصاویر |
| Object Cache | سرور / حافظه | ذخیره دادهها و نتایج پرتکرار |
| Server Cache | وبسرور یا Proxy | ارائه سریعتر پاسخ در سطح زیرساخت |
| Opcode Cache | PHP / سرور | نگهداری کد PHP کامپایلشده |
این لایهها میتوانند در کنار یکدیگر استفاده شوند، اما جایگزین یکدیگر نیستند.
Page Cache چیست؟
Page Cache مهمترین نوع کش برای بسیاری از سایتهای وردپرسی است. در این روش، خروجی آماده یک صفحه ذخیره میشود تا درخواستهای بعدی بتوانند بدون تولید دوباره کل صفحه، نسخه ذخیرهشده را دریافت کنند.
برای مثال، در یک سایت خدماتی ممکن است صفحه «خدمات سئو» بارها توسط کاربران مختلف بازدید شود. اگر محتوای صفحه برای همه کاربران یکسان باشد، ذخیره نسخه آماده آن میتواند منطقی باشد.
Page Cache معمولاً برای این نوع سایتها بسیار کاربردی است:
- سایتهای شرکتی
- سایتهای خدماتی
- وبلاگها
- سایتهای خبری
- بسیاری از فروشگاههای اینترنتی
البته صفحات کاملاً شخصی یا Dynamic باید با قواعد متفاوتی مدیریت شوند.
Browser Cache چیست؟
Browser Cache در سمت مرورگر کاربر انجام میشود. مرورگر میتواند فایلهایی مانند تصاویر، CSS، JavaScript و فونتها را برای مدت مشخصی ذخیره کند.
در مراجعه بعدی، مرورگر ممکن است بهجای دریافت دوباره فایل از سرور، از نسخه موجود استفاده کند یا با ارسال درخواست اعتبارسنجی بررسی کند که آیا نسخه قبلی هنوز معتبر است.
Headerهایی مانند Cache-Control، ETag و Last-Modified در مدیریت HTTP Caching نقش دارند.
پس تفاوت ساده این دو را به خاطر بسپارید:
Page Cache بیشتر خروجی آماده صفحه را ذخیره میکند؛ Browser Cache بیشتر منابعی را که مرورگر دانلود میکند.
Object Cache چیست؟
Object Cache با Page Cache متفاوت است. در این روش، دادهها یا نتایج پردازشهایی که دوباره موردنیاز هستند ذخیره میشوند تا سیستم مجبور نباشد هر بار آنها را از ابتدا تولید یا از دیتابیس دریافت کند.
برای مثال، اگر یک Query نسبتاً سنگین بارها موردنیاز باشد، Object Cache میتواند نتیجه آن را برای استفاده مجدد نگه دارد.
WordPress بهصورت پیشفرض Object Cache دارد، اما این کش در حالت عادی ماندگار نیست و برای استفاده پایدار بین درخواستها به یک سیستم Persistent Object Cache نیاز دارد. فناوریهایی مانند Redis و Memcached میتوانند در این لایه استفاده شوند.
Redis Cache چیست؟
Redis یکی از فناوریهایی است که میتواند بهعنوان Backend برای Persistent Object Cache وردپرس استفاده شود.
نکته مهم این است که:
Redis جایگزین Page Cache نیست.
یک سایت میتواند همزمان Page Cache، Redis Object Cache، Browser Cache و CDN Cache داشته باشد؛ زیرا هرکدام بخش متفاوتی از مسیر پردازش را هدف قرار میدهند.
همچنین نصب یک افزونه Redis بهتنهایی به معنی فعال بودن Redis Server نیست. سرویس Redis باید در زیرساخت سرور نیز در دسترس باشد.
Server Cache چیست؟
Server Cache در سطح وبسرور یا لایههای میانی زیرساخت انجام میشود. Varnish و سیستمهای Cache داخلی برخی وبسرورها نمونههایی از این نوع معماری هستند.
مزیت مهم Server-side Cache این است که در بعضی معماریها درخواست میتواند قبل از رسیدن کامل به PHP و WordPress پاسخ داده شود.
Opcode Cache چیست؟
PHP برای اجرای کد باید آن را پردازش و به Opcode تبدیل کند. OPcache میتواند نسخه کامپایلشده کد PHP را نگهداری کند تا اجرای بعدی به شکل کارآمدتری انجام شود.
پس OPcache را نباید با Page Cache اشتباه گرفت:
- Page Cache: خروجی آماده صفحه را ذخیره میکند.
- Object Cache: دادهها و نتایج پرتکرار را ذخیره میکند.
- OPcache: کد PHP کامپایلشده را نگه میدارد.
تفاوت کش سایت و CDN چیست؟
Cache یک مفهوم کلی برای ذخیره موقت داده یا پاسخ است؛ اما CDN شبکهای از سرورها در نقاط مختلف جغرافیایی است که میتواند محتوا را از نقطهای نزدیکتر به کاربر ارائه کند.
بنابراین CDN و Cache رقیب یکدیگر نیستند و میتوانند در کنار هم استفاده شوند.
کاربر
↓
CDN / Edge Cache
↓
Origin Server
↓
WordPress
برای آشنایی بیشتر با این موضوع میتوانید مقاله CDN چیست؟ را نیز مطالعه کنید.
کش در وردپرس چگونه کار میکند؟
نکته مهم این است که WordPress بهصورت پیشفرض یک Page Cache کامل برای کل سایت فعال نمیکند. برای Page Cache معمولاً باید از افزونه، قابلیت هاست یا سیستم کش سمت سرور استفاده شود. مستندات وردپرس نیز Page Cache، Object Cache، Browser Cache و OPcache را بهعنوان لایههای جداگانه معرفی میکند.
در بسیاری از افزونههای Page Cache، فایل advanced-cache.php در مسیر wp-content نقش مهمی دارد.
همچنین ممکن است در فایل wp-config.php عبارت زیر را مشاهده کنید:
define( 'WP_CACHE', true );
اما یک نکته بسیار مهم وجود دارد:
قرار دادن این خط بهتنهایی به معنی فعال شدن کامل کش وردپرس نیست.
این تنظیم به WordPress میگوید در صورت وجود سیستم مربوط، فایل advanced-cache.php را در فرآیند بارگذاری بررسی کند؛ بنابراین وجود یک سیستم یا Drop-in مناسب نیز ضروری است. مستندات رسمی WordPress نیز تأکید میکنند که WP_CACHE بهتنهایی Page Cache یا Redis را فعال نمیکند.
چگونه کش را در وردپرس فعال کنیم؟
برای بیشتر کاربران، سادهترین روش استفاده از یک افزونه کش وردپرس است. اما قبل از نصب افزونه باید بدانید هاست شما چه وبسروری دارد و آیا از قبل سیستم Cache در سطح سرور فعال است یا خیر.
سه گزینه شناختهشده عبارتاند از:
- LiteSpeed Cache
- WP Rocket
- WP Super Cache
این افزونهها قابلیتها و معماری متفاوتی دارند و انتخاب آنها نباید فقط بر اساس نام یا تبلیغات انجام شود.
فعال کردن کش وردپرس با LiteSpeed Cache
اگر سایت شما روی LiteSpeed یا OpenLiteSpeed اجرا میشود، LiteSpeed Cache میتواند از قابلیتهای کش در سطح سرور استفاده کند. خود افزونه علاوه بر Cache امکانات مختلفی برای بهینهسازی نیز دارد، اما قابلیت Page Cache اختصاصی آن به زیرساخت سازگار نیاز دارد.
برای نصب:
- وارد پیشخوان وردپرس شوید.
- به مسیر افزونهها ← افزودن بروید.
- عبارت LiteSpeed Cache را جستجو کنید.
- افزونه رسمی LiteSpeed Technologies را نصب و فعال کنید.
- در بخش Cache وضعیت فعال بودن سیستم را بررسی کنید.

نکته: اگر وبسرور سایت Apache یا Nginx باشد، نباید فرض کنید قابلیتهای اختصاصی Server-level Cache لایتاسپید دقیقاً مانند یک سرور LiteSpeed عمل میکنند. بعضی امکانات عمومی افزونه بدون LiteSpeed نیز قابل استفادهاند، اما موتور کش اختصاصی LiteSpeed به زیرساخت خودش وابسته است.
فعال کردن کش با WP Rocket
WP Rocket یکی دیگر از افزونههای شناختهشده برای Page Cache و بهینهسازی عملکرد وردپرس است.
یکی از نکات کاربردی آن این است که Page Caching در افزونه بهصورت خودکار فعال میشود و نسخههای Cache شده صفحات به شکل فایلهای HTML نگهداری میشوند.
بعد از نصب، باید بسته به نوع سایت تنظیمات مربوط به Cache، Preload، Browser Cache و استثناهای کش را بررسی کنید.
بهخصوص در سایتهای فروشگاهی یا سایتهایی که کاربران وارد حساب خود میشوند، نباید بدون بررسی همه صفحات را یکسان Cache کرد.
WP Super Cache چیست و چگونه فعال میشود؟
WP Super Cache نیز یکی از گزینههای شناختهشده در اکوسیستم وردپرس است و امکان ایجاد نسخههای Cache شده صفحات را فراهم میکند.
بعد از نصب افزونه، از بخش تنظیمات آن میتوانید وضعیت Cache را فعال کنید و سپس گزینههای مرتبط با Preload، پاکسازی و رفتار کاربران لاگینشده را بررسی کنید.

کدام افزونه کش وردپرس بهتر است؟
پاسخ واحدی برای تمام سایتها وجود ندارد. انتخاب افزونه باید بر اساس معماری سایت و زیرساخت سرور انجام شود.
| گزینه | چه زمانی منطقیتر است؟ | نکته مهم |
|---|---|---|
| LiteSpeed Cache | سایت روی LiteSpeed/OpenLiteSpeed | برای قابلیتهای اختصاصی Cache به زیرساخت LiteSpeed نیاز دارد |
| WP Rocket | نیاز به راهکار یکپارچه و سادهتر | باید استثناهای صفحات Dynamic بررسی شود |
| WP Super Cache | نیاز به Page Cache ساده و شناختهشده | تنظیمات Cache باید با معماری سایت هماهنگ شود |
| W3 Total Cache | کاربران فنیتر و نیاز به کنترل بیشتر | تعداد تنظیمات آن بیشتر است و پیکربندی نادرست میتواند مشکل ایجاد کند |
بنابراین بهجای اینکه صرفاً بپرسیم «بهترین افزونه کش چیست؟»، سؤال دقیقتر این است:
برای وبسرور، نوع سایت و معماری فعلی من کدام سیستم کش مناسبتر است؟
قبل از نصب افزونه کش چه چیزهایی را بررسی کنیم؟
قبل از نصب یک افزونه جدید این موارد را مشخص کنید:
- وبسرور سایت Apache، Nginx یا LiteSpeed است؟
- آیا هاست از قبل Page Cache دارد؟
- آیا Cloudflare یا CDN استفاده میکنید؟
- آیا Redis یا Memcached فعال است؟
- آیا سایت WooCommerce است؟
- آیا کاربران لاگینشده دارید؟
- آیا صفحات Dynamic یا شخصیسازیشده دارید؟
این بررسی ساده میتواند از نصب چند سیستم Cache روی یکدیگر و ایجاد تداخل جلوگیری کند.
آیا میتوان چند افزونه کش را همزمان نصب کرد؟
معمولاً نباید چند افزونه Page Cache را بدون دلیل مشخص همزمان فعال کنید.
برای مثال فعال کردن همزمان:
- WP Rocket
- LiteSpeed Cache
- W3 Total Cache
ممکن است باعث شود چند سیستم مختلف برای Page Cache، Minify، Browser Cache، Lazy Load، Preload و Purge بهصورت همزمان فعالیت کنند.
نتیجه ممکن است شامل نمایش نسخه قدیمی محتوا، مشکلات CSS و JavaScript، پاک شدن غیرمنتظره کش یا رفتار متفاوت در کاربران مختلف باشد.
وجود چند لایه Cache با وجود چند افزونه Page Cache یکی نیست. میتوان Page Cache، Browser Cache، CDN و Object Cache را در کنار هم داشت؛ اما بهتر است هر وظیفه مشخص باشد و سیستمهای همپوشان بدون طراحی دقیق روی یکدیگر قرار نگیرند.
کش موبایل در وردپرس چیست؟
در سایتهای Responsive معمولاً همان HTML با CSS متناسب با اندازه صفحه نمایش داده میشود و مدیریت Cache سادهتر است.
اما اگر سایت نسخههای متفاوتی برای موبایل و دسکتاپ تولید کند، باید مشخص شود سیستم Cache چگونه این نسخهها را از یکدیگر تفکیک میکند.
بعد از فعالسازی Cache حتماً صفحههای مهم سایت را در موبایل و دسکتاپ جداگانه آزمایش کنید.
برای آشنایی بیشتر با طراحی واکنشگرا، مقاله طراحی Responsive و Mobile First را ببینید.
آیا صفحات ورود، حساب کاربری و سبد خرید باید Cache شوند؟
این یکی از مهمترین بخشهای تنظیم Cache است.
صفحات عمومی مثل مقاله، صفحه خدمات یا بسیاری از صفحات محصول میتوانند کاندید مناسبی برای Page Cache باشند؛ اما صفحات وابسته به اطلاعات کاربر باید با دقت بیشتری مدیریت شوند.
نمونههای مهم عبارتاند از:
- صفحه حساب کاربری
- سبد خرید
- Checkout
- داشبورد کاربران
- صفحات دارای اطلاعات شخصی
- بخشهایی که بر اساس Session تغییر میکنند
اگر نسخهای از یک صفحه شخصی بهاشتباه در Cache عمومی قرار بگیرد، ممکن است همان نسخه برای کاربر دیگری نمایش داده شود. بنابراین صفحات Dynamic باید یا از Page Cache خارج شوند یا با سازوکار مناسب و متناسب با معماری سایت مدیریت شوند.
کش ووکامرس چگونه باید تنظیم شود؟
در WooCommerce معمولاً همه بخشهای سایت وضعیت یکسانی ندارند.
برای مثال:
| بخش سایت | وضعیت معمول |
|---|---|
| مقالات | مناسب برای Cache |
| صفحات عمومی | معمولاً مناسب برای Cache |
| صفحه محصول | قابل Cache با توجه به Dynamic Content |
| دستهبندی محصولات | قابل Cache با توجه به تنظیمات |
| سبد خرید | نیازمند مدیریت Dynamic |
| Checkout | نیازمند مدیریت Dynamic |
| حساب کاربری | معمولاً نباید مانند صفحات عمومی Cache شود |
یکی از اشتباهات رایج این است که فقط افزونه Cache را فعال کنیم و بدون آزمایش، فرض کنیم همه صفحات فروشگاه باید دقیقاً یک رفتار داشته باشند.
چرا بعد از تغییر قیمت یا محتوا، نسخه قدیمی نمایش داده میشود؟
فرض کنید قیمت محصول را تغییر دادهاید اما کاربر هنوز قیمت قبلی را میبیند. این اتفاق میتواند به دلیل وجود نسخه قدیمی در یکی از لایههای Cache رخ دهد.
مسیر Cache ممکن است چیزی شبیه این باشد:
Browser Cache
↓
CDN Cache
↓
Server Cache
↓
WordPress Page Cache
↓
WordPress
اگر فقط Page Cache وردپرس را پاک کنید اما CDN یا مرورگر همچنان نسخه قبلی را نگه داشته باشد، ممکن است تغییر جدید را نبینید.
Cache Purge چیست؟
Purge یعنی حذف نسخههای ذخیرهشده از Cache تا سیستم بتواند نسخه جدید را تولید یا دریافت کند.
Purge Cache
↓
حذف نسخه قدیمی
↓
درخواست جدید
↓
تولید نسخه تازه
↓
Cache جدید
Purge با حذف محتوای واقعی سایت تفاوت دارد. پاک کردن Cache به معنی حذف مقاله، محصول یا صفحه از وردپرس نیست؛ فقط نسخه موقت ذخیرهشده حذف میشود.
چه زمانی باید کش سایت را پاک کنیم؟
پاک کردن Cache در زمان مناسب مفید است، اما لازم نیست هر روز یا بعد از هر بازدید این کار را انجام دهید.
مواردی که ممکن است Purge را ضروری کنند عبارتاند از:
- تغییر مهم در قالب
- تغییر CSS
- تغییر JavaScript
- تغییر طراحی صفحه
- تغییر تنظیمات Cache
- تغییر محتوای مهم
- تغییر قیمت یا اطلاعات مهم محصول
در سیستمهای حرفهای بهتر است بهجای پاک کردن کل Cache، در صورت امکان فقط Cache مرتبط با محتوای تغییرکرده پاک شود.
Cache Invalidation چیست؟
Cache Invalidation یعنی مشخص کردن اینکه کدام نسخههای Cache دیگر معتبر نیستند.
برای مثال اگر فقط یک محصول تغییر کرده است، سیستم میتواند Cache همان محصول و صفحات وابسته را پاک کند، نه اینکه کل Cache سایت را از بین ببرد.
این روش در سایتهای بزرگ و فروشگاههایی با صفحات زیاد اهمیت بیشتری دارد.
Browser Cache را چگونه تنظیم کنیم؟
Browser Cache عمدتاً از طریق Headerهای HTTP و تنظیمات سرور مدیریت میشود.
برای فایلهای نسبتاً ثابت مانند CSS، JavaScript، تصاویر و فونتها میتوان مدت نگهداری مشخصی تعریف کرد.
یکی از Headerهای مهم:
Cache-Control
برای مثال:
Cache-Control: max-age=31536000
میتواند مشخص کند یک منبع برای مدت مشخصی قابل استفاده مجدد باشد.
البته تعیین TTL طولانی برای فایلهایی که دائماً با همان نام تغییر میکنند میتواند باعث شود کاربر نسخه قدیمی را دریافت کند. به همین دلیل در سایتهای حرفهای معمولاً از Versioning یا Cache Busting استفاده میشود.
style.css?v=2.1
یا:
style.a8f23.css
در این حالت با تغییر نسخه، مرورگر متوجه میشود که باید منبع جدید را دریافت کند.
آیا Cache با Minify و Lazy Load یکی است؟
خیر. این تکنیکها اهداف متفاوتی دارند.
| تکنیک | کار اصلی |
|---|---|
| Cache | ذخیره نتیجه یا منبع برای استفاده مجدد |
| Minify | کاهش حجم کد HTML، CSS یا JavaScript |
| Lazy Load | بارگذاری منابع در زمان مناسب |
| CDN | ارائه محتوا از شبکهای از نقاط توزیع |
ممکن است یک افزونه Performance چند مورد از این قابلیتها را داشته باشد، اما این تکنیکها یکسان نیستند.
Cache Preload چیست؟
بعد از پاک شدن Cache، ممکن است نسخه جدید صفحات هنوز تولید نشده باشد. در برخی افزونهها قابلیتی به نام Cache Preload وجود دارد که با بازدید یا Crawl کنترلشده صفحات مهم، نسخه Cache شده آنها را قبل از مراجعه کاربران تولید میکند.
این موضوع برای سایتهای پرترافیک اهمیت بیشتری دارد؛ زیرا بعد از پاک شدن Cache، تعداد زیادی درخواست همزمان ممکن است به سرور برسد.
چگونه بفهمیم کش وردپرس واقعاً فعال است؟
نصب افزونه بهتنهایی کافی نیست. باید بررسی کنید که Cache واقعاً در پاسخهای سایت استفاده میشود.
یکی از روشهای عملی، بررسی Headerهای پاسخ است. بسته به سیستم مورد استفاده ممکن است Headerهایی مانند اینها دیده شوند:
X-Cache: HIT
یا:
X-LiteSpeed-Cache: hit
نام Headerها در سیستمهای مختلف متفاوت است؛ بنابراین نبودن یک Header خاص بهتنهایی اثبات نمیکند Cache فعال نیست.
در نسخههای جدید WordPress همچنین بخش Site Health میتواند اطلاعاتی درباره وضعیت Page Cache و Persistent Object Cache ارائه کند.
چرا بعد از نصب افزونه کش، سایت سریعتر نشد؟
اگر بعد از نصب افزونه تفاوت محسوسی مشاهده نکردید، چند احتمال مهم وجود دارد.
۱. Page Cache واقعاً فعال نشده است
ممکن است افزونه نصب باشد اما Cache به دلیل تنظیمات سرور یا پیکربندی افزونه Hit نشود.
۲. Cache Hit اتفاق نمیافتد
کوکیها، Query Stringها، کاربران لاگینشده و محتوای Dynamic میتوانند باعث شوند بعضی درخواستها از Cache خارج شوند.
۳. سیستم Cache دیگری از قبل وجود دارد
ممکن است هاست، CDN یا وبسرور از قبل Cache داشته باشد. نصب یک سیستم دیگر بدون شناخت معماری موجود میتواند مشکل ایجاد کند.
۴. مشکل اصلی اصلاً Cache نیست
ممکن است Page Cache کاملاً درست کار کند اما سایت به دلیل تصاویر سنگین، JavaScript زیاد، دیتابیس کند، هاست ضعیف یا درخواستهای شخص ثالث همچنان کند باشد.
چرا بعد از تغییر سایت هنوز نسخه قدیمی را میبینیم؟
این یکی از رایجترین مشکلات مرتبط با Cache است.
اگر CSS یا محتوای صفحه را تغییر دادهاید اما تغییرات نمایش داده نمیشوند، فقط WordPress را بررسی نکنید. ممکن است نسخه قدیمی در مرورگر، CDN، Server Cache یا Page Cache باقی مانده باشد.
خود مستندات WordPress نیز به Browser Cache، Server-side Cache و Cache Plugin بهعنوان عوامل رایج در نمایش ندادن تغییرات اشاره میکند.
بنابراین در زمان عیبیابی، لایهها را یکییکی بررسی کنید.
آیا کش باعث میشود هاست ضعیف سریع شود؟
خیر.
Cache میتواند مقدار زیادی از پردازشهای تکراری را حذف کند، اما محدودیت سختافزاری سرور را از بین نمیبرد.
برای مثال ممکن است صفحه اصلی سایت که Cache شده بسیار سریع نمایش داده شود؛ اما صفحه Checkout یا داشبورد کاربر که Dynamic است همچنان به PHP، دیتابیس و منابع سرور نیاز داشته باشد.
بنابراین Cache باید بخشی از استراتژی Performance باشد، نه جایگزین هاست مناسب، پایگاه داده بهینه یا کدنویسی صحیح.
آیا کش برای همه صفحات سایت مناسب است؟
خیر. معیار اصلی این است که آیا میتوان یک پاسخ مشترک و معتبر را برای درخواستهای مختلف استفاده کرد یا خیر.
صفحات عمومی و نسبتاً ثابت معمولاً گزینههای مناسبی برای Page Cache هستند؛ اما صفحات زیر باید با دقت بیشتری بررسی شوند:
- حساب کاربری
- Checkout
- Cart
- داشبورد کاربران
- صفحات وابسته به Session
- فرمهای کاملاً Dynamic
- صفحات دارای اطلاعات شخصی
- صفحات با محتوای لحظهای
یک معماری مناسب کش برای وردپرس
در یک پروژه حرفهای ممکن است چند لایه Cache در کنار هم وجود داشته باشد:
کاربر
↓
CDN / Edge Cache
↓
Server Cache
↓
Page Cache
↓
WordPress
↓
Object Cache
↓
Database
در کنار این مسیر، مرورگر نیز میتواند منابع استاتیک را Cache کند.
اما یک نکته بسیار مهم وجود دارد:
تعداد بیشتر لایههای Cache الزاماً به معنی سایت سریعتر نیست؛ هماهنگی میان لایهها مهمتر است.
چگونه سرعت سایت را قبل و بعد از فعال کردن کش مقایسه کنیم؟
بهجای اینکه فقط بر اساس حس خود تصمیم بگیرید، قبل و بعد از فعالسازی Cache عملکرد سایت را اندازهگیری کنید.
ابزارهایی مانند موارد زیر میتوانند برای بررسی عملکرد مفید باشند:
- PageSpeed Insights
- Lighthouse
- GTmetrix
- WebPageTest
اما فقط یک تست آزمایشگاهی را ملاک قرار ندهید. صفحات مهم سایت را در شرایط واقعی و در دستگاههای مختلف نیز بررسی کنید.
روش درست تست کش وردپرس
- قبل از فعال کردن Cache عملکرد صفحه را اندازه بگیرید.
- Cache را فعال کنید.
- در صورت وجود، Cache Preload را اجرا کنید.
- صفحه را چند بار آزمایش کنید.
- Headerهای پاسخ را بررسی کنید.
- صفحات اصلی و مهم سایت را تست کنید.
- صفحات Dynamic مانند Cart و Checkout را جداگانه بررسی کنید.
- نسخه موبایل را نیز آزمایش کنید.
- بعد از تغییر محتوا، فرآیند Purge و تولید Cache جدید را بررسی کنید.
چکلیست فعالسازی کش در وردپرس
- ☑ نوع وبسرور مشخص شده است.
- ☑ مشخص شده هاست از قبل Cache دارد یا خیر.
- ☑ Page Cache فعال شده است.
- ☑ Browser Cache بهدرستی تنظیم شده است.
- ☑ در صورت نیاز Persistent Object Cache فعال شده است.
- ☑ صفحات Dynamic از Cache نامناسب خارج شدهاند.
- ☑ Cart و Checkout بررسی شدهاند.
- ☑ کاربران لاگینشده بررسی شدهاند.
- ☑ CDN با سیستم Cache هماهنگ است.
- ☑ چند Page Cache متناقض همزمان فعال نیست.
- ☑ Cache Hit بررسی شده است.
- ☑ بعد از تغییرات مهم، Purge بهدرستی انجام میشود.
- ☑ نسخه موبایل تست شده است.
- ☑ عملکرد قبل و بعد از فعالسازی مقایسه شده است.
کش سایت و سئو؛ یک نکته مهم
اگر هدف شما از فعال کردن Cache بهبود عملکرد سایت است، بهتر است آن را در کنار سایر اقدامات فنی ببینید. کاهش زمان پاسخ سرور میتواند مهم باشد، اما کیفیت محتوا، ساختار سایت، تجربه کاربر، تصاویر، JavaScript، CSS، هاست و معماری کلی سایت نیز در عملکرد نهایی نقش دارند.
به همین دلیل، صرفاً نصب یک افزونه Cache و رسیدن به یک امتیاز مشخص در یک ابزار تست، به معنی بهینه شدن کامل سایت نیست.
سوالات متداول درباره کش سایت
کش سایت چیست؟
کش سایت سازوکاری برای ذخیره موقت دادهها یا نتایج پردازش است تا در درخواستهای بعدی بتوان سریعتر از آنها استفاده کرد.
کش وردپرس چیست؟
کش وردپرس مجموعهای از روشها و ابزارها برای ذخیره صفحات، دادهها یا منابع پرتکرار در لایههای مختلف است. Page Cache، Browser Cache و Object Cache از مهمترین این لایهها هستند.
آیا فعال کردن کش سرعت سایت را افزایش میدهد؟
در بسیاری از سایتها بله. بهخصوص Page Cache میتواند مقدار پردازش موردنیاز برای تولید دوباره صفحات را کاهش دهد؛ اما سرعت نهایی سایت به عوامل دیگری نیز وابسته است.
بهترین افزونه کش وردپرس چیست؟
یک افزونه واحد برای همه سایتها وجود ندارد. نوع وبسرور، معماری سایت، WooCommerce، CDN، Object Cache و سطح کنترل موردنیاز در انتخاب سیستم Cache اهمیت دارند.
آیا میتوان چند افزونه کش را همزمان فعال کرد؟
معمولاً نباید چند سیستم Page Cache را بدون دلیل و طراحی مشخص روی یک سایت فعال کرد؛ زیرا قابلیتهای مشترک ممکن است با یکدیگر تداخل داشته باشند.
آیا باید هر روز Cache را پاک کنیم؟
خیر. Cache بهتر است فقط زمانی Purge شود که تغییرات سایت یا نیاز فنی آن را توجیه کند.
آیا Cache برای WooCommerce مناسب است؟
بله، اما همه صفحات فروشگاه یکسان نیستند. صفحات عمومی مانند بسیاری از محصولات و دستهبندیها میتوانند Cache شوند، در حالی که Cart، Checkout و حساب کاربری نیاز به مدیریت دقیقتری دارند.
آیا Redis همان Page Cache است؟
خیر. Redis میتواند برای Persistent Object Cache استفاده شود، در حالی که Page Cache نسخه آماده صفحات را ذخیره میکند. این دو لایه وظایف متفاوتی دارند.
آیا کد WP_CACHE بهتنهایی کش وردپرس را فعال میکند؟
خیر. WP_CACHE بهتنهایی یک سیستم کامل Cache ایجاد نمیکند و باید سیستم کش مناسب نیز وجود داشته باشد. WordPress از این تنظیم برای بارگذاری سازوکارهایی مانند advanced-cache.php استفاده میکند.
جمعبندی؛ کش سایت چیست و چگونه آن را در وردپرس فعال کنیم؟
کش سایت یکی از مهمترین ابزارهای بهینهسازی Performance است. ایده اصلی آن ساده است: نتیجهای را که قبلاً تولید یا دریافت کردهایم برای مدتی نگه داریم تا در درخواست بعدی مجبور نباشیم همان فرآیند را دوباره از ابتدا انجام دهیم.
در وردپرس این موضوع به یک نوع Cache محدود نمیشود.
- Page Cache نسخه آماده صفحات را ذخیره میکند.
- Browser Cache منابعی مانند CSS، JavaScript، تصاویر و فونتها را در مرورگر نگه میدارد.
- Object Cache دادهها و نتایج پرتکرار را برای استفاده مجدد نگهداری میکند.
- Server Cache در سطح وبسرور یا Proxy عمل میکند.
- Opcode Cache اجرای مکرر کد PHP را بهینهتر میکند.
برای بسیاری از سایتهای وردپرسی، اولین اقدام عملی فعال کردن Page Cache است. این کار میتواند با افزونههایی مانند LiteSpeed Cache، WP Rocket یا WP Super Cache انجام شود؛ اما انتخاب افزونه باید با توجه به وبسرور و معماری واقعی سایت صورت بگیرد.
نصب افزونه پایان کار نیست. باید مشخص شود:
- کدام صفحات Cache شوند؟
- کدام صفحات Dynamic هستند؟
- Cart و Checkout چگونه مدیریت شوند؟
- کاربران لاگینشده چه وضعیتی داشته باشند؟
- CDN و Browser Cache چگونه با Page Cache هماهنگ شوند؟
- آیا سایت به Persistent Object Cache مانند Redis نیاز دارد؟
- آیا بعد از فعال کردن Cache واقعاً عملکرد سایت بهتر شده است؟
همچنین نباید Cache را جایگزین تمام اقدامات بهینهسازی بدانیم. اگر سایت تصاویر سنگین، JavaScriptهای اضافی، Queryهای کند، کدهای ناکارآمد یا زیرساخت نامناسب داشته باشد، فعال کردن Cache بهتنهایی تمام مشکلات سرعت را برطرف نمیکند.
در پروژههای طراحی سایت، سئو و پشتیبانی سایت پرشیا وب نیز سیستم Cache باید بر اساس معماری واقعی هر سایت تنظیم شود؛ زیرا تنظیم مناسب یک سایت شرکتی ساده الزاماً برای فروشگاه ووکامرسی یا سایت پرترافیک مناسب نیست.
اگر بخواهیم تمام این مقاله را در یک جمله خلاصه کنیم:
کش یعنی نتیجهای را که قبلاً تولید کردهایم تا زمانی که معتبر است نگه داریم و دوباره استفاده کنیم؛ بهجای اینکه برای هر درخواست همه چیز را از ابتدا بسازیم.
همین ایده ساده، یکی از پایههای مهم بهینهسازی عملکرد وبسایتهای مدرن است.