چگونه مصرف منابع توسط admin-ajax.php را در وردپرس کاهش دهیم ؟

عملکرد وب سایت یک موضوع مهم برای هر مالک سایت است. عملکرد سایت می تواند بر تجربه کاربران تاثیر بگذارد و به طور بالقوه رتبه بندی سایت را در موتورهای جستجو بهبود ببخشد. برای مثال Google از مدت زمان بارگذاری صفحه در معیارهای رتبه بندی خود استفاده می کند و این مورد یکی از فاکتورهای بسیار مهم جهت رتبه بندی سایت ها نیز محسوب می شود.

هنگامی که مدیران وب سایت به عملکرد وب سایت فکر می کنند، اغلب زمان بارگذاری صفحات سایت مدنظرشان است. وقتی که در وردپرس با مشکل سرعت بارگذاری مواجه هستند یکی از رایج ترین مشکلات تداخل در فایل "admin-ajax.php" می تواند باشد. در این آموزش نحوه مدیریت ناسازگاری افزونه ها که ناشی از تداخل در فایل admin-ajax.php است توضیح داده خواهد شد و در نهایت با کاهش درخواست های برگشتی سرعت لود سایت تان را بهبود خواهید بخشید.

فایل admin-ajax.php در وردپرس چیست؟

در سال 2013، وردپرس در نسخه 3.6، Heartbeat API (نبض وردپرس) را معرفی کرد. Heartbeat API وردپرس به عنوان یک پروتکل ارتباطی بین مرورگر و سرور ساخته شده است که از admin-ajax.php برای ارسال یا دریافت یک درخواست یا رویداد به سرور استفاده می کند. ویژگی های اصلی Heartbeat API عبارتند از:

  • ذخیره خودکار

هنگامی که یک قسمت از متنی را در وردپرس نوشتید، آن را به عنوان پیش نویس ذخیره کنید و به نوشتن ادامه دهید. وردپرس به صورت خودکار جزئیات جدیدی که اضافه می کنید را ذخیره خواهد کرد.

  • قفل پست و اعلان ورود به سیستم

در یک سایت وردپرسی با چند نویسنده و یا کاربر، هر زمان که سعی کنید پستی را که یک کاربر یا نویسنده ی دیگر در حال کار بر روی آن است را ویرایش کنید، یک اعلان دریافت خواهید کرد و به شما تذکر داده می شود که فرد دیگری همزمان با شما در حال ویرایش نوشته است. همچنین هنگامی که session شما منقضی شود، یک اعلان برای وارد کردن مجدد اطلاعات ورود جهت ادامه ی کار بر روی پست ظاهر می شود.

مشکلاتی که admin-ajax.php می تواند ایجاد کند

سر ریز شدن فایل admin-ajax.php می تواند علت افزایش زمان بارگذاری صفحات سایت باشد که یک مشکل جدی محسوب می شود. قانون طلایی اینترنت این است که سایت شما باید به طور کامل در مدت 3 ثانیه یا کمتر بارگیری شود. اگر بیش از این طول بکشد ممکن است کاربر تجربه بدی را در سایت تان داشته باشد و دیگر به سایت شما باز نگردد.

کندی سرعت بارگذاری صفحات می تواند بر رتبه ی سایت شما در موتور های جستجو تاثیر بگذارد. شما باید بدانید که Google از سرعت لود سایت به عنوان یکی از شاخص های الگوریتم خود برای رتبه بندی سایت ها استفاده می کند. علاوه بر این، کندی سرعت به این معنی است که موتور های جستجو صفحات کمتری را طی زمانی که به سایت شما اختصاص داده اند بررسی خواهند کرد و این امر بر ایندکس شدن صفحات شما تاثیرگذار خواهد بود.

بسیاری از مدیران سایت ها تنها زمانی با این API برخورد می کنند که از ابزارهای تست سرعت مانند GTmetrix جهت یافتن اینکه چرا admin-ajax.php وب سایت ما را کند کرده است استفاده می کنند.

