如何诊断WordPress站点Admin-Ajax使用率过高问题

2021-12-09 0 1,103

如何诊断WordPress站点Admin-Ajax使用率过高问题

Ajax是一种基于JavaScript的Web技术,可帮助您构建动态和交互式网站。WordPress使用Ajax为其许多核心管理区域功能提供支持,例如自动保存文章、用户会话管理和通知。

默认情况下,WordPress通过admin-ajax.php位于站点/wp-admin目录中的文件引导所有Ajax调用。

大量同时发生的Ajax请求可能会导致高admin-ajax.php使用率,从而导致服务器和网站的速度大大降低。这是许多未优化的WordPress网站面临的最常见问题之一。通常,它表现为网站缓慢或HTTP 5xx错误(主要是根据WordPress Tracadmin-ajax.php文件首次出现在WordPress 2.1中。它在WordPress开发社区中也称为Ajax Admin

 

如何诊断WordPress站点Admin-Ajax使用率过高问题

检查Ajax使用情况

上面的图表只显示了admin-ajax.php请求的数量,而不是它们可能来自哪里。这是查看峰值何时发生的好方法。您可以将其与本文中提到的其他技术结合使用,以缩小主要原因。

如何诊断WordPress站点Admin-Ajax使用率过高问题

在Chrome DevTools中检查admin-ajax.php请求的数量

您还可以使用Chrome DevTools查看有多少请求被发送到admin-ajax.php. 您还可以查看“Network部分下的“Timings选项卡,了解处理这些请求所需的时间。

至于admin-ajax.php高使用率背后的确切原因,主要有两个主要原因:一是前端,二是后端。我们将在下面讨论两者。

如何在WordPress上诊断admin-ajax.php高频率使用问题

第三方插件是admin-ajax.php使用率高的最常见原因之一。通常,此问题会出现在站点的前端,并经常出现在速度测试报告中。

但是插件并不是这里唯一的罪魁祸首,因为主题、WordPress 核心、在WordPress上正确实现Ajax时,可能会导致严重的性能问题。上面的GTmetrix报告就是这种行为的一个完美例子。

您还可以使用GTmetrix来挖掘单个文章和响应数据。您可以使用此功能查明导致问题的原因。

为此,请转到GTmetrix报告的Waterfall选项卡,然后找到并单击POST admin-ajax.php项。您将看到此请求的三个选项卡:标题、发布和响应。

如何诊断WordPress站点Admin-Ajax使用率过高问题

POST admin-ajax.php请求的Headers数据

查看请求的PostResponse选项卡将为您提供一些提示,以找出性能问题背后的原因。对于此站点,您可以在“Response”选项卡中看到线索。

如何诊断WordPress站点Admin-Ajax使用率过高问题

POST admin-ajax.php请求的响应数据

您可以看到响应的一部分与id设置为“fusion-form-nonce-656”的输入标签有关。

快速搜索这条线索将带您到ThemeFusion的网站,Avada主题的创建者。因此,您可以得出结论,该请求来自主题,或者与它捆绑的任何插件。

在这种情况下,您必须首先确保Avada主题及其所有相关插件已完全更新。如果这不能解决问题,那么您可以尝试禁用主题,看看是否可以解决问题。

与禁用插件不同,在大多数情况下禁用主题是不可行的。因此,尝试优化主题以消除任何瓶颈。您还可以联系主题的支持团队,看看他们是否可以提出更好的解决方案。

在GTmetrix中测试另一个慢速网站导致发现与Visual Composer页面构建器和通知栏插件类似的问题。

如何诊断WordPress站点Admin-Ajax使用率过高问题

另一个POST admin-ajax.php请求的响应数据

如何诊断WordPress站点Admin-Ajax使用率过高问题

POST admin-ajax.php请求的Post数据

值得庆幸的是,如果您无法解决插件的问题,您最喜欢有许多可供尝试的替代插件。例如,当涉及到Heartbeat API问题。例如,您可以在资源有限的主机上减少Heartbeat API生成的请求频率。它还会在键盘/鼠标/触摸不活动一小时后自行暂停。

使用Heartbeat Control Plugin减少Ajax请求

您可以使用WP Rocket的Heartbeat Control插件轻松解决此问题。它允许您只需点击几下即可禁用或修改Heartbeat API的频率。

如何诊断WordPress站点Admin-Ajax使用率过高问题

Heartbeat Control插件

安装并激活Heartbeat Control插件后,您可以在WordPress仪表盘、站点前端和文章编辑器上管理Heartbeat API的频率。

如何诊断WordPress站点Admin-Ajax使用率过高问题

Heartbeat Control插件的“常规设置”仪表盘

如果您的服务器CPU资源有限,我建议您在WordPress仪表板和前端都Disable Heartbeat。您还可以修改“文章编辑器”选项的Heartbeat频率并将其增加到30秒(甚至60秒)。频率越高,使用的服务器资源节省的越多。

您必须使用的确切设置因站点而异。如果您不确定要使用什么,您可以咨询您的Web开发人员。

由于DDoS攻击或垃圾邮件机器人导致的高流量

用DDoS攻击或垃圾邮件机器人淹没您的网站也会导致高admin-ajax.php使用率。但是,此类攻击不一定针对增加的Admin Ajax请求。这只是附带损害。

如果您的站点受到DDoS攻击,您的首要任务应该是将其置于强大的CDN/WAF之后,例如CloudflareSucuri

要详细了解如何保护您的网站免受此类恶意攻击,您可以参考我们关于如何阻止DDoS攻击的深入指南

小结

WordPress在其Heartbeat API中使用Ajax来实现其许多核心功能。但是,如果使用不当,它可能会导致加载时间增加。这通常是由于对文件的高频率请求造成的admin-ajax.php

在本文中,您了解了高admin-ajax.php使用率的各种原因、如何诊断导致此症状的原因以及如何修复它。在大多数情况下,遵循本指南应该可以让您的网站立即恢复并顺利运行。

但是,在某些情况下,升级到具有更高资源的服务器是唯一可行的解​​决方案。特别是对于要求苛刻的用例,例如电子商务和会员网站。如果您正在运行这样的站点,请考虑升级到在处理这些类型的性能问题方面经验丰富的托管WordPress主机。

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

整合全网资源下载 wordpress教程 如何诊断WordPress站点Admin-Ajax使用率过高问题 https://www.xliem.com/6205.html

常见问题

相关文章

官方客服团队

为您解决烦忧 - 24小时在线 专业服务