亲测解决WordPress网站提交评论延迟高
老白之前发现我的WordPress网站提交评论时,等待的时间很长,但是刷新一下又是成功发布评论的,确实有点影响体验。老白博客网上搜了一堆,教程倒是挺多的,大部分都是垃圾,还什么服务器配置不够,纯扯淡。真正的原因基本上是两种,一种是评论提交触发SMTP冲突,另外一种是插件的缓存清理刷新和预缓存功能冲突。接下来老白说说这两种原因和解决方法。
我目前遇到的就是SMTP和缓存清理两种,首先是第一个smtp。
1.评论提交和SMTP发信冲突
1.1 评论提交过程
当访客在 WordPress 网站上提交评论时,如果同时触发通过SMTP发送邮件(例如给站点管理员或评论者的通知邮件),WordPress需要在评论提交的流程中调用SMTP服务器,通过网络请求将邮件信息传递给邮件服务器,并等待邮件服务器的响应。当SMTP服务器的响应速度相对较慢或网络延迟较大时,这整个过程就会让用户在提交评论后感受到一定的等待时间。
简单来说,评论提交的过程为:
- 步骤①:用户提交评论表单
- 步骤②:WordPress接收到评论数据并保存至数据库
- 步骤③:WordPress调用SMTP插件或函数,以邮件通知为例,向管理员/订阅者发送邮件
- 步骤④:等待SMTP服务器处理请求并返回成功发送的响应
- 步骤⑤:响应完成后,评论提交流程才会结束,用户才会看到评论提交成功的提示
1.2 提交缓慢原因
如果在上面的步骤③和④花费了较多时间,那么评论提交的整体耗时就会增加,从而给用户造成评论提交变慢的印象。
2.解决SMTP发信冲突
为了解决评论提交和SMTP的问题,可以考虑以下方案:
- 使用缓存或队列机制,将邮件发送操作放入后台队列中异步发送,而不在用户提交评论时同步执行;
- 减少不必要的邮件通知频率或数量
2.1 减少SMTP邮件通知
在WordPress的设置讨论里面就有两个通知,把它取消勾选就可以降低发信频率。
2.2 异步邮件通知
插件介绍
插件名SMTP Mailing Queue,功能很多,其中最重要的就是异步发送邮件。
插件下载:https://qtrj.lanzoul.com/iPnoR2fjw8re
插件设置
插件详细设置见:https://wp.bufanz.com/wordpress/smtp-slows-down-comment-posting-speed.html
发信邮箱选择:腾讯云邮件推送配置wordpress网站SMTP发信隐藏源IP
老白这里主要谈谈修改插件自带计划任务,在插件的设置界面有一个:
意思就是通过服务器设置一个计划任务,来替代wp自带计划任务,效率更高且不易出错!
2.3 smtp计划任务
宝塔面板计划任务添加教程如下:
- URL:插件给的
https://test.xcbtmw.com?smqProcessQueue&key=0i4WTv2r5LMwjcWM&time=1734191942
- 时间:建议30s或者1分钟
宝塔面板shell脚本访问WordPress站点地图实现全站预缓存
宝塔面板PHP-Nginx-Mysql检测并自动重启Shell脚本代码分享
3.缓存机制冲突
一般在设置了WordPress插件SMTP Mailing Queue后,评论提交缓慢的问题基本都能得到解决。
但是老白之前使用powered cache插件时,就发现该插件在评论提交时会触发两个操作:
- 清理评论相关页面的缓存
- 预缓存刷新后的页面
二者间隔时间估计比较短,就会导致两个任务同时进行,就会导致冲突从而评论发布时间变长。
因此,就需要打开“异步缓存清理”
,下面是powered cache插件的开启方法:
更多有关网站建设以及WordPress使用技巧见文末标签!
试一下看看
感谢分享,试一下看看