تصویر (1)

علت اختلال می تواند از دو منبع مختلف یا ناشی از یک افزونه است یا درخواست های Heartbeat API در بخش مدیریت وردپرس باشد.
در مورد جزئیات بیشتر در ادامه بحث خواهد شد.

چگونه افزونه ها می توانند فایل admin-ajax.php را سرریز کنند

افزونه ها شایع ترین دلیل اختلال در admin-ajax.php هستند. اگر به درستی از admin-ajax.php استفاده شود، قطعا می تواند مفید باشد، زیرا توسعه دهندگان معمولا از آن برای اضافه کردن قابلیت به افزونه های خود استفاده می کنند. به عنوان مثال، توسعه دهندگان می توانند از درخواست AJAX استفاده کنند و یک wp_query سفارشی برای نمایش محتوای پویای در یک صفحه ذخیره شده ایجاد کنند.

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

به عنوان یک صاحب وب سایت، قبل از غیرفعال کردن افزونه ها بایستی افزونه مورد نظر را تشخیص دهید. اینکه کشف کنید کدام افزونه موجب کندی در لود وب سایت تان شده است می تواند مهم باشد.

تشخیص افزونه ها

تضاد در افزونه ها می تواند در زمان لود سایت تاثیرگذار باشد. یک راه حل قدیمی این است که شما تمامی افزونه ها را برای رفع مشکل غیرفعال و مجددا آنها را یکی پس از دیگری فعال کنید، اما قطعا این راه حل نمیتواند یک راه حل عالی باشد.

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

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

روش A

به صفحه اصلی GTmetrix بروید و مطابق تصویر زیر آدرس وب سایت خود را وارد نموده (شماره ی 1) و سپس روی "Analyze" کلیک کنید.(شماره ی 2) تجزیه و تحلیل کامل سایت شما ممکن است کمی طول بکشد.

تصویر (2)

هنگامی که تجزیه و تحلیل به پایان رسید، شما یک گزارش از شرایط وب سایت خود مانند نمره عملکرد و جزئیات صفحه دریافت خواهید کرد. به زبانه "Waterfall" بروید تا جزئیات ارجاعات وب سایت را بررسی کنید.(تصویر 3)

تصویر (3)

پنجره Waterfall تمام ارجاعات وب سایت شما را نمایش می دهد. در حالی که بقیه فایل ها به نظر خوب می رسند، متوجه خواهید شد که "POST admin-ajax.php" زمان بارگیری بیشتری را نسبت به سایر ارجاعات به خود اختصاص داده است.(تصویر 4)

تصویر (4)

با کلیک بر روی "POST admin-ajax.php" چهار زبانه مختلف را مشاهده خواهید نمود:
"Headers"، "Parameters" ، "Post"، "Response"
برای بررسی این مسئله، زبانه های  "Post" و "Response" می توانند به شما کمک کنند.
برای این سایت، یک نشانه در زبانه ی پست مشاهده میکنید که این درخواست در حال انجام کاری بر روی اسکریپت count_hit است.(تصاویر 5)

تصویر (5)

این سرنخ شما را به سمت یک افزونه ی خاص که از قبل نصب کرده اید هدایت می کند. بنابراین، برای اثبات این نظریه، این افزونه را غیرفعال کرده و مجددا از طریق GTmetrix سایت را مورد آزمایش قرار دهید.

تصویر (6)

مشخص شد که حدس شما صحیح است و با غیرفعال کردن این افزونه، زمان بارگذاری صفحه خود را تا 2 ثانیه کاهش داده اید.(تصویر 6)

روش B

برای پیدا کردن افزونه مشکوک می توانید از کنسول توسعه دهنده Chrome نیز استفاده کنید.

وب سایت خود را باز کنید. بر روی صفحه راست کلیک نموده و سپس "Inspect" را انتخاب کنید.

روی زبانه "Network" کلیک کنید و وبسایت خود را دوباره بارگذاری کنید.(تصویر 7)

