单页应用的 SEO 解决方案,这么做是否可行?

2017-02-03 11:36:51 +08:00
 AlwaysBee

由于国内的搜索引擎对 js 的支持糟糕,那么是否可以这样,客户端请求的时候,将渲染之后的结果发送回服务端,保存为静态文件(根据比对内容决定是否更新),那么当下一次请求该页面的时候,直接返回已保存的静态文件即可。
( PS :我知道可以在服务端跑一些渲染程序,只是哪一个解决方案更好罢了)

5435 次点击
所在节点    程序员
21 条回复
int64ago
2017-02-03 11:54:54 +08:00
SSR
otakustay
2017-02-03 12:19:41 +08:00
1. 使用 react 等技术直接输出 HTML ,这无疑是最好的,即便有一定的服务器资源开销也非常小,因此可以不考虑缓存、静态化等事情,也就无需去做复杂的缓存过期策略等工作。代价是会被某些框架捆绑
2. 用 seojs 等做基于实际渲染的 HTML 输出,开销非常之高,如果可以正确识别出爬虫的话,考虑到爬虫的频率不高,可以不做缓存,事实上就爬虫这个频率,你缓存也没用基本等下次来爬也过期了
3. 你自己说的方法,前提是爬虫来之前有用户访问,但通常爬虫的速度比普通用户还要快
chairuosen
2017-02-03 12:29:27 +08:00
不信任任何客户端发来的东西,更何况 html
AlwaysBee
2017-02-03 12:34:25 +08:00
@chairuosen 好不容易想到一个方案,突然又被你否决了,感谢
kamkam
2017-02-03 13:31:10 +08:00
国内的搜索引擎对 js 的支持糟糕?
grayon
2017-02-03 13:42:26 +08:00
HTTP 304
54sword
2017-02-03 14:02:36 +08:00
分享自己写的一个 SPA (单页面应用)的小站点,支持 SEO ,供你参考。
前端基于 React (全家桶),然后上了 React 服务器端渲染。
xiaoduyu.com
AlwaysBee
2017-02-03 14:14:13 +08:00
@kamkam 我指的是搜索引擎的爬虫,还是你指的是别的问题
AlwaysBee
2017-02-03 14:17:24 +08:00
@54sword 好的,感谢。。。 PS :我用的 vue 全家桶,[artizen.cc]( https://artizen.cc)
wanghanlin
2017-02-03 14:21:08 +08:00
prerender.io 开源的
newworld
2017-02-03 14:21:28 +08:00
@AlwaysBee 移动端支持貌似不太好
54sword
2017-02-03 14:23:09 +08:00
ijse
2017-02-03 14:26:37 +08:00
有一些在线平台可以做,比如 https://prerender.io/
AlwaysBee
2017-02-03 14:31:36 +08:00
@ijse
@wanghanlin
刚刚试了一下,添加完链接后,渲染结果页面是空白的,只有标题部分渲染成功了
wanghanlin
2017-02-03 14:36:40 +08:00
@AlwaysBee 你是怎么试的?用的在线版还是自己部署的?
AlwaysBee
2017-02-03 14:40:09 +08:00
@wanghanlin 在线版,有一个添加链接的表单,我加上去之后查看渲染结果是空白的
uzumaki
2017-02-03 14:41:48 +08:00
看携程
AlwaysBee
2017-02-03 14:48:55 +08:00
@newworld 哈哈,一直没时间去适配
wanghanlin
2017-02-03 14:58:53 +08:00
@AlwaysBee laravel log 有没有报错?
wanghanlin
2017-02-03 15:15:24 +08:00
@AlwaysBee 可能跟你那图片 src 有问题有关系
```
0|prerender | [Vue warn]: Error when rendering component <lazy-image>:
0|prerender | https://artizen.cc/dist/main.js:8 in Lr
```

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/337842

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX