今天,我们将深入探讨如何调试WordPress性能问题,以及帮助大家解决问题的工具和策略。虽然像这样的每个案例都相当独特,但故障排除的工作流程通常保持不变。希望下次您发现自己遇到WordPress性能问题超出您的理解或控制范围时,您可以使用它。
WordPress性能清单(当事情发生时)
这个性能检查表有点不同。这不是分享如何Apdex分数
Apdex分数
这与正常运行时间和性能监控有关。
有时,这可能涉及牵扯第三方开发人员,尤其是在错误代码是根源的情况下。或者这可能意味着需要增加PHP worker。最后,它可能是很容易修复的东西。
我们希望您取得成功,为您的访问者提供一个快速的网站始终是我们的首要任务之一。如果我们可以查明插件 A 导致您的网站关闭,我们希望您知道。通常情况下,我们往往会看到许多性能问题源于糟糕的插件更新、拙劣的代码或不支持updown.io (正常运行时间监控)
2.利用New Relic之类的工具(它们是无价的)
像New Relic这样的工具不仅非常适合监控正常运行时间和性能,而且在解决性能问题源自。或者您可以尝试使用像Query Monitor这样的免费插件。
New Relic中有几个地方可以帮助快速缩小性能问题。第一个是“WordPress → 插件和主题”选项卡。在我今天用作案例研究的woorkup网站上,我可以立即看到我遇到的问题很可能来自我运行的“gp-premium”插件。但为什么?好吧,我们会做到这一点。
New Relic插件和主题
注意:New Relic中的上述部分并不总是100%准确。在这种情况下,它是。但总是建议至少先检查那里。
因此,在看到之后我有一种很好的感觉或预感,它是我的“gp-premium”插件(这是我的GeneratePress WordPress主题的扩展)中的东西。知道这一点后,我转到了“事务Transactions”选项卡。我们可以立即看到admin-ajax.php事务的数量排在了第一位!
New Relic监控admin-ajax.php问题
对于那些没有New Relic的人,请务必查看我们关于如何诊断Image Processing Queue插件。阅读说明后,我可以看到这是用于WordPress主题的图像处理。本质上,图像大小是使用WP Queue在后台悄悄生成的。
Image Processing Queue
快速搜索同一个术语以及“GeneratePress”导致他们最近的更新日志出现。是的,最近在GeneratePress中将图像调整器从Aqua Resizer更改为Image Processing Queue。就在我更新主题的时候,我的网站上没有任何其他变化。这就是变更日志如此重要的原因! 它们可以像用于故障排除的面包屑一样。
GP更新
令人费解的是,我有其他运行GeneratePress的站点没有这个问题。因此,虽然我可能对正在发生的事情有很好的了解,但我仍然不能100%确定。因此,下一步是打造我的临时环境以开始WP Staging之类的插件来搭建测试环境。
在开发站点启动并运行后,做的第一件事就是批量瞬态是WordPress缓存的一种简单形式,附加了到期时间。为了快速查看我的瞬变,我安装了来自皮平威廉姆森的免费Transients Manager插件。再次发射时,有什么东西立刻引起了我的注意,那就是一个叫做wp_image_processing_queue_process_lock
的瞬态项目。” 此外,它被设置为1分钟后到期,新的不断弹出。
瞬态
虽然插件本身确实有删除瞬态的方法,但它不起作用。所以是时候查看数据库了。所以我登录到phpmyadmin。瞬态存储在wp_options
表中,因此我从“Search”选项卡进行了快速查询,以查找包含该选项名称的任何行。
SELECT * FROM wp_options WHERE option_name LIKE \'%wp_image_processing%\'
事实证明,有695846行用 %wp_image_processing%
。
wp_image_processing
这是测试环境派上用场的地方。由于破坏或测试东西没有害处,我继续手动删除包含它的所有行。我从“SQL”选项卡运行以下查询以删除包含此选项名称的所有行:
DELETE FROM wp_options WHERE option_name LIKE \'%wp_image_processing%\'
删除行
就像魔术一样,删除行后,我网站的响应时间立即恢复正常。
注:如果你在生产环境操作,则需要先GeneratePress是我有史以来最喜欢的WordPress产品之一。害怕了吗?好吧,这些是WordPress带来的一些乐趣!
如果您不理解上述任何内容,那么在解决此类问题时,我强烈建议您查看以下其余步骤。
4. 投资更高级的主机
与某些人可能会让您相信的不同,不存在可以神奇地修复错误代码的架构或主机。 诸如糟糕的插件更新之类的小事,或者在这种情况下,损坏的瞬变,都会使WordPress屈服!优秀的主机应该拥有自动备份、暂存环境和New Relic集成等。这些功能和工具有助于保护您的站点并快速解决问题。
WordPress支持
建议您选择使用任何主机,确保他们的支持团队能够提供及时和专业的服务!
当然,在性能方面,基础设施确实很重要,而不是在负载下屈曲。
5. WordPress维护服务
在过去五年左右的时间里,业界出现了一种新型公司:WordPress维护服务提供商。这些公司在某些情况下可以接管您所有繁琐的WordPress任务。这里仅举几个例子:
- 谷歌搜索控制台设置
- 谷歌分析集成
- 每周关键词排名报告 + 分析报告
- 社交媒体分析应用
- 手机+平板优化
- 插件开发
- 无限编辑(没错,有些甚至会做一些小任务,例如更新您的徽标、添加WooCommerce产品等)
是的,其中很多都提供每日或每周的正常运行时间和性能监控。以下是您应该查看的一些WordPress维护公司。
SkyrocketWP
SkyrocketWP提供WordPress维护服务、支持和托管解决方案,旨在为希望发展业务的人们处理WordPress。
SkyrocketWP
WP-Tonic
WP-Tonic为忙碌的企业主提供真正精品的礼宾支持和维护服务。没有时间解决您的WordPress问题?让WP-Tonic为您处理。他们还运行一个流行的播客,在其中采访WordPress企业主和开发人员,以了解行业内正在发生的事情。
WP-Tonic
WP Buffs
WP Buffs为严肃的网站所有者和白标代理合作伙伴提供WordPress护理计划。
WP Buffs
6. 不要害怕向开发者提出问题
在确定可能导致WordPress性能问题的原因之后,不要害怕向开发人员提出问题!很多时候,开发人员非常乐于提供帮助,事实上,他们希望在发生故障时了解情况,以便他们可以为每个人推出修复程序。
我联系了GeneratePress的开发人员Tom,他像往常一样立即做出了回应。我们将这个问题抛到了破坏瞬态的问题上,但正如你所看到的,他实际上将切换他们的图像排队方法(部分原因是这个)。因此,您作为用户的反馈绝对可以帮助开发人员做出更高级的决策,以决定在他们的插件或主题中实施或更改什么是最好的。
来自WordPress开发者的回应
我们也有计划推出专门针对WordPress的问题解答专区,敬请期待!
7. 您可以随时聘请WordPress开发人员
如果最坏的情况发生,您可以随时聘请WordPress开发人员来解决您的问题。也许您发现您使用的插件确实有一些糟糕的代码,而创建者无法或不会修复它。
聘用开发人员的难点在于如何找到声誉良好且擅长其工作的人?
强烈推荐Codeable,他们的开发人员在被允许加入服务之前都经过了预先筛选,Codeable员工会亲自审查技术人员简历。他们有超过25,000名客户,但只有300名WordPress专家。仅接受2%的申请者。他们只想要最好的,作为客户,这反过来可以为您节省大量时间和挫折。
Codeable的WordPress开发人员职位
他们致力于提供WordPress外包服务,并完全专注于将有才华的开发人员与客户相匹配。
其他资源
编写了一些额外的资源来帮助您解决一些WordPress调试性能问题:
- 使用New Relic寻找WordPress性能瓶颈
- 如何使用查询监视器
- 如何消除阻塞渲染的JavaScript和CSS
- 如何修复浏览器缓存警告
- 如何修复500内部服务器错误
- 如何修复 504 网关超时错误
- 如何修复 502 错误网关错误
小结
无论您是否精通技术,在解决WordPress性能问题时,总有可用的解决方案。第一个明显的建议是通过选择不仅拥有坚如磐石的基础设施而且拥有世界一流的支持团队来支持它的托管服务提供商,为自己取得成功做好准备。您最不希望发生的事情是您的WordPress网站宕机或龟速运行,因为您不知道接下来要采取哪些步骤。
利用New Relic等工具,它可以在调试问题时为您节省时间。归根结底,通过社区中求助大量才华横溢的WordPress开发人员也是个好办法,甚至直接雇用一个(有条件的情况下)。