منابع محدود، عملکرد بینظیر: کاهش مصرف منابع با admin-ajax.php در وردپرس
منابع محدود، عملکرد بینظیر: کاهش مصرف منابع با admin-ajax.php در وردپرس
اگر در حوزه طراحی وبسایت و بخصوص وردپرس کار کرده باشید احتمالا این پرسش برای شما بوجود آمده که چرا سایت وردپرسی با وجود تمام تلاشها برای بهینه سازی، هنوز هم از نظر مصرف منابع بهینه نیست؟
چرا سرعت سایت شما کم شده است؟
البته کاهش سرعت سایت دلایل متعددی دارد اما یکی از دلایل احتمالی میتواند مربوط به فایل admin-ajax.php باشد.
اما ابتدا باید بدانیم این فایل چیست و چه کاری انجام میدهد.
فایل admin-ajax.php در وردپرس چیست؟
فایل admin-ajax.php یکی از فایلهای اصلی وردپرس است که از نسخه 3.6 به بعد اضافه شده است. هدف اصلی این فایل برقراری ارتباط بین مرورگر و سرور با استفاده از ajax است. این ارتباط مجموعهای از ویژگیهای پیشرفته را فراهم میکند که از جمله بهبود ذخیرهسازی خودکار کارها در وردپرس، ردیابی تغییرات، زمانبندی ورود به وردپرس، مدیریت نشستها و اطلاعیههایی مانند هنگامی که یک نوشته قفل شده و توسط فرد دیگری در حال ویرایش است. این ویژگیها برای سایتهایی که چندین کاربر دارند بسیار حیاتی است.
به عنوان مثال، اگر امکان نمایش وضعیت ویرایش نوشته توسط کاربران وجود نداشته باشد، ممکن است دو نفر همزمان در حال ویرایش یک نوشته باشند که موجب اشکالات در محتوای سایت و محصولات وردپرس شود.
وظایف و کاربردهای admin-ajax.php
ارتباط لحظهای admin-ajax.php به وردپرس اجازه میدهد تا به طور لحظهای (Realtime) با مرورگر کاربران در ارتباط باشد. این ارتباط میتواند شامل بروزرسانی های خودکار پیشخوان وردپرس، ذخیره خودکار نوشتهها و … باشد.
اما کاربرد این فایل چیست؟ در ادامه توضیح میدهیم :
· بهبود تجربه کاربری(UX): با استفاده از این فایل، کاربران میتوانند بدون نیاز به بارگذاری مجدد صفحه، از امکانات مختلف وردپرس استفاده کنند به عبارت دیگر رابط کاربری وردپرس بیشتر به نرم افزار نصب شده روی کامپیوتر شباهت پیدا میکند تا یک وبسایت که با کلیک بر روی هر لینک کاربر وارد صفحه جدیدی شود و هر بار منتظر لودینگ صفحه جدید باشد.
این ویژگی باعث بهبود تجربه کاربری و آسان تر شدن کار با پنل وردپرس میشود.
· مدیریت بهینه منابع: admin-ajax.php این فایل میتواند با کاهش تعداد درخواستهای HTTP و استفاده بهینه از منابع سرور، بار سرور را کاهش داده و سرعت عملکرد را بهبود دهد.
· ردیابی نسخههای پست: این فایل به وردپرس اجازه میدهد تا نسخههای مختلف پستها را ردیابی کرده و در صورت نیاز به حالتهای قبلی بازگرداند. این ویژگی به خصوص زمانیکه محتوای صفحات به دلایل نامشخص حذف یا دچار تغییرات شوند، بسیار کمک کننده است.
اگرچه admin-ajax.php امکانات مفیدی را فراهم میکند، اما در برخی مواقع میتواند منجر به مصرف بالای منابع سرور، به ویژه پردازنده (CPU) شود. این مشکل به ویژه در سایتهایی با تعداد بازدیدکننده بالا و استفاده مکرر از AJAX بیشتر مشهود است. در ادامه به بررسی علت این مشکل ها و روش رفع آن ها میپردازیم.
چگونه فایل admin-ajax.php میتواند عملکرد و سرعت سایت وردپرس شما را مختل کند؟
admin-ajax.php به روش های مختلفی میتواند باعث کند شدن سایت شما بشود. پنج علت اساسی آن عبارتند از:
1. درخواستهای مکرر AJAX
admin-ajax.php از طریق HeartBeat API، درخواستهای AJAX را به صورت مکرر به سرور مجازی ارسال میکند.
(مکانیزم HeartBeat به معنی درخواست های ارسال و دریافت وردپرس به سرور است که به طور پیشفرض هر 15 ثانیه درخواست، ارسال و دریافت میشود. این مکانیزم باعث میشود تا کاربر بتواند به صورت لحظه ای با سایت کار کند و تغییراتی که انجام میدهد به صورت خودکار ذخیره شود.)
اگر تعداد این درخواست ها زیاد باشد، فشار زیادی بر CPU و دیگر منابع سرور وارد میشود که میتواند منجر به رسیدن به محدودیت منابع یا اصطلاحا Bottle Neck شوند که نتیجتا باعث کاهش سرعت سایت می شود.
2. بار زیاد بر روی CPU
هر بار که یک درخواست AJAX از طریق admin-ajax.php ارسال میشود، یک اسکریپت (قطعه کد) PHP در سرور اجرا میشود. این پردازشها حتی اگر کوچک باشند، در صورت تکرار زیاد، بار زیادی بر روی CPU ایجاد میکنند. این بار زیاد میتواند منجر به کاهش سرعت پاسخدهی سرور و در نتیجه کاهش سرعت کلی سایت شود.
3. افزونه های پرمصرف
بسیاری از افزونهها برای اجرای وظایف خود از admin-ajax.php استفاده میکنند. اگر افزونهای به درستی بهینه سازی نشده باشد یا تعداد زیادی درخواست AJAX ارسال کند، میتواند باعث کندی سایت شود.
برخی افزونهها ممکن است که درخواستهای AJAX زیادی را برای عملکردهایی مانند شمارش بازدیدها، بروزرسانی لحظهای یا نمایش اعلان ها ارسال کنند.
نکته : به همین علت است که متخصصان طراحی وب همواره تاکید میکنند تا حتما افزونه های معتبر و اورجینال را نصب کرده و از نصب تعداد زیادی پلاگین بر روی وردپرس خودداری شود.
4. صفحات باز در پیشخوان وردپرس
اگر پیشخوان وردپرس برای مدت طولانی باز بماند، HeartBeat API به صورت مداوم درخواستهای AJAX را ارسال میکند. این موضوع میتواند منجر به بار زیاد بر سرور شود، به ویژه اگر چندین کاربر به طور همزمان وارد پیشخوان شده باشند.
5. درخواستهای متعدد کاربران
هر درخواستی که کاربر در وبسایت انجام میدهد از طریق admin-ajax.php نیازمند اجرای یک اسکریپت PHP است. درخواستهای متعدد میتواند منابع سرور را به شدت درگیر کند.
اگر سایت شما بازدیدکنندگان زیادی دارد که به طور همزمان درخواستهای AJAX ارسال میکنند، این میتواند باعث کندی قابل توجهی شود. به همین جهت برای وبسایت هایی که کاربران زیادی دارند هاست وردپرسی با منابع بیشتر باید تهیه شود.
6. حملات DDOS
این مورد البته در مواقع کمتری پیش میآید و اما حملات DDOS هم میتوانند باعث افزایش چشمگیر درخواست های AJAX شده و بار زیادی روی سرور بیاندازند. البته معمولا هدف از حملات DDOS فقط افزایش بار بر روی سیستم نیست و هدف آسیب های حیاتی به سیستم است. اما افزایش درخواست ها یکی از عوارض جانبی آن محسوب میشود.
کاهش مصرف منابع توسط فایل admin-ajax.php در وردپرس
یکی از دغدغه های اصلی طراحان وب، سرعت وبسایت و افزایش آن است. یک وبسایت سریع، کاربران راضی تر، سئو بهتر و رشد بهتری دارد. در وردپرس، مصرف منابع بالای فایل admin-ajax.php میتواند سرعت سایت را کاهش دهد. برای افزایش سرعت سایت، باید به بهینهسازی این فایل و سایر جنبههای سایت بپردازیم.
افزونه های کاهش تعداد درخواستهای admin-ajax در وردپرس
یکی از راحت ترین روش ها برای بهینه سازی و تنظیم درخواست های AJAX نصب افزونه های کاهش تعداد درخواست admin-ajax است. در ادامه 4 افزونه معتبر در این زمینه را معرفی کرده ایم.
· Heartbeat Control
· WP Disable
· Asset CleanUp: Page Speed Booster
· Query Monitor
استفاده از افزونه Heartbeat Control برای کاهش مصرف CPU توسط admin-ajax
این افزونه به شما امکان میدهد تا فرکانس و محدوده فعالیت HeartBeat API را مدیریت و بهینهسازی کنید. در ادامه نحوه استفاده از این افزونه را برای کاهش مصرف CPU توضیح میدهیم.
مراحل نصب و تنظیم افزونه Heartbeat Control
1. نصب افزونه Heartbeat Control
وارد پیشخوان وردپرس شوید.
به مسیر افزونهها (Plugins) بروید و روی “افزودن” (Add New) کلیک کنید.
در قسمت جستجو، عبارت “Heartbeat Control” را وارد کنید.
افزونه Heartbeat Control by WP Rocket را پیدا کرده و روی “نصب” (Install) کلیک کنید.
پس از نصب، روی “فعالسازی” (Activate) کلیک کنید.
2. تنظیمات افزونه Heartbeat Control
به مسیر تنظیمات و سپس Heartbeat Control بروید.
در صفحه تنظیمات افزونه، چندین گزینه برای کنترل Heartbeat API وجود دارد:
Allow Heartbeat : این گزینه اجازه میدهد Heartbeat API به طور کامل فعال باشد.
Disable Heartbeat: این گزینه Heartbeat API را به طور کامل غیرفعال میکند.
Modify Heartbeat: این گزینه به شما اجازه میدهد تا فرکانس اجرای Heartbeat API را تنظیم کنید.
برای کاهش مصرف CPU، گزینه Modify Heartbeat را انتخاب کرده و بازه زمانی را افزایش دهید.
به عنوان مثال، میتوانید بازه زمانی را از ۱۵ ثانیه به ۶۰ ثانیه یا بیشتر تغییر دهید. این کار باعث کاهش تعداد درخواستهای AJAX و در نتیجه کاهش مصرف CPU میشود.
استفاده از کش (Caching)
استفاده از افزونه های کش میتواند زمان بارگذاری صفحات را به طور قابل توجهی کاهش دهد. این افزونهها محتوای سایت را در حافظه کش ذخیره کرده و به جای درخواست مکرر به سرور، نسخه کش شده را به بازدیدکنندگان نمایش میدهند. (افزونه های لایت اسپید کش و وردپرس راکت این کار را به خوبی انجام میدهند)
استفاده از CDN ( شبکه توزیع محتوا )
شبکههای توزیع محتوا (CDN) مانند سرویس cdn ایران سرور میتوانند محتوای سایت شما را در سرورهای مختلف در سراسر جهان توزیع کنند. این کار باعث میشود بازدیدکنندگان به نزدیکترین سرور متصل شوند و زمان بارگذاری صفحات کاهش یابد.
برای اطلاع بیشتر از نحوه عملکرد CDN پیشنهاد میکنیم، این مقاله را مطالعه کنید:
CDN یا شبکه تحویل محتوا چیست؟ چه کمکی به سایت ما میکند؟
بهینهسازی کدهای سایت
فشردهسازی و ترکیب فایلها: فشردهسازی و ترکیب فایلهای CSS و JavaScript با استفاده از افزونههایی مانند Autoptimize میتواند حجم فایلها را کاهش داده و تعداد درخواستهای HTTP را کم کند.
حذف کدهای غیرضروری: حذف کدهای CSS و JavaScript غیرضروری و کاهش تعداد افزونههای نصب شده میتواند سرعت سایت را بهبود بخشد.
روش های عیب یابی فایل admin-ajax.php
اگر سرعت وبسایت شما دچار کاهش چشمگیر شده و به دنبال راه حلی برای آن هستید یکی از ساده ترین و البته قدیمی ترین روش ها غیرفعال کردن پلاگین های وردپرسی است.
به این ترتیب که پلاگین هایی که نصب کرده اید را به ترتیب کم اهمیت به پر اهمیت غیرفعال میکنید و هربار سرعت وبسایت را دوباره بررسی میکنید. (میتوانید از ابزارهایی مثل GTmetrix یا Page speed گوگل استفاده کنید)
همچنین این کار را میتوانید به صورت برعکس هم انجام دهید، یعنی تمامی پلاگین ها را غیرفعال کنید و به ترتیب پراهمیت تا کم اهمیت یکی یکی افزونه ها را فعال کنید و هربار تست سرعت بگیرید.
اگر مشکل از افزونه خاصی باشد که درخواست های AJAX بسیاری به سرور ارسال میکند با این روش در اکثر مواقع میتوانید آن را پیدا کنید و در صورتیکه استفاده ضروری در وبسایت نداشته باشد، آن را حذف کنید.
همچنین با استفاده از وبسایت Gtmetrix در تب Waterfall میتوانید میزان مصرف منابع توسط فایل admin-ajax.php را مشاهده و در صورت نیاز بهینه سازی کنید.
سخن پایانی
اگر میخواهید سایت وردپرس شما با سرعت و عملکرد بالا کار کند، کاهش تعداد درخواستهای admin-ajax.php یک ضرورت است. استفاده از افزونه های معتبر کاهش درخواست ajax، کش وبسایت، استفاده از cdn و مدیریت افزونه های نصب شده بر روی وردپرس مهم ترین روش های بهینه سازی وبسایت هستند.
اما به یاد داشته باشید که انتخاب یک هاست مناسب نیز نقش بسیار مهمی در عملکرد سایت شما دارد.
داشتن یک سرویس میزبانی مطمئن اولین شرط برای عملکرد درست و بهینه سازی های بعدی وبسایت است.
اگر به دنبال هاست وردپرس یا هاست ووکامرس با کیفیت هستید، ایران سرور با ارائه بهترین راهنمای خرید هاست وردپرس و سرور مجازی میتواند به شما در زمینه انتخاب و خرید یک سرویس میزبانی مناسب کمک کند.