آموزش تنظیم Cron Job در وردپرس برای افزایش سرعت سایت

آخرین بروزرسانی : 22 تیر 1405
افزونه المنتور پرو

کاملاً اورجینال با قابلیت آپدیت خودکار در پنل پیشخوان وردپرس

در این نوشته شما می خوانید

سرعت وبسایت یکی از اصلی ترین عوامل بهبود تجربه کاربری در سایت های وردپرسی محسوب می شود. افزایش سرعت سایت وردپرسی نکات و ترفندهای زیادی دارد و در این آموزش قصد داریم به یکی از موثرترین موارد یعنی غیرفعال کردن Cron job بپردازیم. این تکنیک به  خصوص برای وبسایت های پربازدید تغییر محسوس در میزان سرعت ایجاد خواهدکرد.

WP-Cron اجرای زمان بندی شده کارها در وردپرس را برعهده دارد. که به ‌صورت پیش‌ فرض هنگام هر بازدید از سایت اجرا می ‌شود. در سایت‌های پرترافیک، این کار باعث افزایش مصرف منابع سرور و کاهش سرعت بارگذاری صفحات  می شود. با غیرفعال کردن WP-Cron و جایگزینی آن با Cron Job هاست، وظایف زمان‌بندی‌شده به ‌صورت منظم و بدون تأثیر بر عملکرد سایت اجرا می شوند.

نکات کلیدی         

  • WP-Cron  وظایف زمان‌ بندی‌ شده وردپرس را اجرا می ‌کند.
  • اجرای فایل WP-Cron  در هر بازدید به سرور بار اضافه وارد میکند و سرعت سایت کند می شود.
  • غیرفعال کردن WP-Cron برای همه سایت‌ها توصیه نمی‌ شود و بیشتر برای وب ‌سایت‌های پرترافیک یا سایت ‌هایی که به Cron Job هاست دسترسی دارند مناسب است.
  • بعد از غیرفعال کردن WP-Cron  باید یک Cron Job  از طریق هاست جایگزین آن شود.
  • اجرای Cron Job هر ۵ دقیقه برای بیشتر سایت‌های وردپرسی گزینه مناسبی است.

Cron job در وردپرس

Cron job در وردپرس یا WP-Cronچیست؟

همین ابتدا باید بدانید که  Cron job فقط مختص به وردپرس نیست. اما در این آموزش ما به بررسی این مفهوم در آموزش وردپرس و نحوه مدیریت این قابلیت جهت بهبود سرعت وبسایت می پردازیم. البته نحوه عملکرد کران جاب در وردپرس تفاوت هایی هم با Cron Job اصلی که در سیستم عامل ها سرورها اجرا می شود؛ دارد که در ادامه تشریح می شود.

خود کلمه cron در سیستم عامل یونیکس به برنامه هایی که به صورت اتوماتیک در بازه های زمانی مشخص اجرا می شوند گفته می شود. اما Cron job در وردپرس یک فایل PHP به نام wp-cron است که کارهای زمانبندی اجرای خودکار را انجام می دهد.

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

Wp-cron در عملکرد افزونه های کش مثل WP rocket  و لایت اسپید کش نیز نقش مهمی دارد. می دانید که فایل های کش وبسایت طول عمر مشخصی دارند و بعد از بازه زمانی تعیین شده باید به صورت خودکار کش قدیمی پاکسازی شود .که در این فرایند از کران جاب وردپرس کمک گرفته می شود.

کران جاب وردپرس یا همان پردازش فایل wp-cron فقط هنگام بازدید کاربر از صفحات اجرا میشوند. بنابراین اگر سایت شما بازدید نداشته باشد؛ عملیات زمانبندی شده خودکار مثل بروزرسانی ها و… انجام نمی شوند.

Cron job

معایب کران جاب وردپرس؛ چرا Cron Job باعث کندی سایت می شود؟

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

این فرآیند باعث تحمیل بار اضافی به سرور می شود که طبیعتا در کاهش سرعت سایت تاثیرگذار است. حالا تصور کنید اگر وبسایت پربازدید باشد؛ بار اضافی اجرای wp-cron در پس زمینه چه فشار مضاعفی به سرور وارد می کند.

 

