网站加载速度优化是非常有必要的,不仅仅是对于SEO优化,对于用户的访问转化起到了决定性的作用,笔者也经常会遇到很多网站经常白屏,或者加载缓慢,正常来说大家应该等个几秒没有加载成功应该都是关掉页面吧。看来看看有哪些因素会影响网站速度吧!
带宽不够
带宽不够是最普遍的问题,是大多数站点网站加载慢的因素,最直接的方法就是直接提升带宽,不过就是有点费钱,还是可以通过对网站的优化降低点带宽的需求。
网站中占用最大带宽就是图片,所以站点上的图片必须进行压缩,在保持足够清晰度的前提下,最大程度的压缩。对于一些并不是很重要图片,非首屏加载的可以进行延迟加载。
网页阻塞
网站一般都会引用大量js脚本,而js对于dom的构建渲染会造成阻塞。对于这个问题,尽可能将脚本本地化,避免远程请求js脚本失败导致页面被阻塞。
对于非必要的js进行异步加载,同时将js放到页面代码底部去减少阻塞的影响。
线程阻塞
线程阻塞指的是浏览器,比如谷歌浏览器在同一域名下,不同GET/POST请求的并发数量是6。当发送的请求数量达到6个,并且都没有得到响应时,后面的请求会置入队列等待发送。
所以这个时候即是资源加载没有问题,页面的渲染也会被阻塞,就必须降低页面请求的数量,对于一些请求进行合并。同样大小的资源,进行合并之后,首先资源数少了,也就减少了硬盘寻址的时间,不要小看这个。当用户量大了之后,对于磁盘开销的降低是有很大帮助的。
可以将css全部合并到一起,js脚本也可以合并一起,很多站点为了开发的便利,会把css和js拆分多个,方便后期的维护,比如所有页面公用的代码就会单独放一个文件,之后只要维护一处就可以全局修改。
但是现在有很多工具,比如css就有sass、less等就可以进行混和打包,不同的功能依然可以在对应的文件里维护,但是打包到生产环境之后可以根据自己的需求设定,把需要的代码合并到同一个文件。
网站稳定性
现在非常流行前后端分离,很多站点一位的追求新技术,导致了后期的一些问题。这里建议中小项目没必要用前后端分离,很多公司的网站都是开发之后基本不更新维护的,前后端分离开发效率上的优势就没有了,并且调用api接口的时候出现稳定性波动就容易导致网站打开率有问题。
即使代码很靠谱,前后端分离从概率上出现问题的概率就要翻倍。更关键的是前后端分离对于SEO不友好,前端普遍依靠js实现,比如vue等框架,都是在客户端渲染,而不是服务端渲染,如果不做处理那么蜘蛛抓取不到任何内容的。就需要去配置服务端渲染,比如vue中nuxt是比较好的SEO解决方案,