我有一个使用React,React Router,Redux和Webpack进行捆绑的应用程序,基本上问题是客户端说SEO不好,因为React的内容或方式会渲染该应用程序,因为如果您去看看来源不存在,我了解到Googlebot可以抓取SPA,我检查了Google抓取方式,页面呈现良好,但是客户认为这是问题所在。 我测试了react-snapshot,prerender-spa-plugin,static-site-generator-webpack-plugin和Next,但是这些都不适合我。我想知道是否存在一种在不更改项目结构的情况下解决该问题的方法,或者至少是不这样做的原因或解释。谢谢
答案 0 :(得分:2)
基本上,您可以使用React的server-side rendering功能。
对于每个功能,在响应该页面请求的Node.js服务器中:
require(..)
是您的根组件。require(..)
您的redux商店ReactDOMServer.renderToString
。注意react router具有special handling用于服务器端渲染,因此请阅读。ReactDOM.hydrate
。或者,如果您的代码到处都是window.x
并且不能在Node.js中运行-您可以为SEO做其他事情:
请注意,常规用户仍会获得常规的React网站,因为它们没有被检测为爬网程序。
答案 1 :(得分:0)
基本上同意楼上的想法(Benjamin Gruenbaum) 区别在于我直接使用puppeteer。