دستور پخت یک کش وردپرس ساده

استفاده از افزونه‌ی کش یکی از راه‌های افزایش سرعت وردپرس و کاهش فشار روی سرور هست. همیشه وقتی صحبت از cache میشه ذهن همه به طرف W3 Total Cache و WP Super Cache میره اما آیا دستورالعمل دیگه‌ای برای کش وردپرس وجود نداره؟

شکی نیست که W3 Total Cache کامل‌ترین راهکار کش برای سایتهای وردپرسی به حساب میاد و امکانات بسیار زیادش رو نباید با بقیه‌ی پلاگینها مقایسه کرد. در محبوبیت WP Super Cache هم با بیش از ۳ میلیون بار دانلود نمیشه تردید کرد اما برای وبلاگ‌های کوچکی مثل همینجایی که الان هستین که رو هاست اشتراکی و با محدودیت‌های زیاد تو استفاده از منابع سرور قرار دارن میشه از ترکیب ساده‌تری استفاده کرد که نیاز به تنظیمات کمتری داشته باشه و در ضمن با حداقل نیازمندی‌ها کار کنه.

ترکیب Hyper Cache و DB Cache Reloaded Fix پیشنهاد من به دوستانی هست که رو سرور اختصاصی یا مجازی هاست نشدن، وبلاگشون خیلی سنگین نیست و حوصله‌ی انواع تنظیمات و فکر کردن به چیزایی مثل mode_rewrite رو ندارن. افزونه Hyper Cache نیازی به دستکاری htaccess. نداره و باعث کند شدن بخش مدیریت وردپرس هم نمیشه.

اگر قصد امتحان این معجون سرعت رو دارین اول افزونه‌ی کشی که به احتمال زیاد نصب هست رو پاک کنین، کدهای اضافه شده به htaccess. رو حذف و مطمئن بشین که تو پوشه‌ی wp-content فایلی بنام advanced-cache.php وجود نداشته باشه. قدم بعدی ویرایش فایل wp-config.php هست که باید ۲ خط اولش به این صورت بشه:

<?php
define('WP_CACHE', true);

حالا میتونین پلاگین Hyper Cache رو نصب کنین. میشه گفت تنظیم خاصی نیاز نیست اما بهتره Cached pages timeout رو روی صفر تنظیم کنین و هر بار که سایت با مطلبی آپدیت میشه کش رو از بخش تنظیمات افزونه خالی کنین.

تنها همین افزونه میتونه با سرور کردن فایلهای استاتیک بجای صحفات دینامیک سرعت لود سایت شما رو چند برابر کنه اما با اضافه شدن DB Cache Reloaded Fix که کارش کش کردن درخواست‌های دیتابیس هست هم فشار رو سرور کمتر میشه هم بازدیدکننده‌های وبلاگتون سرعت بارگذاری بالاتری رو تجربه میکنن. چیزی که گوگل هم دوست داره و تو رنک سایت بهش توجه میکنه! دقت کنین که پلاگین DB Cache Reloaded Fix بعد از نصب حتما باید Enable بشه!

کش خود را گرم کنید!

اولین بار که ویزیتوری صفحه‌ای رو میبینه اون page کش میشه و برای افراد بعدی نسخه‌ی کش شده سرو میشه. حالا اگه دوست دارین این آش ۲ افزونه‌ای که دستور پختش رو دادم همیشه گرم باشه و حتی اولین نفر هم منتظر ساخته شدن صحفه‌ای نشه، پلاگین AskApache Crazy Cache رو هم نصب کنین.

کار این افزونه کش کردن اتوماتیک تمام نوشته‌ها، برگه‌ها و صفحات دسته‌هاست که از جدید به قدیم انجام میشه. AACC با WP Super Cache هم سازگاره. با زدن دکمه‌ی Cache Entire Site کار پلاگین شروع میشه و بهتره بعد از خالی کردن کش Hyper Cache دوباره این کار رو تکرار کنین. بسته به کشش سرور هر ساعت تعداد مشخصی فایل کش تولید میشه تا فشاری رو منابع سرور هم نیاد.

تو وبلاگ من که جواب داده امیدوارم برای شما هم خوش‌مزه باشه 😉

