使用prerender.io与ReactJS进行SEO

时间:2015-01-28 02:14:42

标签: seo reactjs prerender react-router

我意识到使用react-router的ReactJS应用程序没有任何外部链接。搜索引擎无法识别该网站有很多链接内容。 Prerender.io似乎是一个很好的解决方案,但我不能让它适用于我的ReactJS应用程序。

prerender.io可以和ReactJS一起使用吗?如果没有,是否有另一种改善我网站搜索引擎优化的好方法,而不需要完成所有渲染服务器端的工作?

编辑:进一步挖掘后,我意识到这里的问题是react-router使用"#"默认情况下,而不是"#!"。是否有可能使反应路由器与#!#!"?

一起工作

1 个答案:

答案 0 :(得分:2)

Prerender似乎期望真正的网址,因为否则您无法将缓存的html提供给普通人(哈希不会发送到服务器)。

设置react-router时,请确保使用历史记录模式:

Router.run(routes, Router.HistoryLocation, function (Handler) {

在您的服务器中,您需要确保通过发送index.html或使用预渲染来提供与静态文件不匹配的所有路由。

您可以搜索“将所有请求发送到index.html {insert server name here}”以查找详细信息。


默认情况下,预渲染似乎仅适用于某些情况。如果你在node.js中使用express.js中间件,这是一个例子:

require('prerender-node').shouldShowPrerenderedPage = function(){ return true }

你应该能够为其他中间件找出类似的修改(它需要一个灵活性较低的语言的分支)。