سرعت وبسایت یکی از اصلی ترین عوامل بهبود تجربه کاربری در سایت های وردپرسی محسوب می شود. افزایش سرعت سایت وردپرسی نکات و ترفندهای زیادی دارد و در این آموزش قصد داریم به یکی از موثرترین موارد یعنی غیرفعال کردن Cron job بپردازیم. این تکنیک به خصوص برای وبسایت های پربازدید تغییر محسوس در میزان سرعت ایجاد خواهدکرد.
WP-Cron اجرای زمان بندی شده کارها در وردپرس را برعهده دارد. که به صورت پیش فرض هنگام هر بازدید از سایت اجرا می شود. در سایتهای پرترافیک، این کار باعث افزایش مصرف منابع سرور و کاهش سرعت بارگذاری صفحات می شود. با غیرفعال کردن WP-Cron و جایگزینی آن با Cron Job هاست، وظایف زمانبندیشده به صورت منظم و بدون تأثیر بر عملکرد سایت اجرا می شوند.
نکات کلیدی
- WP-Cron وظایف زمان بندی شده وردپرس را اجرا می کند.
- اجرای فایل WP-Cron در هر بازدید به سرور بار اضافه وارد میکند و سرعت سایت کند می شود.
- غیرفعال کردن WP-Cron برای همه سایتها توصیه نمی شود و بیشتر برای وب سایتهای پرترافیک یا سایت هایی که به Cron Job هاست دسترسی دارند مناسب است.
- بعد از غیرفعال کردن WP-Cron باید یک 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 وردپرس در پس زمینه اجرا شده و درخواست های متعدد به سرور ارسال می کند وچک می کند که چه کارهایی باید به صورت اتوماتیک و خودکار انجام شوند.
این فرآیند باعث تحمیل بار اضافی به سرور می شود که طبیعتا در کاهش سرعت سایت تاثیرگذار است. حالا تصور کنید اگر وبسایت پربازدید باشد؛ بار اضافی اجرای 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 را خواهید دید. این فایل را ویرایش کنید و مطابق تصویر کد بالا را به این فایل اضافه کرده و ذخیره کنید.

آموزش تنظیم Cron job درهاست
تا اینجا با غیرفعالسازی سیستم کران جاب داخلی خود وردپرس موفق شدیم سرعت لود صفحات سایت رو افزایش دهیم اما تکلیف وظایفی که باید طبق زمانبندی به صورت خودکار انجام شوند چی میشه؟!
برای این کار باید از قابلیت Cron job هاست استفاده کنیم. البته با توجه به اینکه ممکن است برخی از هاستینگ ها (بندرت اتفاق میفتد اما ممکنه) قابلیت Cron Job را نداشته باشند قبل از اقدام از پشتیبانی هاست در این خصوص سوال کنید.
ایجاد Cron Job در Cpanel
در هاست Cpanel گزینه Cron Jobs را از بخش advanced انتخاب کنید. از این طریق می توانید خودتان یک کران جاب جدید بسازید که از طریق هاست اجرا شود.

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

در بخش 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 در دایرکت ادمین
برای اضافه کردن کران جاب در دایرکت ادمین هم دقیقا مثل سی پنل باید مطابق تصویر زیر از بخش تنظیمات پیشرفته کرون جاب ها را انتخاب کنید.

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

نکته : علاوه بر پنل هاست از طریق سرویس های آنلاین مثل 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-cron.php در وردپرس وظیفه اجرای وظایف زمانبندی شده را دارد. اما متاسفانه روش اجرایی کارآمدی ندارد و مشکلاتی در وبسایت ها ایجاد خواهد کرد. اگر سایت شما کم ترافیک باشد اجرای بروزرسانی ها و عملیات خودکار با اختلال مواجه می شود و در سایت های پرترافیک به دلیل اجرای مداوم در پس زمینه به میزان زیادی باعث کندی سرعت خواهد شد. در این آموزش برای رفع این مشکل به نحوه غیرفعالسازی Cron Job وردپرس و تنظیم کران جاب از طریق هاست پرداختیم.