هاستینگ وردپرس ماندگاروب
۷۸ دیدگاه
  1. فارسه

    ممنون واقعا عالی و کامل بود

    پاسخ
  2. رضا

    سلام. خیلی خوب بود. خواهشا چند مطلب درباره کدها و افزونه هایی که سرعت بارگزاری سایت رو بالا میبره منتشر کنید. با تشکر

    پاسخ
  3. رضا

    سلام دوست عزیز
    افزونه AskApache Crazy Cache در سایت رسمی وردپرس لینکش برداشته شده
    میشه این افزونه رو واسم میل فرمائید ؟
    با تشکر

    پاسخ
  4. تفریحی رزپاتوق

    سلام ممنون عالی ومفیدبود

    پاسخ
  5. شروین

    با سلام خدمت شما دوست عزیز
    یک مشکلی در استفاده از این ترکیب ۲ افزونه hyper cache + data base
    برای وب سایتم پیش آمده و اون اینکه تاریخ سایت به روز نمیشود
    فکر میکنم مرتبط به قسمت کش دیتابیس شود منتهی کد فیلتر تاریخ را نمیدانم
    میخواستم بدانم مشکل از کجاست و خوشحال میشوم راهنمایی نمایید
    با تشکر

    پاسخ
  6. رامین

    ممنونم ازت. Woopra رو هم یه امتحانی می کنم.

    پاسخ
  7. رامین

    محسن جان سلام. این افزونه بسیار عالی کار می کنه. فقط یه مشکل اساسی به وجود آورده.
    این افزونه، افزونه Cystat سایت من را به کلی بهم ریخته. مثلا یه وقت میبینی واسه یه مطلب زده ۱۵ بازدید، یه وقت میبینی زده ۱۰ بازدید و…
    آیا راه حلی برای این مشکل وجود داره؟

    پاسخ
    • محسن غیاثی

      سلام رامین جان. یکی از ایرادهای اساسی افزونه‌های آمار همین ناسازگار بودنشون با افزونه‌های کشه. اگر آمار رو برای بازدیدکننده نشون نمیدین و فقط تو مدیریت استفاده می‌کنین بهتره برین سراغ Google Analytics یا Woopra.

      پاسخ
  8. رامین

    پس طبق گفته های شما، لازمه که ما حتما کش رو دستی پاک کنیم. درسته؟

    پاسخ
    • محسن غیاثی

      اگر مقدار گزینه‌ی اول رو صفر گذاشتین بله.

      پاسخ
      • رامین

        خوب دقیقا رسیدیم به قسمتی که مد نظر من می باشد
        من می خوام خودکار پاک بشه، حالا به نظر شما اگر من عدد ۱۰ را انتخاب کنم، یعنی هر ۱۰ دقیقه کش پاک بشه، فشاری به سرور وارد نمی کنه؟
        پیشنهاد شما به عنوان یک حرفه ای در این زمینه، چه عددی برای زمانبندی می باشد؟

        پاسخ
        • محسن غیاثی

          اگر مشکل فضا ندارین تا جای ممکن بذارین فایلهای کش‌شده لود بشن. اینجوری فشار کمتری هم به سرور میاد.

          پاسخ
          • رامین

            فضای بنده ۵۰۰MB می باشد، که ۳۰۵MB مصرف شده، روزانه ۲۰۰۰ آی پی منحصر به فرد هم بازدید دارم. اگر شما یک عددی رو برای زمانبندی پیشنهاد بدید، خیالم راحت میشه. شاید اون زمانی که مد نظر من هست با زمانی که مد نظر شما می باشد، یکی باشه، اما اگه شما زمان رو تأیید کنید خیالم راحت تر میشه. ممنون.

            پاسخ
            • محسن غیاثی

              توصیه‌ی مهم‌تر بنده اینه که فضای سایتتونو ارتقا بدین. ۷۲۰ دقیقه رقم متداولی هست برای این گزینه.

              پاسخ
              • رامین

                من هم با ۷۲۰ دقیقه موافقم.
                واقعا یک دنیا ممنونم بابت این همه راهنمایی و تجارب ارزشمندی که به من و سایر دوستانم انتقال می دهید. بنده یکی از بازدیدکنندگان ثابت سایت شما هستم که بسیاری از جواب سئوالاتم را در سایت شما بدست آوردم.
                باز هم ممنون.

              • محسن غیاثی

                لطف دارین رامین جان. خوشحالم که مطالبم براتون مفید بوده.

  9. رامین

    خوب محسن جان دو سئوال از خدمتون داشتم.
    این جور که من متوجه شدم بعد از ارسال هر مطلب، کش ۰ می شود درسته؟
    حالا یک سئوال دیگر
    در قسمت Cache invalidation mode سه گزینه وجود دارد، با توجه به اینکه سایت بنده یک سایت سرگرمی تفریحی می باشد، روی کدام گزینه قرار بگیرد بهتر است؟
    گزینه ی all cached pages یا گزینه ی only modified posts و یا nothing.

    پاسخ
  10. رامین

    محسن جان سلام. خسته نباشی بابت این همه زحمت
    میخواستم بدونم که افزونه Hyper cache آیا تنظیماتی نداره که به صورت خودکار کش را پاک کنه؟

    پاسخ
    • محسن غیاثی

      سلام آقا رامین. گزینه‌ی Cached pages timeout مشخص میکنه که صفحات کش شده چند دقیقه معتبر باشن و بعد از اون مجددا ساخته بشن. در ضمن بعد از ارسال یا ویرایش پست و کامنت هم کش دوباره ساخته میشه که تنظیماتش تو قسمت Cache invalidation mode هست.

      پاسخ
      • رامین

        قسمت Cache invalidation mode رو خوب متوجه نمیشم. این قسمت ۳ گزینه داره
        all cached pages , only modified posts , nothing منظور از اینا چیه و خود شما کدام یک را پیشنهاد می کنید.
        ضمن اینکه به نظر شما اگر گزینه ی Cached pages timeout را زمان بندی کنم بهتره یا همون روی عدد ۰ باقی بمونه.

        پاسخ
        • محسن غیاثی

          گزینه اول که مشخص میکنه بعد از تغییراتی مثل اضافه شدن و ویرایش پست یا کامنت همه‌ی پستها از کش حذف بشن یا فقط پست دستکاری شده یا هیچکدوم. بهتره روی only modified posts ست کنین و بعد از ارسال پست خودتون دستی کش رو پاک کنین. در مورد گزینه‌ی دوم هم اگر پستهاتون خیلی خیلی زیاد نیستن بذارین رو صفر و کار پاک کردن کش رو خودتون دستی انجام بدین.

          پاسخ
          • رامین

            خوب اینجا دو سئوال واسم پیش اومد.
            ۱- کش رو هر چند وقت یه بار پاک کنم؟
            ۲- فرض کنید الآن به سی پنل وارد شدم. مثلا disk space بنده شده ۳۵۰MB، حالا وقتی که من یک مطلب منتشر می کنم، disk space بنده میشه ۲۹۰MB. دلیل این رویداد رو متوجه نمیشم. آیا خود این عمل به معنی پاک کردن خودکار کش نیست؟

            پاسخ
            • محسن غیاثی

              ارسال نوشته‌ی تازه کش رو بصورت خودکار پاک میکنه. اگر تغییر خاصی تو سایت میدین مثلا به سایدبار چیزی اضافه میکنین دستی کش رو پاک کنین.

              پاسخ
              • رامین

                این سئوال آخر رو هم بپرسم که خیالم راحت شه
                الان در قسمت تنظیمات Hyper cache
                روبروی Files in cache (valid and expired) عدد ۱۷۰ نمایان هست
                این ۱۷۰ به چه معنی است. اگر پس از انتشار مطلب، کش به صورت خودکار پاک میشه، پس این عدد ۱۷۰ چیه؟

              • محسن غیاثی

                معذرت میخوام رامین جان. پست جدید که میذارین فایلهای مربوط به کش غیرمعتبر میشن و برای کاربر سرور نمیشن ولی تا زمانی که موقع پاک شدنشون که تو گزینه‌ی اول تعیین کردین نرسیده باشه یا دستی پاک نکنین تو هاست باقی میمونن.

  11. best

    بعد از نصب و استفاده از این افزونه ها آیا باید کش رو خالی کنیم؟
    اگه آره،از چند وقت؟

    پاسخ
    • محسن غیاثی

      بعد از ارسال پست جدید چک کنین اگر بصورت خودکار کش خالی نشده باشه اینکار رو انجام بدین.

      پاسخ
  12. ایوب

    آقا محسن هر تغییری تو سایت میدم اعمال نمیشه!!! باید زمان پاک شدن کش رو کم کنم آیا؟
    مرسی 🙂

    پاسخ
  13. دانیال

    سلام.من w3 total cache رو نصب کردم ولی هیچ تغییری در سرعت سایتم بوجود نیومد
    مشکل از کجاست؟

    پاسخ
    • محسن غیاثی

      افزونه‌ی کش فقط از پردازش و ساخت چندباره‌یصفحات جلوگیری میکنه و ضمن افزایش نسبی سرعت لود اولیه از فشار روی سرور کم میکنه. سایت شما رو چک کردم حجم زیادی داره و موارد زیادی توش رعایت نشده که مشکل سازه. میتونم با دریافت هزینه برای بهبود کاراییش در خدمتتون باشم.

      پاسخ
  14. ایوب

    سلام؛
    من افزونه w3tc رو دارم ولی میخوام به این افزونه هایی که گفتین مهاجرت کنم.
    از طریق پیشخوان حذفش کنم کافیه؟تداخل ایجاد نمیشه؟
    مرسی.

    پاسخ
    • محسن غیاثی

      سلام ایوب جان مشکلی پیش نمیاد فقط بهتره قبل از غیرفعال کردن افزونه، کش رو خالی کنین.

      پاسخ
  15. محمدرضا احدیان

    agha man in karo kardam bad dige vaghti esme sitamo mizanam to site tools.pingdom.com sitamo baz nemikone iani mizane khalie

    پاسخ
  16. اصغر

    سلام آقای غیاثی
    ممنون از معرفی خوبتون. میخواستم ببینم استفاده از همین دو افزونه ای که معرفی کردید برای فشرده سازی css و js هم کافیه. یا باید علاوه بر دو افزونه اشاره شده مثلا wp minify رو هم نصب کرد؟

    تشکر

    پاسخ
    • محسن غیاثی

      سلام دوست عزیز. این افزونه فقط فایل HTML صفحات رو فشرده میکنه. برای gzip کردن استایل و اسکریپتها اگر بصورت خودکار هاست این قابلیت رو نذاشته باشه باید تو فایل htaccess. کدش رو قرار بدین:

      #Gzip
      <ifmodule mod_deflate.c>
      AddOutputFilterByType DEFLATE text/text text/html text/plain text/xml text/css application/x-javascript application/javascript text/javascript
      </ifmodule>
      #End Gzip
      پاسخ
      • ایوب

        نه محسن جان توی توضیحات DB Cache Reloaded Fix نوشته که gzip رو هم فعال میکنه!

        پاسخ
        • محسن غیاثی

          Hyper Cache اینکار رو انجام میده.

          پاسخ
          • ایوب

            اوه عجب سوتی 😀 حال نداشتمHyper Cache رو تایپ کنم اسمشو اشتباهی کپی کردم .

            پاسخ
  17. امین

    من همه این افزون هارو نصب کردم فقط به جای hyper cache از wp super cache استفاده می کنم و یه کد gzip هم توی فایل htaccess گذاشتم.به نظرتون این خوب هست؟
    اما یه مشکل دارم که وقتی یه تغییری رو توی سایت ایجاد می کنم(مثلا یه بنر می ذارم) خیلی ها نمی تونن اون رو ببینن.باید چیکار کنم؟

    پاسخ
    • محسن غیاثی

      سلام امین جان. خود سوپر کش کار فشرده کردن رو انجام میده نیازی به کد نیست. البته بعد از برداشتن کد چک کنین ببینین فایلهای css و js رو خود سرور فشرده میکنه یا نه اگر نکرد کد رو بذارین. بعد از تغییر تو سایت باید کش رو از بخش Contents پاک کنین.

      پاسخ
      • امین

        منظورتون از بخش content کجا هست؟ حتی بعد از گذاشتن مطلب هم باید انجام بدم؟
        یکی از دوستام از Hyper cache استفاده می کنه و وقتی مطلب می ذاره کسی نمی بینه.برای اون چه چیزی پیشنهاد می کنید؟

        پاسخ
        • محسن غیاثی

          از بخش تنظیمات به WP Super Cache برین و بعد از منوی Contents کش رو پاک کنین. اگر تو تنظمات هایپرکش گزینه‌ای که بصورت خودکار بعد از انتشار پست جدید کل کش رو پاک کنه نیست باید بعد از پست دادن خودشون بصورت دستی تو صفحه تنظیمات افزونه کش رو پاک کنن.

          پاسخ
          • امین

            این تنظیم افزونه هایپر کش کجا هست و چطوری میشه فعالش کرد؟

            پاسخ
            • محسن غیاثی

              برای Cache invalidation mode مقدار All cached pages رو انتخاب کنین ببینین درست عمل میکنه یا نه. از منوی تنظیمات بخش Hyper Cache در دسترسه.

              پاسخ
              • امین

                اتفاقا همین انتخاب شده.اما تاثیری نداره

        • رسول چراغی

          به ازای هربار آپدیت شدن وبسایت باید از قسمت تنظیمات هایپر کش، clear cache زده بشه 😉

          پاسخ
          • امین

            نه.آقای غیاثی که گفتن به صورت اتوماتیک حذف کنه.می خواستم بدونم این قابلیت چطوری فعال میشه؟

            پاسخ
  18. مصطفی

    خیلی خیلی عالی بود…
    خدا خیرت بده…
    شاید باورت نشه ولی خداییش سرعت لود سایتمو از ۱۵ ثانیه به ۴ ثانیه اوورد…
    عااااااالییییییییییی.

    پاسخ
  19. ali

    ممنون

    پاسخ
  20. رسول

    سلام
    ببخشید سوال خیلی کودکانه هست…
    من اون کد را اضاف کردم به WP-config اخطار دارد:
    syntax error, unexpected ‘<' in /home3/ecogeeki/public_html/wp-config.php on line 3

    پاسخ
  21. مهدی

    داش داش امروز فهمیدم که اگه این افزونه لعنتی نصب باشه وردپرس هنگام آپدیت ارور میده.

    پاسخ
    • محسن غیاثی

      چه مشکلی پیش اومده دوست عزیز و چجوری متوجه شدین مشکل از این پلاگینه؟

      پاسخ
  22. مهدی

    سلام

    من الان می خوام شروع کنم به نصب و … این پلاگین

    می کشمت کار نکنه

    می کشمت

    ههههههه
    😀

    پاسخ
    • مهدی

      نصب کردم، گام به گام جلو رفتم

      فعلا که کش من صفر درصده

      اگه صفر درصد بمونه، کل آش رو توی newbie خالی می کنم

      :-d

      پاسخ
      • محسن غیاثی

        بسلامتی ایشالا مهدی جان 😉

        پاسخ
        • مهدی

          سلام دوباره

          گفته بودید که اگه کاربر بیاد صفحه کش میشه .

          از اون موقع که من این پلاگین ها رو نصب کردم، کلی بازدید کننده داشتم ولی کش باز ۰ هست.
          من این جا اندازه میگیرم :

          gtmetrix.com

          جای دیگه ای هم برای اندازاه گیری کش هست؟

          پاسخ
          • محسن غیاثی

            !!! کجای GTMetrix کش رو اندازه می‌گیرین؟!!!

            پاسخ
            • مهدی

              سلام

              توی این قسمت:
              Leverage browser caching
              البته هنوز مال من تکون نخورده، تقریبا یه روز رد شد.
              میشه یه سایت رو لطف کنید معرفی کنید ما کش سایتمون رو اندازه بگیریم؟

              پاسخ
              • محسن غیاثی

                سلام آقا مهدی این چیزی که شما می گین هیچ ربطی به جزیان این افزونه کش نداره. هیچ ابزاری برای سنجش کش وجود نداره. تو تنظیمات Hyper Cache تعداد آیتمهای کش شده نشون داده میشه.

  23. محسن شایان

    خوشمزه بود ما هم زدیم 😉

    پاسخ
  24. مهدی هوشیار

    سلام محسن جان
    حالت چطوره؟
    آقا من از سوپر کش استفاده می کنم، این پلاگین سومی که گفتی همیشه کش گرم نگه می داره با سوپر کش هم سازگاری دارد؟

    پاسخ
  25. مهدی غیاثی

    سلام!

    این افزونه‌ی AskApache Crazy Cache رو تا حالا ندیده بودم. روی سرور ویندوز هم جواب میده؟

    راستی، به اینجا هم یه نگاهی بندازید: http://2barnamenevis.com/index.php/1390/12/16/windows-store-iran-petition/

    پیروز باشید 😉

    پاسخ
  26. مهدی

    اقا محسن ایول
    الان داشتم اشپزی کش میکردم

    W3 Total Cache
    قبلا داشتم خوب هم بود ولی زیادی امکاناتش کیجم کرده بود
    الان داشتم Quick cahce اون دوتا افزونه بالای رو P3 – Plugin Performance Profiler
    تست میکردم من هم رسیدم به اینا
    Hyper Cache و DB Cache Reloaded Fix

    فقط اینو ندیده بودم الان AskApache Crazy Cache تست میکنم
    ممنون

    پاسخ

Please Post Your Comments & Reviews

نشانی ایمیل شما منتشر نخواهد شد Required fields are marked *

*