تصویر (7)

در جعبه فیلتر (درست در زیر نقطه قرمز) admin-ajax.php را وارد کنید. در ادامه شما مقصر اصلی این موضوع را خواهید دید. سپس، شما می توانید افزونه را غیرفعال نموده و مجددا این کار را تکرار کنید تا بررسی نمایید که آیا مشکل رفع شده است یا خیر.

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

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

افزایش سرعت وردپرس

گاهی اوقات، Heartbeat API وردپرس در پس زمینه (backend) سایت شما، موجب ایجاد مشکل در عملکرد سایت می شود. همانطور که قبلا اشاره کردیم، این ویژگی کمک می کند که پروژه های خود را به صورت خودکار ذخیره کنید، تا زمان اتفاقات غیر منتظره پروژه خود را از دست ندهید و نوشتن یا ویرایش به طور همزمان را مدیریت کنید.

به عنوان مثال، هر بار که شما در حال نوشتن یک پست هستید و یا یک برگه را باز می کنید، Heartbeat فعالیت خود را شروع می کند که می تواند باعث افزایش مصرف CPU شود. تعداد لینک های برگشتی (callbacks) را می توانید در تصویر زیر مشاهده کنید. با استفاده از کلید F12 در صفحه کلید خود می توانید به این صفحه دسترسی داشته باشید. (تصویر 8)

تصویر (8)

میزان مصرف CPU برای کسانی که از هاست اشتراکی استفاده می کنند یک مسئله مهم است. مصرف بالای منابع CPU می تواند موجب انسداد هاست تان شود. برای حل این مسئله، می توانید دو کار انجام دهید، Heartbeat API را غیرفعال کنید یا فواصل بین چک ها را بیشتر کنید. از آنجا که اولین گزینه عملی نیست، پیشنهاد می شود از گزینه دوم استفاده شود. برای تغییر فاصله، شما نیاز به یک افزونه به نام Heartbeat Control دارید.

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

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

تصویر (9)

از آنجا که قصد دارید فرکانس فراخوانی را در ویرایشگر پست (Post Editor) به حداقل برسانید، می توانید تیک آن را فعال نموده و تعداد درخواست ها را بالاتر از 15 تنظیم نمایید. در (تصویر 9)، فرکانس بر روی 200 تنظیم شده است.

سپس بر روی ذخیره تغییرات کلیک کنید.

نتیجه

در این آموزش شما درباره Heartbeat API و فایل وابسته آن یعنی admin-ajax.php اطلاعات مفیدی به دست آوردید. همچنین در مورد مشکلاتی که سر ریز شدن افزونه ها ایجاد می کند و باعث کاهش سرعت بارگذاری سایت می شود یاد گرفته اید. همچنین اکنون می دانید که اگر Heartbeat API را مدیریت نکنید می تواند به خودی خود در هاست شما مشکل ایجاد کند.

به یاد داشته باشید، هر وقت احساس نمودید سایت تان کند شده است آن را در GTmetrix بررسی نمایید. به برگه  "Waterfall" رفته و "POST admin-ajax.php” را بررسی نمایید و ببینید که چگونه کار می کند. فقط در نظر داشته باشید تمام افزونه ها را در یک زمان غیر فعال نکنید، گاهی اوقات ممکن است افزونه ای مشکل ساز نباشد. اما اگر بود، از افزونه ای دیگری استفاده کنید و یا میزان استفاده از heartbeat API را محدود کنید.



آیا این پاسخ به شما کمک کرد?

افزودن به مورد علاقه ها افزودن به مورد علاقه ها

پرینت این مقاله پرینت این مقاله

در همین زمینه

هر گونه مشکل و سوالی دارید، تیم ما آماده پاسخگویی می باشد

هم اکنون ارتباط را برقرار کنید

بخش مورد نظر را انتخاب کنید


در حال حاضر 44 نفر از همکاران Online در حال پاسخگویی هستند

کانال های ما
کانالهای ما