پاک کردن خودکار حافظه کش در وردپرس از طریق کرون جاب
آیا تابحال به پایین آمدن سرعت لود صفحه یک وبسایت پس از پاک کردن تاریخچه مرورگرتان دقت کردهاید؟ بطور معمول هرباری که حافظه مرورگرتان را پاک میکنید، سرعت و مدت زمان لود شدن وبسایتهایی که بازدید کرده بودید به حالت اولیه برمیگردد.
حافظه کش یا cache در واقع یک کپی از اطلاعات وبسایت است که پس از اولین رجوع کاربر به سایت جمعآوری شده و بصورت صفحه وبسایت به او ارائه میشود. این اطلاعات پس از مدتی نیاز به حذف و بارگذاری دوباره دارند. کرون جاب نرم افزاری است که میتواند این اطلاعات را بصورت اتومات پاک کند. در این مقاله نحوه پاک کردن خودکار حافظه کش در وردپرس از طریق کرون جاب را توضیح میدهیم.
خب علت این کار چیست ؟ در بیان بهتر، هنگامی که شما برای اولین بار از یک وبسایت بازدید میکنید اطلاعات را بصورت مستقیم از وبسروری که وبسایت به آن متصل است دریافت میکنید. در عین حال هم سرور وبسایت و هم مرورگر شما از اطلاعات صفحه سایت یک کپی جهت استفاده آتی تهیه کرده و بر روی حافظه کش (cache) ذخیره میکنند.
از این رو در آینده برای بازدید از وبسایت دیگر نیازی به اتصال مستقیم و دریافت اطلاعات از خود وب سرور ندارید و با اتصالی سریعتر به حافظه کش یا موقت، میتوانید به وبسایت مدنظرتان دسترسی داشته باشید. با این حال لازم است که صاحبان وبسایت بصورت دورهای اقدام به پاک کردن حافظه کش در وردپرس کنند.
بطور کلی برای پاک کردن حافظه cache و بالا بردن سرعت وبسایت روشهای متعددی وجود دارد. با استفاده از افزونههایی نظیر لایت اسپید کش میتوانید سرعت بارگذاری صفحات وبسایتتان را افزایش دهید. ما در این مقاله به معرفی نحوه پاک کردن خودکار حافظه کش در وردپرس از طریق کرون جاب میپردازیم.
هنگامی که قصد راهاندازی وبسایتی را دارید پیشنهاد میکنیم با خرید سرور مجازی خیال خود را از بابت بالا بودن دائمی و سرعت بهینه وبسایت راحت کنید.
چرا حافظه cache را پاک میکنیم ؟
اگر حافظه کش در افزایش سرعت و کاهش زمان بالا آمدن وبسایت موثر است چرا باید آن را پاک کنیم؟ همانطور که پیشتر گفته شد حافظه cache هم در وب سرور و هم در مرورگر کاربر شکل میگیرد. هر کاربری بنابر نیاز یا مصلحت خویش (که عموما بخاطر پاک کردن ردپای جستجوی خود در اینترنت است) اقدام به پاک کردن cache میکند.
اما کش یا حافظه موقتی که بر روی وب سرور و یا قسمت وردپرس وبسایت تهیه میشود به مرور زمان میتواند موجب کندی و داون شدن وبسایت شود. بنابرین یکی از دلایل پاک کردن دورهای حافظه کش جلوگیری از انبار شدن بیش از حد فایلهای این حافظه بر روی هم است.
همچنین پس از تشکیل حافظه کش، از آنجایی که کاربر در هر بازدید از سایت به وب سرور اصلی وصل نمیشود از تغییراتی که وبسایت در قسمت مطالب، پوسته و دیگر فضاهای خود بوجود آورده است مطلع نخواهد شد چون نسخه کش قبلی را مشاهده میکند.
به همین جهت نیاز است که کش وردپرس وبسایت را پاک و بهروزرسانی کنیم تا کاربران بتوانند آخرین تغییرات وبسایت را مشاهده کنند.
نهایتا دلیل دیگری که به سرعت لود شدن صفحات وبسایت مربوط و برای بسیاری از صاحبین کسب و کار حائز اهمیت است، ارتباط نمره سئو با بالا آمدن وبسایت است بصورتیکه کاربران در اینترنت وبسایتهایی با لودتایم بیش از 3.5 ثانیه را سریعا ترک میکنند.
گوگل به این عامل حساس است و وبسایتهایی با لودتایم کمتر را در رتبههای بالاتر در صفحات جستجوی خود نشان میدهد.
بنابر دلایل بالا و چند دلیل جزئی دیگر مانند داشتن رابط کاربری یا UI بهتر، لازم است که نسبت به پاک کردن حافظه کش در وردپرس اقدام کنیم. اما برای وبسایتهایی با بازدید بالا این کار میتواند دردسرهایی هم داشته باشد. چرا که پاک کردن حافظه کش در طی پیک بازدید و عموما در طی روز گزینه جالبی به نظر نمیرسد.
به همین جهت است که جای خالی ابزارهایی برای انجام این کار بصورت خودکار و در هر موقع از شبانهروز به چشم میآید.
کرون جاب چیست ؟
کرون جاب نرمافزاری است که به اتومات و خودکارسازی فرآیندهای تکرارشونده کمک میکند. از طریق نرمافزار cron job میتوانید بدون اختصاص زمان، انرژی، سرمایه و منابع، بسیاری از کارهای مربوط به وبسایت را به صورت خودکار و در زمانبندی مشخص انجام دهید که یکی از آنها پاک کردن خودکار حافظه کش در وردپرس است.
این نرمافزار در کنترل پنلهای مختلفی مانند سی پنل یا دایرکت ادمین بصورت پیش فرض وجود دارد و در وبسایتهای پر بازدید در مواردی از قبیل پاک کردن خودکار حافظه cache مورد استفاده قرار میگیرد. همچنین دقت کنید که این نرم افزار صرفا انجام دهنده کار است و باید کدهایی به آن ارائه دهیم تا آنها را اجرا کند.
خودکارسازی پاک کردن حافظه کش در وردپرس از طریق cron job
دو راه برای اضافهکردن کرون جاب داریم؛ یکی ران کردن آن بر روی سرور اصلی و راه دیگر استفاده از کرون جاب موجود بر روی وردپرس که هر دوی این راهها را آموزش خواهیم داد.
اما در ابتدا مانند بقیه آموزشها لازم است برخی پیشنیازها را داشته باشیم. ابتدا افزونه WP Rocket را بر روی وردپرس نصب و گزینه Cache preloading را در قسمت Preload options این افزونه فعال کنید. همچنین آپشن حذف کش خودکار را غیرفعال کنید.
حال پس از ست کردن پیشنیازها لازم است یک کرون جاب ایجاد کنیم تا در زمان مشخص شده، حافظه کش وردپرس را پاک و از نو بارگزاری کند.
قدم اول: ایجاد یک فایل PHP برای پاک کردن کش وردپرس
در ابتدا به یک فایل PHP حاوی دستوراتی برای پاک کردن حافظه کش فایلهای HTML و CSS/JS نیاز داریم. این فایل را میتوانید از طریق هر نرمافزار ادیتور ایجاد کنید. همچنین اگر به سی پنل یا کنترل پنل دیگری دسترسی دارید از طریق file manager نیز میتوانید این کار را انجام دهید. فایل را تحت نام rocket-clear-cache-cron.php ایجاد و کد زیر را در آن وارد کنید:
<?php
// Load WordPress.
require( 'wp-load.php' );
// Clear cache
// Also preload the cache if the Preload is enabled.
if ( function_exists( 'rocket_clean_domain' ) ) {
rocket_clean_domain();
}
// Clear minified CSS and JavaScript files.
if ( function_exists( 'rocket_clean_minify' ) ) {
rocket_clean_minify();
}
حالا این فایل را ذخیره و در محل پوشه روت با نام “public_html” یا “www” که بر اساس نوع سرور متغیر است آپلود کنید. اگر از طریق cpanel فعالیت میکنید میتوانید آن را در public_html ذخیره کنید.
توجه: چنانچه قصد دارید این فایل را درجای دیگری ذخیره کنید، حتما محل آن را در قسمت “wp-load.php” در سطر سوم کد بالا قید کنید.
قدم دوم: ایجاد کرون جاب
حالا که فایل PHP آماده است، به یک کرون جاب جهت اجرای آن نیاز داریم. ضمنا همانطور که قبلا اشاره کردیم دو راه برای ایجاد کرون جاب داریم؛ اقدام از طریق کرون جاب بر روی سرور و یا استفاده از کرون جاب وردپرس. این روشها به شرح زیر هستند:
متد اول: تعبیه کرون جاب بر روی سرور
این روش اولویت اول ما در خودکارسازی پروسه حذف کردن حافظه کش در وردپرس با cron job است چرا که مستقیما بر روی وب سرور و در زمان تنظیم شده اجرا میشود.
برای این کار فایل wp-options.php که در پوشه روت محل نصب وبسایت وردپرسی شما قرار دارد را باز کنید. در خطوط پایانی کدها، خط ‘That’s all, stop editing! Happy publishing’ را بیابید و کد زیر را در خط بالایی آن وارد کنید:
define('DISABLE_WP_CRON', true);
حالا کرون جاب وردپرس غیرفعال شده است و وقت آن است که کرون جابی برای اجرا بر روی سرور ایجاد کنیم. وارد کنترل پنل وبسایت خود و بخش Cron Jobs شوید.
تنظیم ایمیل اطلاع رسانی
چنانچه مایل به دریافت اطلاع رسانیهای کرون جابها هستید، در قسمت Cron Email آدرس ایمیل خود را وارد و روی گزینه Update Email کلیک کنید.
در غیر اینصورت و برای غیرفعال کردن تمامی اطلاع رسانیهای کرون جاب، تنها کافیست آدرس ایمیل را حذف کنید. اما اگر میخواهید اطلاع رسانی کرون جاب خاصی را غیر فعال کنید، باید از راه دیگری اقدام کنید.
در جدول Current Cron Jobs کرون جاب مد نظرتان را پیدا و روی دکمه Edit کلیک کنید. در قسمت خط دستور یا Command، در انتهای کد موجود عبارت زیر را وارد و فایل را ذخیره کنید:
/dev/null 2>&1
بعنوان مثال دستوری مانند دستور زیر خواهید داشت:
/usr/local/cpanel/bin/is_script_stuck /dev/null 2>&1
تنظیم زمانبندی کرون جاب
حالا در منوی زمانبندی کرون جاب میتوانید چرخه اجرای آن را تنظیم کنید. بدین منظور هم میتوانید در بین لیستهای موجود گزینههای مناسب را انتخاب و یا در جاهای خالی مقادیر انتخابی را وارد کنید.
- در قسمت Common Settings میتوانید الگوی کلی را انتخاب کنید؛ مثلا اجرای کرون جاب بصورت هفتگی، ماهانه و یا روزانه.
- در بخش Minute باید عددی مابین 0 و 59 وارد کنید که به دقیقه اشاره دارد.
- در بخش Hour میتوانید عددی بین 0 و 23 وارد کنید که به ساعت اجرا اشاره دارد.
- در بخش Day عددی مابین 1 و 31 را باید وارد کنید که به روز اشاره دارد.
- در بخش Month عددی مابین 1 و 12 میتوانید وارد کنید که به ماه اشاره میکند.
- در بخش Weekday عددی بین 0 و 7 را باید وارد کنید که به روز هفته اشاره دارد.
وارد کردن دستور کرون جاب
در ابتدای مقاله اشاره کردیم که کرون جاب صرفا انجام دهنده کار است و باید برایش یک وظیفه تعریف کنیم تا در زمان مشخص شده آن را انجام دهد. در این مرحله باید دستوری را به کرون جابی که ایجاد کردهایم بدهیم تا آن را در زمانی که مشخص کردیم اجرا کند. دستور زیر را در قسمت Command وارد کنید:
wget -q -O - https://yourdomain.com/wp-cron.php?doing_wp_cron >/dev/null 2>&1
حتما آدرس اصلی وبسایت خودتان را با عبارت yourdomain.com در کد بالا جایگزین کنید. در پایان روی گزینه Add New Cron Job کلیک کنید تا کرون جاب جدید ایجاد شود.
اما این پایان کار نیست. ما به یک کرون جاب دیگر برای اجرای فایل PHP که ساختهایم نیاز داریم تا با اجرای آن، حافظه کش را پاک و از پیش بارگذاری کنیم (پیش بارگذاری: بارگذاری صفحه cache قبل از دریافت درخواست از سمت مرورگر)
ایجاد کرون جاب ثانوی
با طی کردن عینی مراحل بالا و وارد کردن دستور زیر، کرون جاب جدید را ایجاد کنید:
wget -q -O https://yourdomain.com/rocket-clear-cache-cron.php >/dev/null 2>&1
حتما آدرس اصلی وبسایت خودتان را با عبارت yourdomain.com در کد بالا جایگزین و از صحیح بودن نام فایل PHP ایجاد شده اطمینان حاصل کنید. زمان اجرا را نیز بسته به نیاز خود تنظیم بکنید.
متد دوم: تنظیم کرون جاب در وردپرس برای پاک کردن حافظه کش
چنانچه ترجیح میدهید از پیچیدگیهای سرور به دور باشید میتوانید از افزونه WP Crontrol برای ایجاد کرون جاب استفاده کنید. این افزونه را نصب کنید و به آدرس WP Admin > Tools > Cron Events > Add Cron Event بروید.
PHP Cron event را انتخاب کنید. در روت دایرکتوری فایل function.php را پیدا و کد زیر را در آن قرار دهید:
// Clear cache
// Also preload the cache if the Preload is enabled.
if ( function_exists( 'rocket_clean_domain' ) ) {
rocket_clean_domain();
}
// Clear minified CSS and JavaScript files.
if ( function_exists( 'rocket_clean_minify' ) ) {
rocket_clean_minify();
}
در قسمت Hook Name نام فایل PHP که در ابتدای مقاله ساختیم را وارد کنید.
قسمت Argument برای گذاشتن آرایههای نوع JSON است. آن را خالی بگذارید.
از لیست Recurrence زمان بندی اجرای این کرون جاب را میتوانید انتخاب کنید.
نهایتا برای ایجاد cronjob روی Add Event کلیک کنید.
حالا شما با موفقیت پاک کردن خودکار حافظه کش در وردپرس از طریق کرون جاب را انجام دادهاید.
سخن آخر
در روزگاری که میانگین مدت زمان ویدیوها در شبکههای اجتماعی به زیر 10 ثانیه رسیده، قسمت کش هر وبسایتی از مهمترین بخشهای آن در امر بهبود سرعت سایت و نهایتا جذب مخاطب است. مدیران وبسایتهای بزرگ به این بخش وبسایت خود دقت زیادی دارند تا در کمترین زمان و با بیشترین سرعت بتوانند جدیدترین نسخه از هر صفحه وبسایتشان را در اختیار کاربر قرار دهند.
با رعایت شیوهنامهای که توضیح داده شد میتوانید عمل پاک کردن حافظه کش در وردپرس از طریق کرون جاب را به صورت خودکار درآورید. همین طور بعد از آموختن این روشها باید نکاتی را مدنظر داشته باشید. اول این که قبل از هر اقدامی حتما با واحد پشتیبانی سرور مجازی وبسایت خود در این باره مشورت کنید و دومین نکته این که پاک کردن حافظه کش بصورت مکرر و در بازههای کوتاه میتواند به سرور آسیب بزند. پس این نکته را هم حین تنظیم چرخه زمانی کرون جاب در نظر داشته باشید.