經(jīng)常會(huì)有用戶過(guò)來(lái)咨詢百度小程序頁(yè)面質(zhì)量的問(wèn)題,比較常見(jiàn)的就是空短頁(yè)、標(biāo)題低質(zhì)等問(wèn)題,其實(shí)這個(gè)主要是由于加載時(shí)間沒(méi)有達(dá)到百度的要求,百度對(duì)于小程序首屏渲染有著嚴(yán)格的要求,需要在1.5秒
內(nèi)完成渲染,以我們的JustWeapp小程序?yàn)槔?,JustWeapp小程序本身渲染需要耗時(shí)大概0.3秒
的樣子,所以剩下給接口請(qǐng)求響應(yīng)時(shí)間只有1.2秒
了。
具體規(guī)則說(shuō)明參考:https://smartprogram.baidu.com/docs/operations/flow/configurable/enterprise_qualitystandard/
由于小程序是采用前后端數(shù)據(jù)分離
的方式開(kāi)發(fā),如果接口未在規(guī)定時(shí)間內(nèi)返回?cái)?shù)據(jù),那么頁(yè)面就沒(méi)有內(nèi)容可以展示,此時(shí)百度抓取到的就是一個(gè)空的頁(yè)面,所以就導(dǎo)致上面反饋的這些問(wèn)題。
如果對(duì)WordPress比較了解的用戶應(yīng)該清楚,如果不做任何優(yōu)化,安裝的插件不多、文章幾百篇的情況下,請(qǐng)求時(shí)間大概會(huì)在1秒左右,好一點(diǎn)的可以做到幾百毫秒,這也是很多用戶吐槽WP慢、臃腫的一個(gè)原因。小程序接口請(qǐng)求響應(yīng)時(shí)間會(huì)和頁(yè)面請(qǐng)求響應(yīng)時(shí)間差不多,但是百度抓取的時(shí)候小程序會(huì)需要請(qǐng)求多個(gè)接口,以JustWeapp小程序?yàn)槔?,完成首屏渲染至少需要?qǐng)求2個(gè)接口:全局配置信息接口和文章基礎(chǔ)信息接口,由于多個(gè)接口其實(shí)是并行請(qǐng)求的,所以時(shí)間也不能單純用兩個(gè)接口請(qǐng)求時(shí)間想加,但是也是很容易就超過(guò)1.2秒的,更何況很多網(wǎng)站速度更慢、文章更多。
優(yōu)化建議
WordPress打開(kāi)慢是WP站長(zhǎng)圈子里面的一個(gè)經(jīng)久不衰的話題,但是目前還是有很多方式可以優(yōu)化,常見(jiàn)的就是安裝緩存插件。不過(guò)需要注意的是很多插件的緩存優(yōu)化并沒(méi)有對(duì)小程序所用到的REST API接口進(jìn)行緩存優(yōu)化,這個(gè)需要留意下。
我們推薦的針對(duì)小程序接口的優(yōu)化方案會(huì)分多個(gè)級(jí)別:
初級(jí)方案
適合技術(shù)小白、網(wǎng)站更新頻率不高的網(wǎng)站,以及沒(méi)有注冊(cè)登錄需求
直接將接口返回頁(yè)面緩存,這樣后續(xù)打開(kāi)對(duì)應(yīng)頁(yè)面就會(huì)有明顯加速效果,推薦插件:https://cn.wordpress.org/plugins/wp-rest-cache/
進(jìn)階方案
適合寶塔服務(wù)器面板、有服務(wù)器環(huán)境配置能力
服務(wù)器需要先配置好Memcached
或者Redis
,寶塔的話在PHP里面安裝擴(kuò)展,然后WordPress后臺(tái)可通過(guò)插件配合將數(shù)據(jù)緩存到內(nèi)存里面。
推薦插件W3 Total Cache
:https://wordpress.org/plugins/w3-total-cache/
W3 Total Cache
是一個(gè)專業(yè)的緩存優(yōu)化插件,可能會(huì)涉及到服務(wù)器配置文件的調(diào)整,所以不會(huì)用的話請(qǐng)勿隨意開(kāi)啟或者修改其他選項(xiàng),這里我們僅介紹WordPress內(nèi)置的對(duì)象緩存
數(shù)據(jù)緩存到Memcached
的方法。
1、開(kāi)啟對(duì)象緩存并勾選Memcached
2、配置對(duì)象緩存
一般不需要修改,沒(méi)有修改過(guò)地址或端口的話直接點(diǎn)擊Test
就能通過(guò)。主要下面的緩存時(shí)間調(diào)大一點(diǎn),可以參考截圖的設(shè)置:
JustWeapp小程序在開(kāi)發(fā)和版本更新過(guò)程中針對(duì)渲染時(shí)間的問(wèn)題也做過(guò)很多的優(yōu)化,比如:
- 分優(yōu)先級(jí)、多接口請(qǐng)求數(shù)據(jù),比如文章點(diǎn)贊、喜歡、評(píng)論內(nèi)容等接口會(huì)在首屏渲染完成以后再加載,減少首屏渲染壓力;
- 優(yōu)化數(shù)據(jù)存儲(chǔ)方式,比如小程序排除文章的標(biāo)識(shí)數(shù)據(jù)保存方式,數(shù)據(jù)存儲(chǔ)方式不一樣會(huì)影響到文章列表數(shù)據(jù)庫(kù)查詢時(shí)間;
- 功能模塊開(kāi)關(guān),針對(duì)響應(yīng)速度不達(dá)標(biāo)的站點(diǎn)可以隱藏一些功能以提高速度;
- 圖片延遲加載;
- 支持百度小程序的云加速服務(wù)
補(bǔ)充說(shuō)明
由于接口請(qǐng)求時(shí)間還會(huì)受網(wǎng)絡(luò)環(huán)境等因素影響,就好比我們打開(kāi)一個(gè)網(wǎng)站所需要的時(shí)間也是會(huì)浮動(dòng)的,但是大概率還是會(huì)保持在一個(gè)時(shí)間段內(nèi),尤其是百度爬蟲每天爬取巨量數(shù)據(jù),肯定會(huì)有不達(dá)標(biāo)的情況。
所以針對(duì)頁(yè)面質(zhì)量也不能完全以某次測(cè)試為準(zhǔn),或者說(shuō)后臺(tái)有部分頁(yè)面質(zhì)量不合格的鏈接,也都是正常情況,我們只需要保證大部分情況請(qǐng)求時(shí)間達(dá)標(biāo)即可。