经常会有用户过来咨询百度小程序页面质量的问题,比较常见的就是空短页、标题低质等问题,其实这个主要是由于加载时间没有达到百度的要求,百度对于小程序首屏渲染有着严格的要求,需要在1.5秒内完成渲染,以我们的JustWeapp小程序为例,JustWeapp小程序本身渲染需要耗时大概0.3秒的样子,所以剩下给接口请求响应时间只有1.2秒了。

具体规则说明参考:https://smartprogram.baidu.com/docs/operations/flow/configurable/enterprise_qualitystandard/ 百度小程序加载要求

由于小程序是采用前后端数据分离的方式开发,如果接口未在规定时间内返回数据,那么页面就没有内容可以展示,此时百度抓取到的就是一个空的页面,所以就导致上面反馈的这些问题。

如果对WordPress比较了解的用户应该清楚,如果不做任何优化,安装的插件不多、文章几百篇的情况下,请求时间大概会在1秒左右,好一点的可以做到几百毫秒,这也是很多用户吐槽WP慢、臃肿的一个原因。小程序接口请求响应时间会和页面请求响应时间差不多,但是百度抓取的时候小程序会需要请求多个接口,以JustWeapp小程序为例,完成首屏渲染至少需要请求2个接口:全局配置信息接口和文章基础信息接口,由于多个接口其实是并行请求的,所以时间也不能单纯用两个接口请求时间想加,但是也是很容易就超过1.2秒的,更何况很多网站速度更慢、文章更多。

优化建议

WordPress打开慢是WP站长圈子里面的一个经久不衰的话题,但是目前还是有很多方式可以优化,常见的就是安装缓存插件。不过需要注意的是很多插件的缓存优化并没有对小程序所用到的REST API接口进行缓存优化,这个需要留意下。

我们推荐的针对小程序接口的优化方案会分多个级别:

初级方案

适合技术小白、网站更新频率不高的网站,以及没有注册登录需求

直接将接口返回页面缓存,这样后续打开对应页面就会有明显加速效果,推荐插件:https://cn.wordpress.org/plugins/wp-rest-cache/

进阶方案

适合宝塔服务器面板、有服务器环境配置能力

服务器需要先配置好Memcached或者Redis,宝塔的话在PHP里面安装扩展,然后WordPress后台可通过插件配合将数据缓存到内存里面。

推荐插件W3 Total Cachehttps://wordpress.org/plugins/w3-total-cache/

W3 Total Cache是一个专业的缓存优化插件,可能会涉及到服务器配置文件的调整,所以不会用的话请勿随意开启或者修改其他选项,这里我们仅介绍WordPress内置的对象缓存数据缓存到Memcached的方法。

1、开启对象缓存并勾选Memcached

开启对象缓存并勾选Memcached

2、配置对象缓存

一般不需要修改,没有修改过地址或端口的话直接点击Test就能通过。主要下面的缓存时间调大一点,可以参考截图的设置:

配置对象缓存

JustWeapp小程序在开发和版本更新过程中针对渲染时间的问题也做过很多的优化,比如:

  • 分优先级、多接口请求数据,比如文章点赞、喜欢、评论内容等接口会在首屏渲染完成以后再加载,减少首屏渲染压力;
  • 优化数据存储方式,比如小程序排除文章的标识数据保存方式,数据存储方式不一样会影响到文章列表数据库查询时间;
  • 功能模块开关,针对响应速度不达标的站点可以隐藏一些功能以提高速度;
  • 图片延迟加载;
  • 支持百度小程序的云加速服务

补充说明

由于接口请求时间还会受网络环境等因素影响,就好比我们打开一个网站所需要的时间也是会浮动的,但是大概率还是会保持在一个时间段内,尤其是百度爬虫每天爬取巨量数据,肯定会有不达标的情况。

所以针对页面质量也不能完全以某次测试为准,或者说后台有部分页面质量不合格的链接,也都是正常情况,我们只需要保证大部分情况请求时间达标即可。