固定链接格式的改进节省页面载入时间的方法

前期也有提到过服务器waiting ttfb的时间过长问题(Windows下启用memcache缓存所走的弯路 – 程门立学 ),一直打开一个单页面需要500-1000ms以上的时间,导致了页面的整体载入时间一直在2s以上。没法使用静态加速的功能了。加上最开始站点开通的时候,也是懵懵懂懂没有主要到固定链接格式的问题,导致了现在的文章的单个链接是这样的格式:https://www.iappi.cn/2019_05/2019627 ,非常的不方便。想着趁着现在链接还不多,晚换不如早换的,反正都是一样的折腾,不如早点折腾,不然成百上千的链接再来换就更麻烦了。

图1.当前链接的格式
图2单个页面Waiting TTFB的时间超过了1s

于是忙里偷闲,查了一下网上的资料,决定对固定链接进行一下调整。具体的思路如下:

  • 更改固定链接格式:在WordPress后台设置中,将固定链接的格式保持当前的格式不变,但是加上.html的后缀。Html是常见的网页的格式,兼容性非常好。当然这里如果喜欢玩点花样,设置任意的后缀都可以,如有些网站的后缀就是.orz这样的。不对格式做太多的调整,避免后续给搜索引擎调整链接格式的麻烦。
图3.当前WordPress设置的固定链接格式
图4.重新设置WordPress设置的固定链接格式
  • 设置伪静态:网站后台设置好伪静态,套用默认的WordPress模版即可。这里不太清楚是否真的生效,但也没有出什么异常,也就放一边先。将就先用着。
图5.服务器后台设置好伪静态规则
  • 做好301的跳转,对每个文章的链接都做跳转。这里采用插件的形式进行了设置。由于规则比较简单,但还是重复来回复制了N次(N>100)。这一步的目的主要是让通过搜索引擎点开链接的时候,不会直接404,而是会跳转到新的.html链接,从而保证了链接的正常打开。
图6.设置好301跳转
图7.按要求提交规则改版

比较奇怪的是到了晚上查看的时候,给了一个部分改版的提示。

图8.阶段提示:规则校验中

提示为:

www.iappi.cn/2019_05/2019586 改版前旧链接抓取失败

www.iappi.cn/2019_05/2019620 跳转关系与规则不符

www.iappi.cn/page/2 改版前旧链接抓取失败。居然发现

www.iappi.cn/2019_05/2019620会跳转到https://www.iappi.cn/2019_05/2019620,html,注意看下是逗号的,而不是.。也是服气了,只能重新设置,再次等待验证。

图10.重新设置添加改版规则
  • 设置CDN,在百度云后台添加文件类型的缓存,在原来css类文件后面加上.html,使得CDN缓存html文件,减少服务器查询压力。
图11.CDN设置html文件格式的缓存
  • 验证:重新打开网站,发现各个文章的页面都是.html格式的了,并且因为添加了CDN缓存,从而使得直接拉取缓存,从而减少了Waiting TTFB的时间。可以看到html的Waiting时间已经到了15ms以下了,压缩了1s以上的时间了。这个情况下,才有可能让页面的载入时间压缩到1s以下。
图12.查看页面的载入时间

当然,这个只是在CDN侧的html缓存,CDN没有刷新之前,打开同一个页面,得到的一直是一个结果,而服务器还是真实的生成了新的html页面。从右侧工具栏的随机文章等就可以看出来,CDN拉取回来的页面跟直接访问服务器,还是有点差别的。服务器还是该干啥干啥的,所以后续还得想办法解决服务器端的缓存问题。

图13.CDN拉回来的页面的随机文章
图14.直接服务器读取的页面的随机文章

后续:

经过第二次提交后发现,还是出现校验出错,一共2条,提示如下:

图15.依然提示检验失败

第一条www.iappi.cn/2019_05/2019620 跳转关系与规则不符经检验是301跳转的时候把.html填写成了,html。重新改正下就行。

第二条www.iappi.cn/page/2 跳转关系与规则不符 是文章列表页面的分页,因为组成的规则跟单独的文章页面是一致的,都是www.iappi.cn/(\w+)/(\d+)的规则,但又没有对其实现伪静态,所以报错了。折腾了好久,网上也查找不到相应的解决办法(主要参考了WordPress所有分页URL由/page/n/变成/page-n.html实现 – 过往记忆  https://www.iteblog.com/archives/1983.html,但完全没有效果),可以将www.iappi.cn/page/2 改成www.iappi.cn/page/2.html又不影响正常访问。所以只能采取第三个方法,新旧URL对 的方式提交,按照页面指引提交给百度验证。具体效果有待时间的验证了。

图16.通过提交URL对的方式

再后记:

经过一天的核对校验,百度搜索终于给出了改版完成的提示。文章页面的链接改成html结尾算是基本上完成了。后续再来优化调整较少服务器端的执行效率即缩短第一次缓存之前的waiting时间。

真是一用WordPress,折腾不止。

图17.改版完成的提示