Vue 是一套用于构建用户界面的渐进式框架。与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。另一方面,当与现代化的工具链以及各种支持类库结合使用时,Vue 也完全能够为复杂的单页应用提供驱动。
现在越来越多的网站开始运用VUE,但是大家都知道搜索引擎对于JavaScript是不友好的,而vue框架本质就是javascript是一种应用,那么对于网站有SEO优化需求的站点对于vue应该如何的抉择。

要搞清楚VUE对于搜索引擎的不友好的原因,首先搞懂js与搜索引擎之间的之间的关系,搜索引擎和我们浏览浏览器是有区别的,对于人来说不管是什么语言最终在浏览器都可以看到相同的内容,但是对于搜索引擎却不是这样的。
浏览器的渲染包含:html的解析、dom树的构建、cssom构建、javascript解析、布局、绘制,而vue的触犯要到了最后的javascript解析才能被触发,这个时候才能渲染出真实的内容,在这之前页面只是渲染了dom树是没有任何内容的,这就会造成搜索引擎抓取的时候只是抓取到一个页面结构,没有抓取到任何有意义的内容。大家可以找到一个vue开发的网站,加载页面的时候如果网站速度比较慢的时候就会出现白屏正是因为这个原因,因此对于用户体验也不是很好。
虽然说现在搜索引擎也开始逐渐支持了Javascript,但是观察发现对于Javascript支持很有限,只是一些简单的页面效果的渲染,对于像VUE这种异步加载数据的目前还是不要寄予太大希望,并且搜索引擎对于一些优质的站点会抓取Javascript,但是如果是低质量站点或者是新站是否能够很好的抓取就不好说了。
VUE站点告别了SEO吗
那么VUE是不是就无法做SEO优化了呢?当然还是可以做的,思路也很简单,就是要提前把页面渲染好转为静态页面就可以避免了VUE对于搜索引擎的不友好。大致有这几个方案SSR服务器渲染、Nuxt静态化、预渲染prerender-spa-plugin、Phantomjs针对爬虫做处理。
以上几种方法各有利弊相对推荐使用Phantomjs针对爬虫做处理,这种解决方案其实是一种旁路机制,原理就是通过Nginx配置, 判断访问的来源UA是否是爬虫访问,如果是则将搜索引擎的爬虫请求转发到一个node server,再通过PhantomJS来解析完整的HTML,返回给爬虫。
vue与SEO的抉择
因此如果说网站非必要vue并且很看重的SEO优化,那么还是尽量避免使用vue,不仅仅是对于搜索引擎的友好性,而且用户体验上的考量,如果站点引用的很多的插件,代码优化有不够,机器性能跟不上等因素,那么就会加长页面渲染的时长,也就是说白屏等待的时间会更长。
对于SEO优化一个标准需要记住页面首屏的加载时间控制在1.5s以内,如果有实力达到稳定的加载速度,那么在整体权衡之下依然还是可以采用VUE去做网站的SEO优化的。