React 是不是比较难处理静态 html + ajax 这种页面

2020-06-12 06:44:24 +08:00
 dartabe
React 的 spa 可能 SEO 不友好

如果只是希望 seo 友好的展示页面 同时需要远程 api 更新几个小的数据点 React 是不是就不太适合了?

Nextjs 之类的框架貌似可以 但是静态服务器又用不了了?

有点迷茫
4935 次点击
所在节点    React
17 条回复
zachguo
2020-06-12 06:54:54 +08:00
这是对于 JS SPA 的普遍性 SEO 问题,和 React 没关系

谷歌自己对于 JS SEO 的建议: <amp-youtube data-videoid="Ey0N1Ry0BPM" layout="responsive" width="480" height="270"></amp-youtube>
Procumbens
2020-06-12 06:57:42 +08:00
可以用 Gatsby ?
dartabe
2020-06-12 07:11:53 +08:00
@Procumbens 好像 gatsby 确实可以啊

不知道 nextjs 输出静态页面的时候有没有类似 结合 runtime data 的功能
zj1926
2020-06-12 07:12:27 +08:00
不会啊,我的这个项目就是 react 写的,https://github.com/im6/javascript-fun,SEO 贼友好
dartabe
2020-06-12 07:27:30 +08:00
@zachguo 话是这么说 但我看某些专门搞 seo 的公司主页也是基于 nextjs 的纯静态页面
zachguo
2020-06-12 07:33:27 +08:00
@dartabe 你的点是什么?到底要问啥? nextjs 帮 react 进行 SSR 或者 SSG 罢了,任何 JS 都可以 SSR 或 SSG
dartabe
2020-06-12 07:41:29 +08:00
@zachguo 不好意思 看错了你回复了
murmur
2020-06-12 07:58:17 +08:00
seo 国内本身就没啥意义,资金不到位怎么 seo 也比不上广告排名
lizz666
2020-06-12 08:12:44 +08:00
最近要弄个网站,也在纠结选 react 版的 next.js 还是 vue 版的 nuxt.js
Perry
2020-06-12 08:24:36 +08:00
@dartabe Next.js 支持 Static Exporting
dartabe
2020-06-12 08:53:37 +08:00
看了一下 好像是 react.hydrate() 实现的 那应该是框架无关了 应该都能用
zzzmh
2020-06-12 10:08:46 +08:00
这个是一开始就要设计好的,例如 V2EX 就有专门给谷歌收录的 url
一些知名网站,基本是首页是 spa,然后跳转到的子页面是部分后端渲染,部分(如点赞数评论区)前端渲染。
如果头铁一点不怕百度判你作弊的话,也可以先全站 spa,
然后子页面再开发一个一模一样的后端渲染的,专门有个 url 路径,专门提供搜索引擎收录
例如这个帖子是 www.v2ex.com/#/t/680857 再开发一个 https://www.v2ex.com/t/680857 专门给百度收录用的
joesonw
2020-06-12 10:12:39 +08:00
你要理解到 React SSR 的原理. 如果只是为了 SEO, 只需要服务端 renderToString 即可.如果前端还有后续操作的, 用 hydrate 即可.
lbw
2020-06-12 10:47:17 +08:00
非动态网页用预渲染 prerender 就可以了,react 下有 next.js ,vue 下有 nuxt.js ,它们都支持静态 prerender 导出,而非 spa 或 ssr
hantsy
2020-06-12 15:42:34 +08:00
老话题了,好像 5,6 年前第一次用 ANgularjs 的时候就看过一些方案。prerender 是一个专有的,另外应该 Ngnix,Apache 等 Web 服务器都是配置缓存页面的,让搜索引擎去查缓存。
xcstream
2020-06-12 20:45:50 +08:00
需要 seo 的页面 通常比较简单 根本无需这种框架
zhuweiyou
2020-06-13 09:12:39 +08:00
nextjs 支持 export html

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

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

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

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

© 2021 V2EX