目录
前端方案
如果你不是spider,那么你看到的首页和文章是Vue + element-ui搭建的。el-row + Pagination + mavonEditor,3个组件完成,再通过axios拉取数据,不要太轻松。
头大
当我开开心心部署后,美滋滋的研究起SEO,才意识到问题的严重性。那每次在翻vue文档时,被我无数次跳过的SSR,终于让我不得不回头仔细看他。虽然google和bing都可以不错的支持JavaScript,但是前提是同步请求,还有的是百度它不行啊。头疼了几天。
暂时不用Vue SSR的原因
- router mode 我选的是hash,hash数据并不会提交到服务器。
- 在服务器上我挂着的是node build 出来的dist,我并不想运行一套node server
- Vue SSR我还没完全看明白,呜呜呜。。
- 有点懒,暂时不想改了
- 我觉得我的临时方案还可以
我的临时方案
- 我用php写了3个页面,无css,js的纯html页面,特供爬虫
- ?_x=ForSpider.Sitemap 网站地图
- ?_x=ForSpider.Blog.article&blog_name=xphp 文章列表
- ?_x=ForSpider.Blog.article&blog_name=xphp&id=2 文章详情页
- 爬虫端,在入口做了UA判断,给爬虫展示特供页。UA部分可以参考
- 维护一份链接映射规则,以便从搜索引擎进入后跳转
- 用户端,用户通过爬虫收录后链接进入时,跳转到正常的页面。
如果感兴趣可以用chrome下载插件 User-Agent Switcher for Chrome,将UA修改为爬虫的UA访问我的这个页面,如
Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)
总结
- 选择Vue的一大原因是为了前后端分离,在后台部分确实做到的。但是遇到的了seo需要,才发现并不是那么理想,甚至我绝对的重新几个页面都要来的更快,但我就是要折腾一下。
- SSR也就是服务端渲染,在我看来那么采用php模板输出也是一样的。经过这么一折腾,我还是觉得知乎上的一句话说的很有道理
vue一般做的东西叫web app,是有功能的一个产品,我认为不需要做seo。seo是为了产品推广,应该放在这个产品的官网,官网一般没什么复杂功能,你要不需要用vue等其他框架,老老实实写静态页面,做传统的seo优化就好。
- 如果你和我一样,服务器是只小鸡,不要node server,router mode 选择了 hash,还舍不得不用,页面不多,可以考虑我这个方案
备用方案
- 先把router mode改成history
- phpV8js,好像可以解决原因2。待学习
- Prerendering 预渲染对于静态页面也是一个不错的选择,按目前的了解,好像可以不在服务端运行node。但是如果一样的动态页面的话,我会放弃这个方案。
- 最后就是 SSR,暂时无法发表意见,在后续实际中再考虑是否要使用。
随时反馈
google可以正常收录。
百度和bing使用该方案只会收录首页。
记录下网站前端路由和seo方案修改