WP-Cron وردپرسServer Cron؛Cron Job هاستویژگی
با هر بازدید از سایتدر زمان‌بندی مشخص توسط سرورنحوه اجرا
داردنداردوابستگی به بازدید کاربر
در سایت‌های پرترافیک می‌تواند باعث افزایش بار سرور شودتأثیر بسیار کمتری بر بارگذاری صفحات داردتأثیر بر سرعت سایت
ممکن است با تأخیر اجرا شوداجرای منظم و دقیقدقت در اجرای زمان‌بندی
سایت‌های کوچک و کم‌ترافیکسایت‌های پرترافیک، فروشگاهی و حرفه‌ایمناسب برای
به‌صورت پیش‌فرض فعال استنیاز به ایجاد Cron Job در هاست داردنیاز به تنظیمات

 

نکته: اگر پس از غیرفعال کردن WP-Cron، یک Cron Job در هاست تنظیم نکنید، وظایف زمان‌بندی‌شده وردپرس مانند انتشار خودکار مطالب، بروزرسانی‌ها و برخی عملیات افزونه‌ها اجرا نخواهند شد.

افزایش سرعت وردپرس با غیرفعال کردن wp-cron

گفتیم که اگر بگذاریم Cron job وردپرس طبق مکانیزم خودش در پس زمینه همه صفحات اجرا شود؛ تایمی که برای لود خود صفحه نیاز داریم با پردازش wp-cron تقسیم می شود. به همین جهت راه حل این هست که اجرای خودکار وظایف زمانبندی شده وردپرس را مدیریت کنیم.

آموزش غیرفعال‌سازی WP-cron

در قدم اول به سراغ غیرفعالسازی Cron job وردپرس می رویم. این کار را باید از طریق اضافه کردن کد زیر به فایل wp-config.php روی هاست انجام شود.

define(‘DISABLE_WP_CRON’, true);

فرقی ندارد که نرم افزار مدیریت هاست شما سی پنل یا دایرکت ادمین باشد؛ باید وارد بخش مدیریت فایل یا file manager شوید. و در این بخش پوشه public_html را باز کنید. اینجا فایل wp-config.php را خواهید دید. این فایل را ویرایش کنید و مطابق تصویر کد بالا را به این فایل اضافه کرده و ذخیره کنید.

آموزش غیرفعال‌سازی WP-cron

آموزش تنظیم Cron job درهاست

تا اینجا با غیرفعالسازی سیستم کران جاب داخلی خود وردپرس موفق شدیم سرعت لود صفحات سایت رو افزایش دهیم  اما تکلیف وظایفی که باید طبق زمانبندی به صورت خودکار انجام شوند چی میشه؟!

برای این کار باید از قابلیت Cron job هاست استفاده کنیم. البته با توجه به اینکه ممکن است برخی از هاستینگ ها (بندرت اتفاق میفتد اما ممکنه) قابلیت Cron Job را نداشته باشند قبل از اقدام از پشتیبانی هاست در این خصوص سوال کنید.

ایجاد Cron Job در Cpanel

در هاست Cpanel گزینه Cron Jobs را از بخش advanced انتخاب کنید. از این طریق می توانید خودتان یک کران جاب جدید بسازید که از طریق هاست اجرا شود.

ایجاد Cron Job در Cpanel

در قسمت Add new Cron Job باید کاری که می خواهید انجام شود و زمانبندی مورد نظر خود را وارد کنید.

ایجاد Cron Job در Cpanel

در بخش command Setting اگر گزینه once per five minutes را انتخاب کنید؛ کاری که در بخش command وارد می کنید؛ به صورت هر پنج دقیقه اجرا می شود. و انتخاب مناسبی برای اجرای وظایف زمانبندی شده وردپرس محسوب می شود.

Command که باید وارد کنید رو هم در ادامه برای شما قرار دادیم. فقط فراموش نکنید که باید آدرس وبسایت خود را به جای example.com قرار دهید.

/usr/bin/wget -O /dev/null https:// example.com /wp-cron.php >/dev/null 2>&1

بعد از انجام تنظیمات بالا و کلیک روی دکمه Add new Cron Job وظایف زمانبندی شده وردپرس هر 5 دقیقه بررسی و انجام خواهدشد؛ البته این بار بدون اینکه زمان لود صفحات را تحت تاثیر قرار دهد.

