需求来源于某个即将启动的项目,并且这个项目是 to B 的 (°ー°〃)
目标
搜索引擎友好,因为 SPA 应用对于某些搜索引擎来说无法理解,就是很蠢。
解决方案
CDN 推送
使用无头浏览器定期生成页面,然后推送到 CDN 服务商,搜索引擎检索到的就是 CDN 服务商拿到的内容(话说,都要 SEO 友好了,上 CDN 也没啥毛病吧?)。
爬虫定制
同样是使用无头浏览器定时生成页面,缓存到文件中,然后发现请求是来自爬虫时,就返回缓存的生成好的页面,否则正常返回 SPA 页面。
同构
基于现有写作作出一些定制化,规则等要求,使用 ReactDOMServer.renderToString
生成字符串,然后通过自己搭建的 node
服务返回到客户端,点击这里可以参考之前写的一个示例。
风险点是多了一个中间层,很多东西需要自己处理,比如报错,数据注入,DOM 对象不能写在 render 里。
SSR 框架
比较出名的有来自 Vercel 的 Next.js,来自 react-router 的 Remix,Next.js 更成熟一点,Remix 更新更灵活一点,但成熟度还不够。
这些框架有几个很大的问题,第一是很多写法变了,比如数据请求,第二是可配制化程度太低了,比如路由必须按照约定的目录结构配置,如果有奇葩的需求就很难很难处理
买排名
这个不用多说,用过某搜索引擎的都知道,风马牛不相及的东西都能给你列出来。
这里面最中意的是"爬虫定制", 目标达到了,也没有额外的开销,准备做个方案提上去,虽然还是不理解产品是如何想象出来一个管理系统要做 SEO 的。