خالی کردن کش و شروع پیش بارگذاری WP Rocket توسط Cron Job در وردپرس

سلام دوستان،

خیلی از ماها از WP Rocket برای بهینه‌سازی و ایجاد کش برای وب‌سایت وردپرسیمون استفاده می‌کنیم.

WP Rocket یکی از بهترین و کارآمدترین افزونه‌های کش وردپرس هست که با یک جستجوی ساده در گوگل شما هم به این نتیجه خواهید رسید.

کافیه عبارت The Best Wordpress Cache Plugin رو در گوگل جستجو کنید.

خوشبختانه آخرین نسخه از این افزونه ارزشمند هم در فروم سون هاست موجود و قابل دانلود هست:

اما یکی از مسائلی که وجود داره اینه که در تمامیه افزونه‌های کش، بر اساس تنظیماتی که در Setting اونها موجوده، بعد از گذشت مدت زمان معینی، افزونه به صورت خودکار، فایل‌های کش ایجاد شده رو پاک میکنه و مجددا اونهارو ایجاد میکنه.

علت این کار هم این هست که اگر شما تغییراتی در وبسایت مثلا در Style اون ایجاد کردین، با ایجاد کش مجدد این تغییرات در وب سایت نشون داده بشن مخصوصا اگر به صورت دستی کش رو خالی نکردید یا به اصطلاح Purge Cache رو نزدید.

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

اگر وب سایت شما مرحله توسعه رو گذرونده باشه، کش تنها در همون بازه‌های زمانی تنظیمات افزونه خالی میشه.

یکی از راه‌های پیشنهادی برای اینکه این کندی در چشم کاربر سایت دیده نشه، اینه که تنظیمات خالی کردن کش در افزونه رو خاموش کنید، و از طریق ایجاد Cron Job در ساعت هایی که سایت کمترین میزان بازدید رو داره (3 صبح تا 6 صبح) اقدام به خالی کردن کش کنید.

راه اندازی:

یک فایل به نام: rocket-clean-domain.php رو در public_html خود ایجاد کنید.

محتوای اونرو مقدار زیر قرار بدید:

<?php 
// Load WordPress.
require( 'wp-load.php' );

// Clear cache.
if ( function_exists( 'rocket_clean_domain' ) ) {
	rocket_clean_domain();
}

// Preload cache.
if ( function_exists( 'run_rocket_sitemap_preload' ) ) {
	run_rocket_sitemap_preload();
}

سپس وارد تنظیمات Cron Job پنل مدیریت هاست خود (Cpanel) شوید و به قسمت تنظیمات Cron Job بروید.

و یک Cron Job برای فایل rocket-clean-domain.php که در public_html ساخته اید، ایجاد کنید:

متن Commanad:

cd /home/USERNAME/public_html; /usr/local/bin/php -q rocket-clean-domain.php

مطابق با تنظیمات تصویر Cron Job موردنظر را اضافه کنید.

همونطور که میبینید، زمان شروع Cron Job در تصویر، هر روز، 4 صبح میباشد.

در اینجا بایستی نام کاربری هاست خود را با عبارت USERNAME جایگزین کنید.

حالا Cron JOb مورد نظر برای خالی کردن کش و پیش بارگذاری به درستی در Cpanel برای شما ایجاد شده است.

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

با انجام این مراحل کاربران سایت شما هرگز کند شدن موقت سایت برای ایجاد کش را احساس نخواهند کرد.

موفق باشید.

7 پسندیده

افزونه WP rocketانصافا یکی از بهترین هاست و یکی از مسائلی که باعث شده بهترین بمونه بروزرسانی مداوم و اضافه نمودن ویژگی های جدید هست. به عنوان مثال در همین نسخه اخیر ویژگی instant page بهش اضافه شده که تجربه کاربری رو میتونه خیلی ارتقا بده. اما در حالت کلی مممکنه رو برخی وب سایت ها خوب جواب نده.


لینک سازی از پست حذف شد / لطفا به قوانین احترام بگذارید / ANGEL

2 پسندیده

سلام وقت بخیر ،
آموزش خیلی کاربردی و عالی بود !
من سایتم روی لایت اسپید بهتر جواب میداد و با کلودفلر ترکیب عالی ای میشد ! امتیاز جی تی متریکسم خوب بود
ولی به دلایلی که پایین تر توضیح میدم مجبور شدم راکت رو جایگزینه لایت اسپید کنم - با کلودفلر هم همخوانی خوبی نداشت و کلودفلر هم اف کردم
البته الانم با همین راکت از سرعت سایتم راضیم و عالیه ، شاید بهترم شده باشه ، ولی امتیاز جی تی متریکسم زیاد مناسب نیست

مشکل اصلی ای که باعث شد لایت اسپید رو پاک کنم و از راکت استفاده کنم کرولرش بود !
کرولر لایت اسپید درسته که از پری لودر راکت ( پیش بارگذاری راکت ) قوی تره ولی متاسفانه روی هاست من که اشتراکی هست عمل نمیکنه و عملا بی فایدست !
واسه همین صفحات سایتم تا زمانی که توسط کاربر باز نشن کش نمیشن و سرعت لودشون برای اولین بار که باز میشن خیلی پایینه ! یعنی افتضاحه !
من خودم چند بار امتحان کردم صفحات محصولامو باز میکردم اصلا افتضاح ضعیف باز میشد برای بار اول !
ولی الان که راکت نصب کردم و پری لودرش از طریق سایت مپ عمل میکنه همه صفحات کش شده و با سرعت عالی میان بالا
آیا از طریق cron jobs میشه یه امکانی مثل پری لودری که راکت داره واسه ی لایت اسپید گذاشت ؟
یعنی مثلا تمام لینک های سایت مپ رو یک بار در روز بارگذاری کنه تا کش بشن ؟!

یا روش دیگه ای هست که این امکان فراهم بشه؟

دم شما گرم خدا خیرت بده با این آموزش خوبت

کدی که در سی پنل قرار میگیرد برای من کار نکرد، اصلاحش کردم و الان این کد کار میکند:

php -q /home/USERNAME/public_html/rocket_clean_domain.php