ایجاد Cron Job در دایرکت ادمین

برای اضافه کردن کران جاب در دایرکت ادمین هم دقیقا مثل سی پنل باید مطابق تصویر زیر از بخش تنظیمات پیشرفته کرون جاب ها را انتخاب کنید.

ایجاد Cron Job در دایرکت ادمین

در پنجره ایجاد یک کران جاب جدید، در قسمت دقیقه 0,5 را وارد کنید . در قسمت دستور هم همان command که در بخش سی پنل گفته شده را قرار دهید. سایر فیلدها را بدون تغییر رها کنید.

ایجاد Cron Job در دایرکت ادمین

نکته : علاوه بر پنل هاست از طریق سرویس های آنلاین مثل EasyCron.com هم می توانید کرون جاب بسازید.

چه سایت‌هایی باید WP-Cron را غیرفعال کنند؟

غیرفعال کردن  Cron job یا همان  wp-cronدر وردپرس برای همه وب‌ سایت‌های وردپرسی ضروری نیست. این کار در شرایط زیر توصیه می‌ شود:

  • سایت های پرترافیکی که در هر دقیقه بازدید کنند گان زیادی دارند و اجرای مداوم WP-Cron به سرور سایت فشار می آورد و باعث کندی می شود.
  • سایت های فروشگاهی که طبق آموزش ووکامرس سفارشات ، ایمیل‌ ها و سایر وظایف زمان‌ بندی ‌شده به‌ طور مداوم اجرا می‌ شوند.
  • سایت‌ های آموزشی و عضویتی که کاربران زیادی به‌ صورت هم‌ زمان در حال استفاده از سایت هستند.
  • ‌سایت‌هایی که از سرور اختصاصی یا VPS استفاده می ‌کنند و امکان ایجاد Cron Job از طریق هاست را دارند. یا شرکت هاستینگ امکان تنظیم cron job از طریق هاست را فراهم کرده.

نتیجه گیری : اگر سایت شما بازدید کمی دارد یا هاست از Cron Job پشتیبانی نمی ‌کند، معمولاً نیازی به غیرفعال کردن WP-Cron نیست. حتی ممکن است وظایف زمان ‌بندی ‌شده مثل انتشار خودکار نوشته‌ها، ارسال ایمیل یا اجرای برخی افزونه‌ ها هم با تأخیر یا اختلال مواجه شوند.

سوالات متداول

اگر WP-Cron را غیرفعال کنیم ولی Cron Job هاست را تنظیم نکنیم چه اتفاقی می‌افتد؟

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

تفاوت WP-Cron با Cron Job هاست چیست؟

WP-Cron هنگام بازدید کاربران از سایت اجرا می ‌شود و داخل سیستم خود وردپرس وجود دارد، اما Cron Job هاست در زمان‌های مشخص و مستقل از بازدید کاربران اجرا می‌ شود. به همین خاطر Cron Job هاست عملکرد بهینه ‌تری دارد.

چگونه مطمئن شویم Cron Job هاست به‌ درستی کار می ‌کند؟

پس از تنظیم  Cron Job، با زمان ‌بندی انتشار یک نوشته یا بررسی اجرای وظایف خودکار مثل پاک‌سازی کش، می توانید عملکرد آن را تست کنید. علاوه بر این افزونه WP Crontrol  امکان مشاهده و مدیریت رویدادهای زمان ‌بندی ‌شده وردپرس را فراهم می‌ کند.

افزونه WP Crontrol

جمع بندی

فایل wp-cron.php در وردپرس وظیفه اجرای وظایف زمانبندی شده را دارد. اما متاسفانه روش اجرایی کارآمدی ندارد و مشکلاتی در وبسایت ها ایجاد خواهد کرد. اگر سایت شما کم ترافیک باشد اجرای بروزرسانی ها و عملیات خودکار با اختلال مواجه می شود و در سایت های پرترافیک به دلیل اجرای مداوم در پس زمینه به میزان زیادی باعث کندی سرعت خواهد شد. در این آموزش برای رفع این مشکل به نحوه غیرفعالسازی Cron Job وردپرس و تنظیم کران جاب از طریق هاست پرداختیم.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *